UML图例之时序图

目录

利用时序图显示对象之间交互,通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作,用来表示用例中的行为顺序。

 

时序图特点

  1. 描述用例的具体细节。

  2. 对复杂的调用、函数和操作的逻辑关系进行建模。

  3. 表明对象、组件之间是如何交互的。

  4. 理解旧代码,规划新场景。

 

基本元素

角色(Actor)、对象(Object)、生命线(Lifeline)、控制焦点(Activation)、消息(Message)、自关联消息、组合片段。前6种较为常用,也更为重要。

角色

系统角色,可以是人、及其甚至其他的系统或者子系统。

162432722_6f2cf4ec-ad1e-4b75-ae29-c3f483ea70ad

 

对象

整个交互过程中的实体,可以是一个具体的类也可以是另外一个系统。对象可以用下面的图表示:

162433964_650e507b-d92d-435f-8e8e-7b85d94ac183 对象包括三种命名方式:

  • 对象名和类名;

  • 只显示类名不显示对象名,匿名类;

  • 只显示对象名不显示类名;

生命线

时序图中每个对象和底部中心都有一条垂直的虚线,这就是对象的生命线(对象的时间线)。以一条垂直的虚线表示。

162435038_c2001ed7-0303-444a-8fff-d22cea451a32

控制焦点

控制焦点代表时序图中在对象时间线上某段时期执行的操作,表示该操作的有效时长。以一个很窄的矩形表示。

162436194_24b73d3a-f3dd-41b3-aa72-3270e4f3a776

消息

表示对象间相互发送的信息。消息分为三种类型:

  • 同步消息(Synchronous Message):消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。以一条实线+实心箭头表示。

  • 异步消息(Asynchronous Message):消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。以一条实线+大于号表示。

  • 返回消息(Return Message):返回消息表示从过程调用返回。以小于号+虚线表示。

162437349_7f2db185-c7c1-486d-ad5d-26333b7bbbe6

自关联消息

表示方法的自身调用或者对象内一个方法调用另一个方法。以一个半闭合的长方形+下方实心剪头表示。

162438456_9d103704-93b6-4ef0-92a0-996de8de17f2

组合片段

组合片段用来解决交互执行的条件和方式,它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。

  • ref:引用其他地方定义的组合片段;

  • alt:在一组行为中根据特定的条件选择某个交互;

  • opt:表示一个可选的行为;

  • break:提供了和编程语言中的break类拟的机制;

  • par:支持交互片段的并发执行;

  • seq:强迫交互按照特定的顺序执行;

  • strict:明确定义了一组交互片段的执行顺序;

  • neg:用来标志不应该发生的交互;

  • region:标志在组合片段中先于其他交互片断发生的交互;

  • ignore:明确定义了交互片段不应该响应的消息;

  • consider:明确标志了应该被处理的消息

  • assert:标志了在交互片段中作为事件唯一的合法继续者的操作数;

  • loop:说明交互片段会被重复执行

162439618_e7085ed6-d9ff-4a82-96d8-7bd61549e006  

基本例子

对接WPS在线编辑服务时,采用的时序图,依照时间顺序执行,最终获取后台服务器中文件,在前端js中在线编辑word文档。

162441143_51517357-6ae0-49e4-b0fc-3e0f5457fb7d

至此,对于UML时序图的相关内容做了大概的总结,对于设计时序图还是查看其他系统、对接其他系统时,提供的时序图,知道如何识别,如何设计。

2020-03-20,望技术有成后能回来看见自己的脚步