一、概述
1.1、什么时候使用
当编码的时候,知道有的用例的业务逻辑按照比较确定的时间先后顺序进行展开。这时候,我们就需要知道我们设计的系统中的不同类之间传递消息(可以认为是不同对象函数间的调用)要按照怎么样的顺序、传递什么消息、返回什么消息。这时候用时序图是最好不过的了。
1.2、时序图的定义:
时序图是描述消息时间顺序的交互图。在图形上,时序图是一张表,其中显示的对象沿横轴排列,从左到右分布在图的顶部;而消息则沿纵轴按时间顺序排序。创建时序图时,以能够使图尽量简洁为依据布局。
二、使用
2.1、Visio建立时序图
新建→软件和数据库→UML模型图
2.2、常见符号及含义
1、对象:表示系统的参与者或者任何有效的系统对象。
2、生命线:相当于一个时间线,表示对象在一段时间内的存在时间,而且从时序图的顶部一直延伸至底部,长度取决于交互的时间。
3、消息:是用来表示一个对象向其他一个或者多个对象发送信号,或者由一个对象调用另外一个对象的操作。
4、激活:表示的是一个对象直接或者通过从属操作而完成操作的过程。在时序图中一般激活符号的顶端与激活时间对齐,低端与完成时间对齐,被执行的操作则用文字进行标识。
5、注释:是用来对UML实体进行文字描述的。
6、约束:表示的是当为对象交互建模时,有时候必须满足一个条件,消息才会传递给对象。
7、用户:即系统角色,可以是人、其他系统或者子系统。
8、链接到自己:显示对象可以调用自己的属性。
9、通信:表示创建对象之间的通信路径。
10、包:在UML中,一个包直接对应的是一个Java中的包,是一种常规用途的组合机制。
2.3、时序图步骤
1、确定交互过程的上下文;
2、识别参与过程的交互对象;
3、为每个对象设置生命线;
4、从初始消息开始,依次画出随后消息;
5、考虑消息的嵌套,标示消息发生时的时间点,则采用FOC(focus of control);
6、说明时间约束的地点。
2.4、示例【RestTemplate调用请求过程】