UML——时序图

1. 时序图

按时间顺序显示对象交互的图。顺序图的交互关系表示为一张二维图。其中纵向是代表时间维度,时间向下延伸,按时间依次列出各个对象所发出和接收的消息。水平方向是代表对象的维度,排列着参与交互的各个独立的对象。

2. 构成元素

时序图主要由以下7种元素组成:

  • 角色(actor)
  • 对象(object)
  • 生命线(LifeLines)
  • 消息(Message)
  • 控制焦点
  • 自关联消息
  • 组合片段

下面我将具体展开介绍每一种元素:
1. 角色
系统角色。可以是人或者其它系统和子系统,以一个小人图标表示。
2. 对象
对象位于时序图的顶部,以一个矩形表示。对象的命名方式一般有三种:

(1)对象名和类名。例如:华为手机:手机、loginServiceObject:LoginService;

(2)只显示类名,不显示对象,即为一个匿名类。例如::手机、:LoginSservice。

(3)只显示对象名,不显示类名。例如:华为手机:、loginServiceObject:

3. 生命线
时序图中每个对象和底部中心都有一条垂直的虚线,这就是对象的生命线(对象的时间线)。以一条垂直的虚线表示。
4. 消息
表示对象之间发送的信息。消息分为三种类型:

(1)同步消息(Synchronous Message):消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。以一条实线和实心箭头表示。
(2)异步消息(Asynchronous Message):消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。以一条实线和大于号表示。
(3)返回消息(Return Message):返回消息表示从过程调用返回。以小于号和虚线表示。

5. 控制焦点
控制焦点代表时序图中在对象时间线上某段时期执行的操作。以一个很窄的矩形表示。
6. 自关联消息
表示方法的自身调用或者一个对象内的一个方法调用另外一个方法。以一个半闭合的长方形+下方实心剪头表示。
UML——时序图_第1张图片

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

组合名称 组合含义
ref 引用其他地方定义的组合片段
alt 在一组行为中根据特定的条件选择某个交互
opt 表示一个可选的行为
break 提供了和编程语言中的break类拟的机制
par 支持交互片段的并发执行
seq 强迫交互按照特定的顺序执行
strict 明确定义了一组交互片段的执行顺序
neg 用来标志不应该发生的交互
region 标志在组合片段中先于其他交互片断发生的交互
ignore 明确定义了交互片段不应该响应的消息
consider 明确标志了应该被处理的消息
assert 标志了在交互片段中作为事件唯一的合法继续者的操作数
loop 说明交互片段会被重复执行

3. 画图推荐

processon
ProcessOn是一个在线作图工具的聚合平台,它可以在线画流程图、思维导图、UI原型图、UML、网络拓扑图、组织结构图等等,您无需担心下载和更新的问题,不管Mac还是Windows,一个浏览器就可以随时随地的发挥创意,规划工作。
UML——时序图_第2张图片

4.应用场景

1. 梳理业务流程
软件开发都是为了支撑某个具体的业务。有时候业务的流程会比较复杂,涉及到多种角色,这时就可以使用时序图来梳理这个业务逻辑。这样会使业务看起来非常清晰,代码写起来也是水到渠成的事情了。
UML——时序图_第3张图片

2. 梳理开源软件
成熟框架的源代码调用深度都比较深,类之间的调用关系也比较复杂,此时便可以用时序图来梳理框架中这些对象之间的关系。如下图为Tomcat启动流程,通过梳理各个组件之间的关系,更便于记忆。
UML——时序图_第4张图片

参考

  • 组合片段
  • https://www.cnblogs.com/54chensongxia/p/13236965.html

你可能感兴趣的:(UML,uml)