1. 概念
序列图为“对象”、“生命线”、“激活”和“消息”的5首先介绍前四个要素,然后分别介绍“组合雕塑”要素。
ires=1705689714&x-signature=8NfMh6Xt2FqK64YVOdw6A5Ez7nU%3D&index=2" width="640" height="641"/>1)对象(Object)
对象位于序列图的顶部,以一个矩形表示,对象的命名方式一般有三种:
- 显示“对象名” + “类名”,例如:手机 – 华为手机;
- 显示“类名”,不显示“对象”,例如:手机;
- 显示“对象名”,不显示“类名”,例如:华为手机。
2)生命线(LifeLine)
生命线是一条垂直的虚线,每个对象底部中心都有。对象与生命线结合在一起就是对象的生命线,其长度取决于交互的时间。
3)激活(Activation)
激活代表时序图中在对象时间线上某段时期执行的操作,以一个很窄的矩形表示:
4)消息(Message)
消息是对象和对象之间,在发生“交互”和“协作”时,用于交换信息的媒介。可以根据是否并发,简单的分为两类:
- 同步消息(Synchronous Message):消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。
- 异步消息(Asynchronous Message):消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。
5)组合片段
组合片段用来解决交互执行的条件和方式,它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。组合片段共有13种,名称及含义如下:
抉择(Alt):抉择在任何场合下只发生一个序列。
可以在每个片段中设置一个临界来指示该片段可以运行的条件。else 的临界指示其他任何临界都不为 True 时应运行的片段。如果所有临界都为 False 并且没有 else,则不执行任何片段,Alt片段组合可以理解为if..else if…else条件语句。
我们还拿微信支付的时序图举例,如果7.3向商家汇款的成功或失败流程需要在时序图中体现出来,可以这么使用Alt片段组合。
引用(InteractionUse):表示引用的意思,某部分交互被定义在另一个图中。可将一个规模较大的图划分为若干个规模较小的图,方便图的管理和复用,ref不用要填写参数。
选项(Option):表示当警戒值为真(符合条件)的情况下进行执行处理的意思,opt需要填写参数。
循环(Loop):表示循环执行的意思,当条件为真的时候执行循环。也可以写成loop(n)来表示循环n次,与java或者C#等中的for循环比较相似,loop需填写参数。
中断(Break):表示中断处理,跳转的意思,类似java代码中break语句,break需填写参数。
3. 窍门
1)工具
工欲善其事,必先利其器。推荐使用微软旗下的 Visio。
2)步骤
划清边界,识别交互语境:所谓划清边界是是指要确定好绘制序列图的范围。在微信支付例子中省略列商家打开微信、输入收款金额等交互消息,这些不是我们需要体现的,我们主要体现的是用户的扫码支付流程。
所谓识别交互语境就是要知道自己绘制时序图的前提和背景,在微信支付的例子中用户登录了微信、开通了支付功能是前提,背景是用户需要扫描付款买东西。
梳理时序图中的角色和对象都有哪些:微信支付的例子中角色只有一个,即用户。对象有华为手机:手机、微信、商家。
对象之间有哪些交互消息:对象之间交互的消息详见以上序列图。
3)技巧
从初始消息开始画,依次画出随后消息,并给每个消息分配序号,方便理解;
角色和对象用名词,消息用动词;
角色放在序列图的开始位置,对象重要程度或使用频率从左到右排列。这就要根据时间的流程考虑了,是一个比较主观的事情;
控制焦点两端要以消息元素封顶,控制焦点不要超过消息元素。
参考资料:
四、结束语
产品经理的前进道路,不应该是一场孤独求索的旅行 。沿途那些美好的风景,有趣的人文,我愿意沉淀下来,分享与同行的你,或者是在路上的他。
作者:木深、木小深;公众号:异世治人录
本文由@木深 原创发布于人人都是产品经理。未经许可,禁止转载。
题图来自Unsplash,基于CC0协议