文章目录

  • 时序图
    • 定义
    • 作用
    • 组成元素
      • 1. 角色(Actor)
      • 2. 对象(Object)
      • 3. 生命线(Lifeline)
      • 4. 控制焦点(Focus of Control)
      • 5. 消息(Message)
      • 6. 自关联消息
      • 7. 组合片段
  • UML类图
    • 关系
      • 1. 泛化
      • 2. 依赖
      • 3. 关联
      • 4. 聚合
      • 5. 组合
  • 软件推荐
    • drawio(开源免费的流程图绘制软件)
    • idea插件

时序图

定义

时序图(Sequence Diagram),亦称为序列图、循序图或顺序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。

时序图是一个二维图,横轴表示对象,纵轴表示时间,消息在各对象之间横向传递,依照时间顺序纵向排列。

作用

1、展示对象之间交互的顺序。将交互行为建模为消息传递,通过描述消息是如何在对象间发送和接收的来动态展示对象之间的交互;

2、相对于其他UML图,时序图更强调交互的时间顺序;

3、可以直观的描述并发进程。

组成元素

1. 角色(Actor)

系统角色,可以是人、机器、其他系统、子系统;在时序图中用表示。

2. 对象(Object)

(1)对象的三种命名方式

对象位于时序图的顶部,以一个矩形表示。对象的命名方式一般有三种:

  • 对象名和类名。例如:华为手机:手机、loginServiceObject:LoginService;
  • 只显示类名,不显示对象,即为一个匿名类。例如::手机、:LoginSservice。
  • 只显示对象名,不显示类名。例如:华为手机:、loginServiceObject:。

(2)命名方式的选择

三种命名方式均可,哪种最容易让阅读该时序图的人理解,就选择哪种。

(3)对象的排列顺序

对象的左右顺序并不重要,但是为了作图清晰整洁,通常应遵循以下两个原则:把交互频繁的对象尽可能的靠拢;2.把初始化整个交互活动的对象放置在最左端。

3. 生命线(Lifeline)

在时序图中表示为从对象图标向下延伸的一条虚线,表示对象存在的时间。

4. 控制焦点(Focus of Control)

又称为激活期,表示时间段的符号,在这个时间段内对象将执行相应的操作。它可以被理解成C语言语义中一对花括号{ }中的内容;用小矩形表示。

5. 消息(Message)

  • 表示对象之间发送的信息。消息分为三种类型。

    • 同步消息(Synchronous Message)
      消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。以一条实线和实心箭头表示

    • 异步消息(Asynchronous Message)

      消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。以一条实线和大于号表示

    • 返回消息(Return Message)
      返回消息表示从过程调用返回。以小于号和虚线表示

6. 自关联消息

表示方法的自身调用或者一个对象内的一个方法调用另外一个方法。

下面举例一个时序图的列子,看下上面几种元素具体的使用方式。

7. 组合片段

组合片段用来解决交互执行的条件和方式,它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。组合片段共有13种,名称及含义如下:

常用组合片段举例:

用来指明在两个或更多的消息序列之间的互斥的选择,相当于经典的if…else…

(1)抉择(Alt)

抉择在任何场合下只发生一个序列。 可以在每个片段中设置一个临界来指示该片段可以运行的条件。else 的临界指示其他任何临界都不为 True 时应运行的片段。如果所有临界都为 False 并且没有 else,则不执行任何片段。

(2)选项(Opt)

包含一个可能发生或不发生的序列;

(3)循环(Loop)

片段重复一定次数,可以在临界中指示片段重复的条件。

(4)并行(Par)

UML类图

类是具有相似结构、行为和关系的一组对象的描述符,是面向对象系统中最重要的构造块。

如下图所示,就表示一个类:

三个格子从上至下分别表示:

  • 类名称(如果是接口,就使用斜体表示)
  • 类的特性(一般是类的字段和属性,可以没有)
  • 类的操作(一般是类的方法或行为)

它们前边的符号有以下几类:

  • “+”表示public
  • “-”表示private
  • "_"下划线表示static
  • “#”表示protected
  • "~"表示default,也就包权限
  • 斜体表示抽象

关系

在 UML 类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合 (Composition),依赖 (Dependency)

类与类之间的关系

1. 泛化

介绍:
泛化 (Generalization) 表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系

(1)继承
介绍:
继承表示是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。
表示方法:
继承使用空心三角形 + 实线表示。
示例:
鸟类继承抽象类动物

(2)实现
介绍:
实现表示一个 class 类实现 interface 接口(可以是多个)的功能。
表示方法:

1)矩形表示法
使用空心三角形 + 虚线表示
比如:大雁需要飞行,就要实现飞 () 接口

2)棒棒糖表示法
使用实线表示

2. 依赖

介绍:
对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。
表示方法:
依赖关系用虚线箭头表示。
示例:
动物依赖氧气和水。调用新陈代谢方法需要氧气类与水类的实例作为参数

3. 关联

介绍:
对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。
表示方法:
关联关系用实线箭头表示。
示例:
企鹅需要‘知道’气候的变化,需要‘了解’气候规律。当一个类‘知道’另一个类时,可以用关联。

4. 聚合

介绍:
表示一种弱的‘拥有’关系,即 has-a 的关系,体现的是 A 对象可以包含 B 对象,但 B 对象不是 A 对象的一部分。 两个对象具有各自的生命周期
表示方法:
聚合关系用空心的菱形 + 实线箭头表示。
示例:
每一只大雁都属于一个大雁群,一个大雁群可以有多只大雁。当大雁死去后大雁群并不会消失,两个对象生命周期不同。

5. 组合

介绍:
组合是一种强的‘拥有’关系,是一种 contains-a 的关系,体现了严格的部分和整体关系,部分和整体的生命周期一样
表示方法:
组合关系用实心的菱形 + 实线箭头表示,还可以使用连线两端的数字表示某一端有几个实例。
示例:
鸟和翅膀就是组合关系,因为它们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的。

软件推荐

drawio(开源免费的流程图绘制软件)

有网页版,也有桌面安装版,甚至也有vscode的插件

  • 网页版:

https://app.diagrams.net/

  • 桌面安装版:

https://github.com/jgraph/drawio

  • vscode插件版

    • 在插件中下载Draw.io Integration即可

​ 只要新建扩展名为 .drawio.dio.drawio.svg 文件即可进入编辑

idea插件

当然也可以直接使用idea插件来生成

  • 时序图插件

SequenceDiagram

下载:

直接在idea的settings-> plugins中下载即可

使用方法

在方法名上右键,选择Sequence Diagram

  • UML类图

    idea中自带有UML的插件

    使用方式

    选择类名,右键,选择Diagrams

[工具使用]——时序图与UML类图相关推荐

  1. Eclipse 插件用法:Eclipse 利用 Amateras UML 生成 Java 类图、时序图和 UML 类图

    文章目录 前言 一.安装 Eclipse 官方提供的安装框架 GEF 1.1.Eclipse 中第三方插件更新/安装策略 1.2.为什么选择 GEF 框架? 1.3.GEF 框架安装 二.安装 Ama ...

  2. 数据库与计算机辅助设计ER图,ER图对象联系图和UML类图

    ER图对象联系图和UML类图 ER图.对象联系图和UML类图 0124086 梁斌 一. 引言 从文件系统到数据库系统,标志着数据管理技术在质上的飞跃.数据库系统的出现使信息系统的研制中心从加工数据的 ...

  3. Mac下安装 PlantUML 插件画时序图、UML类图

    1. 安装 PlantUML 插件 安装完 PlantUML 就可以画时序图.流程图了. 但是,不能画 UML 类图,还少了一个图形渲染的工具 Graphviz. 2.在 Mac 上安装 Graphv ...

  4. java uml类图举例,uml类图(uml类图实例作业)

    原发布者:dzq21cn 第4章UML类图[学习目标]·定义类图·为什么要建模类图·类图的主要标记符号·如何建模类图4.1UML基本类图面向对象设计的基础就是使用类.. UML是统一建模语言,一般用来 ...

  5. java类图_java UML类图的使用-UML基础-火龙果软件工程

    类图 是用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解,它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据.学习好类图的绘制,是一位合格的软件工程师应有的技能 ...

  6. 一张图 学会UML类图图例

  7. uml类图工具_三款超级轻量化制图工具!每个不超过2MB,堪称神器!

    hello,大家好!我是大哈,最近搜集了3个超级轻量化的办公神器,个个简洁轻便,都不到2MB,在我们的学习生活中对于某些专业的同学可能经常会用得到,这三款软件能制作流程图.思维导图.UML类图...等 ...

  8. UML 类图-时序图-用例图

    文章目录 1. UML类图 1.1 泛化(Generalization) 1.2 实现(Realization) 1.3 关联(Association) 1.4 聚合(Aggregation) 1.5 ...

  9. 【大话设计模式-2】UML 类图的绘制(源码案例分析)

    文章目录 1 UML 基本介绍 2 UML 图 3 UML 类图 4 类图-依赖关系(Dependence) 5 类图-泛化关系(generalization) 6 类图-实现关系(Implement ...

最新文章

  1. 进击谷歌:多线程下程序执行顺序怎么稳定不乱?
  2. Nagios基本搭建
  3. python入门--字符串,切片
  4. 2-10 就业课(2.0)-oozie:9、oozie与hue的整合,以及整合后执行MR任务
  5. ZCGL大数据项目优化组件布置
  6. 在arxiv上看到自己的投稿署了别人的名字是什么体验?
  7. java代码走查_java代码开发完成后,代码走查规范
  8. dos命令中DATE:~0,10输出日期格式名称格式/改为-
  9. 川轻化c语言实验答案,C语言实验目().doc
  10. html盒子模型 正方形嵌套,前端box(盒子嵌套)
  11. WordPress建站主机推荐
  12. Spring框架中 自动装配的详解 属性值的详解
  13. Leetcode 1217. Minimum Cost to Move Chips to The Same Position [Python]
  14. python中cv2.putText参数详解
  15. 语音识别 公司_语音识别公司_语音识别公司排名 - 云+社区 - 腾讯云
  16. 计算机 usb 检测,怎样检测计算机USB接口类型
  17. 手机浏览器缓存的.ts视频文件如何合成(不下载软件)
  18. 汇编语言笔记(10)CALL和RET指令
  19. Android架构演进 · 设计模式· 为什么建议你一定要学透设计模式?
  20. Python3 入门教程||Python3 SMTP发送邮件||Python3 多线程

热门文章

  1. HDU6124(有趣的数学题)
  2. java 向后兼容性_关于java:JDK“向上”还是“向后”兼容?
  3. UTC时间和CST时间的解决方案
  4. 百度地图js实时播放轨迹
  5. 上万台测温设备的数字化管理,从Shifu接入温度计的数字孪生开始
  6. 读唐诗,学唐史-《六神磊磊读唐诗》读书小结
  7. 计算思维( Computational Thinking )
  8. 在EXCEL中如何同时冻结行与列?
  9. 《Generative Adversarial Networks》
  10. ITK学习笔记(七) ITK旋转方向位置不变