如何画时序图
一、什么是时序图
时序图(Sequence Diagram)是UML交互图中的一类,又名序列图、循序图、顺序图。
用于描述多个对象参与实现业务目标时,彼此之间按时间顺序进行交互,和动态协作的过程。
时序图是一种二维图,横轴表示对象,纵轴表示时间,消息在各对象之间横向传递,依照时间顺序纵向排列。
--在《火球:UML 大战需求分析》一书中,作者总结特别好:“任何复杂的交互,都可以分解为自己与自己、自己与别人、别人与别人的多个简单交互”
二、时序图组成元素
1、对象
一般用矩形表示。
如果对象位于时序图的顶部,说明在交互开始时对象就已经存在了。如果对象的位置在中间部分,说明对象是在交互的过程中被创建的。
当一个对象被删除或自我删除时,在其生命线(生命线详见下方)终止点处放置 “ X”标识。
2、生命线
每个对象底部中心都有一条垂直的虚线,这就是对象的生命线。对象间的消息存在于两条生命线之间。
生命线代表对象在一段时期内的存在。
3、会话
会话,也叫激活框,它代表在对象生命线上某个阶段执行的操作,以一个偏窄的矩形表示。
每一次会话,表示一次相对完整的交互过程。
4、消息
消息的传递一般有几种方式:
同步消息:
同步消息就是消息的发送人需要等待接收人接到消息后的响应。一般用带实心箭头的实线表示
异步消息:
异步消息就是消息的发送人不等待接受者返回的响应。一般用带线型箭头的实线表示
返回消息:
返回消息表示从过程调用返回,一般用带线型箭头的虚线表示。
自关联消息: 自身调用自身的方法,即自我调用的同步消息
三、如何画时序图&绘制工具
Drawio官网:https://www.diagrams.net/
Drawio使用简介:https://blog.csdn.net/qq_37541097/article/details/116024091
时序图绘制具体分为以下5步:
- 确定交互过程的上下文(即前提和背景);
- 识别参与过程的交互对象;
- 为每个对象设置生命线;
- 从初始消息开始,依次画出随后消息;
- 考虑消息的嵌套,标示消息发生时的时间点,则采用FOC(focus of control)
四、经验总结
- 触发交互的对象画在最左,交互频繁的走近些
- 建立基线:系统时序图一定要建立基线,每个迭代都是在基线上做修改,这样能够保鲜,并节省画图的时间
- 改动点标红:标红后可以很清晰的看到此需求的改动点,可以集中精力关注改动
- 要体现出细节:只有有了细节,才能更全面的理解,有效的推敲出设计上的漏洞
- 风险防控要素:时序图需要体现出幂等, 并发, 事物,超时等异常处理,强弱依赖, 安全校验等设计等
- 给交互消息加序号、并合理运注解:通过序号、注解描述可以让时序图的表达更清晰全面,方便阅读
- 说明部分不能少:画完时序图后一定不要忘记对关键点进行描述
例子
【Quality】
Quality is the value to someone who matters。做测试,首先要找到这个someone是谁,以及这个 someone重视的 value是什么。