一、概述
顺序图(Sequence Diagram):是一种强调对象间消息传递次序的交互图,又称为时序图或序列图。描述了在一个用例或操作的执行过程中对象如何通过消息相互交互,说明了消息如何在对象之间被发送和接收以及发送的顺序。
它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。
二、特点
- 顺序图用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或状态机中引起转换的事件。
- 顺序图展示对象之间的交互,这些交互是指在场景或用例的事件流中发生的,顺序图属于动态建模。
- 顺序图的重点在消息序列上,也就是说,描述消息是如何在对象间发送和接收的,表示了对象之间传送消息的时间顺序。
- 浏览顺序图的方法是:从上到下查看对象间交换的消息。
三、序列图中的事物及解释
事务名称 | 解释 | 图 |
对象(Object) | 顺序图的横轴上是与序列有关的对象。对象的表示方法是:矩形框中写有对象或类名,且名字下面有下划线。注意参与者(系统、子系统或类发生交互作用的外部用户)是一中特殊的对象 | |
生命线(LifeLine) | 生命线用来表示序列图中的对象在一段时间内的存在。每个对象的底部的中心位置都带有生命线。生命线是一个时间线,所用时间取决于交互持续的时间,也就是说生命线表现了对象存在的时间。在序列图中一条垂直的虚线 | |
激活(Active) | 激活是对象操作的执行,它表示一个对象直接或通过从属操作完成操作的过程。激活在序列图中使用一个细长的矩形表示,它的顶端与激活时间对齐,底端与完成时间对齐 | |
消息(Message) | 消息是从一个对象向另一个对象或其它几个对象发送信号,或由一个对象调用另一个对象的操作,它可以有不同的实现方式,如过程调用、活动线程间的内部通信、事件的发生等。箭头以时间顺序在图中从上到下排列 1)简单消息 简单消息可以泛指对象之间的任何消息调用或发送,而不必关心是异步还是同步的; (2)同步消息 对象发送消息后,需要接收消息的对象响应完毕并返回消息时才会进行其余的工作; (3)异步消息 对象发送消息后,不需要等待接收对象的返回消息可以继续执行其余的工作; (4)自反消息 也是简单消息的一种,不过是对象向自己发送消息,而不是其它的对象。 |
四、结构化控制
在 UML 1.x中,顺序图十分不擅长表示循环行为和条件行为。因此在 UMI 2.0以上的标淮中,顺序图被赋子了更强大的能力。UML标准给顺序图提供了“片段”(fragment)机制,一个片段有一个关键字,可以包含一个消息序列甚至更多子片段。新增的结构化控制操作符使得我们可以通过顺序图来表达更加复杂的动作序列。在 UML 2.0中将控制操作符表示为顺序图上的一个矩形区域,其左上角有一个写在一个小五边形内的标签,表明控制操作符的类型。操作符对穿过它的生命线发挥作用。如果一条生命线刚好运行到操作符某一位置,操作符可以决定将其中断,并在操作符的另一位置重新开始。下面简要介绍几种常见的控制类型
- 可选片段:关键字为opt,表示一种单条件分支。如果对象生命线在进人操作符的时候满足中括号中的条件,那么操作符的主体就会得到执行。监护条件是一个用中括号括起来的布尔表达式,它可能出现在主体内部任何一条生命线的顶端,它可以引用该对象的属性。
- 条件片段:关键字为alt,表示一种多条件分支。如果需要根据控制条件是否被满足而做出不同的决策,那么可以在条件执行的片段内部使用虚线隔开不同区域。当生命线运行到这一区城时,根据片段中注明的条件,选择其中一个区域执行。如果有多于一个监护条件为真,那么选择哪个分区是不确定的,而且每次执行的选择可能不同。如果所有的监护条件都不为真,那么控制将跨过这个控制操作符而继续执行。其中的一个分区可以用特殊的监护条件【else】,如果其他所有区城的监护条件都为假,那么执行该分区。
- 并行片段:关键字为 par,表示片段内有两个或更多的并行子片段。并行片段在UML活动图中表示多个活动可以并行执行的部分。它是一种特殊的控制节点,用于描述流程中的并行分支。在UML活动图中,并行片段用一个矩形框来表示,这个矩形框包含多个并行的活动分支。每个分支代表一个并行执行的路径。
- 循环片段:关键字为loop,表示一个循环。使用循环片段以及循环片段中的条件符号,可以得到一个循环结构,只要被包括在条件符号中的条件仍然满,那么就继续进行循环块中的工作,直到循环条件为假,跳出循环块,进人下一段生命线。
- 交互片段:关键字为ref,表示对一段交互的引用。在一个交互图中使用交互片段引用其他交互图。其表示方法是在操作符为ref的片段矩形中写明引用的交互图名称。当有一段交互需要经常被执行时,可以使用交互片段将其预先打包成一个顺序片段,后面在需要再进人这一段流程时仅仅“调用”这一功能即可。