概述
序列图(Sequence Diagram)是场景的图形化表示,描述了以时间顺序组织的对象之间的交互活动。
序列图,也叫时序图、顺序图,是 UML 中常用的动态视图,用于描述多个对象参与实现业务目标时,彼此之间按时间顺序进行交互的过程。
绘制时序图,将一个个对象和其交互动作列出来,可以直观反映出,每个对象对其他对象、或其自身做的交互动作。表达交互逻辑时,清晰简单。让我们看到业务内部的运作、系统之间的互动,从而搞清楚业务规则、系统逻辑。
详解
时序图的构成分别有:对象(角色)、生命线、会话、消息(调用(同步)消息、异步消息、返回消息)、销毁。
对象
对象,指与业务、产品或系统相关的人、事、物,可以是人、部门、系统等。
通常用矩形表示,对象名写在矩形内,一般格式为:对象名:类名。冒号和类名是必需的,对象名是可选的。实践中,不需要具体到实例,对象名可以不写。
形成序列图时,首先把参与交互的对象放到图的上方,沿水平方向排列,通常把发起交互的对象放到左边,下级对象依次放到右边。
网上有的会把对象和角色分开来,我理解面向对象思想的程序中一切经过实例化的在图示中都应以对象表示。
对象也可以在交互过程中某一刻创建,它们的生命线从接收到构造型Create消息时开始。也可以在交互过程中撤销,它们的生命线在接收到构造型的destroy的消息时结束。
生命线
每个对象下有一条垂直的虚线,这就是对象的生命线,从上往下,代表时间的先后顺序。
会话
序列图有会话,也叫控制焦点、激活框。它表示一个对象执行一个动作所经历的时间段,以一个瘦高的矩形表示。
每一次会话,表示一次相对完整的交互过程。矩形的顶部表示动作的开始,底部表示动作的结束。下级对象的动作结束可以由一个返回消息来标记。
消息
消息,表示对象之间发送的信息或做的事情。消息分为三种:同步消息、异步消息、返回消息。如果从产品层面,并不需要规定技术的实现方式,可以不考虑同步与异步消息。所以也可简单分为简单消息与返回消息。
1)同步消息
同步消息也称调用消息,即发送消息是通过顺序执行的方式调用目标函数。用实心三角箭头实线指向下级对象或下级动作。
2)异步消息
即发送消息是通过异步执行的方式调用目标函数。用箭头实线指向下级对象或下级动作。
简单消息,用箭头实线,表示一个对象向另一个对象发送信息,或做的事情。它不强调消息的类型,只表示交互,足以满足大部分情况。
3)返回消息
返回消息,用箭头虚线,表示一个对象收到另一个对象的信息后再向其返回的信息或另一对象的回调操作。
消息线上方的文字,则是注明传递的消息或执行的动作。
这些对象间的交互消息,画在两个对象的生命线之间。对象自身做的事情,则画在自己的生命线上。
组合框
现实业务、系统流程中,总会有特殊情况,不可能完全按时间顺序、一条线走完。
这时,就需要用到组合框(frame)来表示常见的特殊情况,如分支、循环、并行等。
遇到这些特殊情况时,就可以把相应的交互流程放入这个框中。