- 用来描述对象之间动态的交互关系。着重提现对象之间消息传递的时间顺序。
- 顺序图将交互关系表示为一个二维图。其中,纵轴是时间轴,时间沿竖线向下延伸。横轴代表了在协作中各位独立的对象。
时序图的组成
时序图包含了5个元素:
①参与者
②对象(Object)
③生命线(Lifeline)
④消息(Message)
⑤激活(Activation)
⑥ 约束(Constraint)
1.对象
- 如果对象位于时序图的顶部,说明在交互开始之前该对象已经存在额。
- 如果对象是在交互的过程中创建的,那么它应当位于图的中间部分。
对象包括三种:
- 指定类名和对象名的对象 objectName: className
- 指定类名但没有对象名的对象 (匿名对象) :className
- 指定对象名但不指定类名的对象 objectName
图形表示:
第一类:
第二类:
第三类:
创建对象的两种方法:
1.1对象的撤销
- 如果要象的撤销一个对象,只要在其生命线终止点放置一个“X”符号即可,该点通常是对删除或取消消息的回应。
2.生命线
- 生命线是对一条垂直的虚线,表示时序图中的对象在一段时间段内的存在。每个对象的底部中心的位置都带有生命线。
- 生命线是一个时间线,从顺序图的顶部一直延伸带底部,所用的时间取决与交互持续时间。
3.消息
- 消息定义的对象之间某种形式的通信,它可以激发某个操作、唤起信号或导致目标对象的创建或撤销。
- 消息是对两个对象之间的单路通信。
- 消息可以用于在对象间传递的参数。
- 消息可以是信号的,也可以是调用的。
4.激活
- 激活表示该对象被占用以完成某个任务,去激活指的则是对象处于空闲的状态、在等待消息。
- 在UML中,为了表示对象是激活的,可以将该对象的生命线拓宽成为矩形。其中的矩形称为激活条或控制期。
5.消息
1. 同步消息:
- 发送者要发送一条消息且接收者已经做好接收这个消息的准备才能传送的消息叫同步消息。实心箭头。消息的名称是被调用者的方法名。
2. 异步消息
- 发送者不管接收者是否做好准备都可以发送的消息叫异步消息。
3. 返回消息
4. 创建对象
5. 撤销对象
6. 自关联消息
6.约束
- 约束条件
- 消息前加约束条件。通常有条件约束、循环约束。
- 条件约束:[条件],只有在符合条件时,才发送消息。
循环约束:*[条件]
约束片段
| 片段类型 | 片段描述 |
| seq | 强迫交互按照特定的顺序执行 |
| alt | 在一组行为中根据特定的条件选择某个交互,模型为if...else |
| opt | 表示可选,模型为Switch |
| break | 提供了和编程语言中的break类似的机制 |
| par | 支持交互片段的并发执行 |
| strict | 明确定义了一组交互片段的执行顺序 |
| loop | 说明交互片段被重复执行 |
| region | 在组合片段中优先于其他交互片段发生的交互 |
| neg | 封装了一系列无效的消息,即不应该的交互 |
| assert | 标志了片段中作为事件唯一的合法继续者的操作数 |
| ignore | 明确定义了交互片段不应该响应的消息 |
| consider | 明确了表示应该被处理的消息 |
- 循环分支属于业务流程中比较常见的特殊结构。
- loop,也叫循环,是满足循环条件的前提下,不断地重复做某些事情;
- alt,条件分支,是根据不同的条件选择不同的分支;
- opt,可选分支,是满足一定条件则执行该分支,否则就跳过。
如下图: