UML时序图详解(手把手教你画时序图)–mikechen

开通VIP,畅享免费电子书等14项超值服

首页

好书

留言交流

下载APP

联系客服

2023.04.13四川

目录

一、解读时序图

二、时序图的构成

1.对象

2.生命线

3.会话

4.消息

5.组合框

三、时序图的画法

1.定目标

2.找对象

3.列消息

4.经验之谈

四、总结

1.画时序图的方法

2.画时序图的经验

每次梳理流程,跟开发沟通,我都会借助它来描述。

绘制时序图,将一个个对象和其交互动作列出来,可以直观反映出,每个对象对其他对象、或其自身做的交互动作。

让我们看到业务内部的运作、系统之间的互动,从而搞清楚业务规则、系统逻辑。

如下图所示:

客户用ATM取款的时序图

这么好的工具,赶紧学一下吧。

时序图的常用元素很简单,分别有:对象(角色)、生命线、会话、消息(简单消息、返回消息)。

时序图的常用元素

通常用矩形表示,画在时序图的顶部,对象名写在矩形内。

网上有的会把对象和角色分开来,我理解这些都是对象。只不过,在图形上,角色与用例图的参与者一样,用火柴人表示,比较好理解。

因为,UML是在面向对象思想的指导下,来描述软件产品的分析与设计。面向对象,则将现实世界的人事物,看成一个个独立的个体,称之为「对象」。

它们又可以根据不同的需要,以不同的角度,被归纳在一起,这就是开发人员常说的「类」。

比如,西瓜、苹果、梨是不同的对象,它们可以归为一类——水果;苹果手机、华为手机、小米手机,可以归为手机。

对象的命名,一般格式为:对象名:类名,如「李四:客户」。

按照语法,冒号和类名是必需的,对象名是可选的。具体地说,「李四:客户」表示李四是客户的实例,即具体到某个客户的名字。

实践中,并不需要具体到实例,对象名可以不写。我的做法是,直接写一类对象的名称,如某某系统、某某部门。

会话,也叫激活框,它代表在对象生命线上某个阶段执行的操作,以一个偏窄的矩形表示。

每一次会话,表示一次相对完整的交互过程。不过,怎样算一次会话,实践中有点难区分,需要多练习体会。

我常按照操作的完整度来画,有时甚至不画,有些专业的UML工具还能自动生成会话。

消息,表示对象之间发送的信息或做的事情。消息,有的分为三种:同步消息、异步消息、返回消息。

从产品层面,并不需要规定技术的实现方式,是同步还是异步,这交给开发人员设计,会更为合理。

因此,我基本只用两种消息来表达:简单消息、返回消息。

1)简单消息

简单消息,用箭头实线,表示一个对象,向另一个对象发的信息,或做的事情。它不强调消息的类型,只表示交互,足以满足大部分情况。

2)返回消息

返回消息,用箭头虚线,表示一个对象,收到另一个对象的信息后,再向其返回的信息,或做的事情。

消息线上方的文字,则是注明传递的消息或执行的动作,一般用动宾短语。

这些对象间的交互消息,画在两个对象的生命线之间。对象自身做的事情,则画在自己的生命线上。

这时,就需要用到组合框(frame)来表示常见的特殊情况,如分支、循环、并行等。

遇到这些特殊情况时,就可以把相应的交互流程放入这个框中。

时序图三种常用的特殊结构

下面,还是以之前的「手机话费充值APP」为例(案例详见《用例图这样画,3步让你做需求分析有理有据》),来了解时序图如何用。

常用的画图工具,有Visio、ProcessOn,现在很多在线文档也支持UML,如腾讯文档、飞书云文档。

时序图的画法也很简单,一句话就能说完,可是要灵活掌握,还得多加练习。

再简单点,就是定目标、找对象、列消息三步走。

画时序图,与活动图一样,要指定某个用例,或目标展开。这些动态视图,是用来描述在静态视图(如用例图)定义的结构下对象的行为。

本质上,它们都是在描述谁如何参与完成业务目标。

明确了用例或目标,才能保证绘制的流程,边界清晰,过程完整,不会越画越乱。

比如,我们用时序图来分析案例中「充值话费」用例的实现过程。这时,就别把「支付金额」用例的交互也画进去,把它们画在一起,会增加阅读难度,不利于沟通表达。

案例中「充值APP」的系统用例图

因此,先将它们列出来,每一竖列,表示一个对象或角色,每个对象有一条生命线。

为方便阅读,可将流程中最先发起消息的对象放在最左边;再将交互多的对象摆在附近,别隔太多对象,这样画出来的图会更清晰简洁。

找到了对象,就可以列出对象间的交互消息。为了方便你回顾「充值话费」用例的实现过程,咱们先上之前已经得出的活动图。

充值APP「充值话费」用例活动图

工作中,我们把流程弄明白后,就可以边理边画,将对象间的交互,从最先发起的消息,一个个从上往下依次列出。

充值APP「充值话费」用例对象交互时序图

在UML中,时序图的消息是没有序号的。使用中,我发现为每个消息加上序号,比较方便描述与阅读,一直习惯这么用。

「充值话费」用例的流程中,刚好有一个并行流程,即上图的第16至20步。

管理后台在返回支付结果时,还需同步向手机运营商发起充值请求,这是常见的并行流程。

因此,将其画在组合框中,表示这里面上下两部分交互是同时进行的,不分先后。

从这里不难看出,分支一多,时序图会比较难画,也不好理解。

确实,时序图不太适合表达多分支的复杂流程。因此,我们用时序图更多是描述主干流程,复杂的分支可单独抽取出来画,也可以用文字说明。

看到上面的泳道活动图和时序图,你可能会想,它们俩还挺像的,工作中究竟用哪个呢?

它们都用于描述不同对象之间的动作。不过,泳道活动图,更侧重于表达谁做了什么事;而时序图,除了强调流程中交互的消息和顺序,还表达谁对谁做了什么事。

还可以多尝试两种都画,通过不同视角来观察同一个流程,会让我们的理解更加全面、深刻。

实践中,时序图,常用于表达系统的接口请求与反馈消息,更偏向技术实现。

作为产品经理,我们可以从产品视角、操作层面,用它来表达业务流程、产品流程。

这样,开发人员也很好理解,便于他们进行系统设计。

信息量还是不少,我给你总结下。

用好时序图,能帮我们,搞清楚业务规则、系统逻辑,提高工作效率。

THE END
1.UML实例:ATM中的用例图类图和顺序图详解–后浪云本节和大家一起学习一下UML实例,我们在日常生活中也经常和ATM打交道,本节就以ATM系统为例将前面几章中学到的用例图、类图、顺序图知识运用到此例中。下面让我们一起来学习具体介绍吧。 统一建模语言UML实例 "例,比也"(《说文》),本次连载将给出一个利用UML进行建模的完整实例,综合应用前面学到的知识,达到"举...https://www.idc.net/help/393873/
2.VisualParadigm使用技巧:绘制UML顺序图当你想要对某个系统或者应用程序的结构进行建模时,你会使用到类图。当你想要对运行时对象之间的交互进行建模时,你会使用到顺序图。类图和顺序图彼此之间也可以产生联系。当类图中的类代表数据的蓝图时,顺序图中的生命线(lifeline)就代表了这个蓝图的实例。在本教程中,https://www.evget.com/doclib/s/10/10442
3.UML建模(4)UML建模之时序图腾讯云开发者社区时序图是按照时间顺序显示对象交互的图。它显示了参与交互的对象和所交互信息的先后顺序,用来表示用例图中的行为,用例图是一种交互图。 在UML中,时序图将交互关系表示为一张二维图。其中,纵向标示时间轴,时间沿竖线从上向下进行,按照时间依次列出各个对象所发出和接受的消息,横坐标标示了交互中的各个对象。 https://cloud.tencent.com/developer/article/1970048
4.UML实例:ATM中的用例图类图和顺序图详解在学习UML的过程中,经常会遇到UML实例问题,这里就向大家介绍一个UML实例,主要以ATM取款机为例向大家讲解UML的使用,希望本文的介绍对你的学习有所帮助。 本节和大家一起学习一下UML实例,我们在日常生活中也经常和ATM打交道,本节就以ATM系统为例将前面几章中学到的用例图、类图、顺序图知识运用到此例中。下面让...https://www.51cto.com/article/204865.html
5.UML—顺序图,SequenceUML—顺序图,Sequence 1、概念 顺序图是强调消息时间顺序的交互图,描述了对象之间传送消息的时间顺序,用于表示用例中行为的顺序。顺序图将交互关系表示为一个二维图,横向轴代表了在协作中各独立对象的类元角色,纵向轴是时间轴,沿竖线向下延伸。 2、建模元素...https://www.jianshu.com/p/0435bfa33dfb
6.顺序图(讲解+例子)顺序图例题,顺序图例子资源UML课程设计 用例图、顺序图等的画法,及案例 浏览:101 5星 · 资源好评率100% UML介绍UML建模,用例图、顺序图等的画法,及案例。 uml试题大集合(用例图顺序图) 浏览:145 3星 · 编辑精心推荐 uml用例图顺序图协作图可以更好的被描述 UML实例UML案例(完整建模)(汽车租赁系统) ...https://download.csdn.net/detail/laihanj/2186507
7.UML交互图(顺序图通信图鲁棒图定时图)通信图就是把顺序图竖起来去看,关注了访问关系。 通信图主要元素 链:连接器,是用来表示对象之间的语义连接,一般而言,链是关联的一个实例(包括《association》、《self》、《global》、《local》等)。不过在UML 2中已经开始弱化它们的使用,因此除非必要,无需过多地考虑它们 ...http://www.360doc.com/content/15/0616/11/3554661_478481900.shtml