什么是时序图
时序图(Sequence Diagram),又名序列图、循序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。纵向代表发生的时间,横向代表参与的对象。我们工作中使用时序图大部分场景就是描述一个复杂场景的系统交互过程。
时序图中的元素
角色
系统角色,可以是人或者其他系统,子系统。以一个小人图标表示。
对象
对象位于时序图的顶部,以一个矩形表示。对象的命名方式一般有三种:
1 对象名和类名。例如:华为手机:手机。
2 只显示类名,不显示对象,即为一个匿名类。例如::手机。
3 只显示对象名,不显示类名。例如:华为手机:。
生命线
时序图中每个对象和底部中心都有一条垂直的虚线,这就是对象的生命线(对象的时间线)。以一条垂直的虚线表。
控制焦点
控制焦点代表时序图中在对象时间线上某段时期执行的操作。以一个很窄的矩形表示,代表此时对象被激活。
消息
表现代表对象之间发送的信息。消息分为三种类型。
同步消息
消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。以一条实线+实心箭头表示。
异步消息
消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。以一条实线+大于号表示。
返回消息
返回消息表示从过程调用返回。以小于号+虚线表示。
自关联消息
表示方法的自身调用或者一个对象内的一个方法调用另外一个方法。以一个半闭合的长方形+下方实心剪头表示。
时序图的绘制步骤
1,划清边界,识别交互语境
所谓识别交互语境就是要知道自己绘制时序图的前提和背景。
2,梳理时序图中的角色和对象都有哪些
明确参与交互的对象主体都有哪些,即参与完成功能的系统都有哪些。
3,对象之间有哪些交互消息
明确各系统的调用顺序以及逻辑。
以上就是时序图的主要内容,下面通过实际的例子时序图加强理解。
最后附一个画好的时序图,里面包含了 同步消息 以及异步消息。
时序图,还包括一些复杂的组合片段,感觉很麻烦,对于理解时序图增加了很多成本,这里不做介绍