一、概念
时序图是强调消息时间顺序的交互图。
时序图描述了对象之间传送消息的时间顺序,用来表示用例中的行为顺序。
时序图将交互关系表示为一个二维图。即在图形上,顺序图是一张表,其中显示的对象沿横轴排列,从左到右分布在图的顶部;而消息则沿纵轴按时间顺序排序。创建顺序图时,以能够使图尽量 简洁为依据布局。
时序图示例:
二、时序图中包括的元素
1、角色(Actor)
系统角色,可以是人或者其他系统,子系统。
2、对象(Object)
对象代表时序图中的对象在交互中所扮演的角色,位于时序图顶部和对象代表。
将对象置于时序图的顶部意味着在交互开始的时候对象就已经存在了,如果对象的位置不在顶部,那么表示对象是在交互的过程中被创建的。
时序图中对象的符号和对象图中对象所用的符号一样。
对象实例
对象一般包含以下三种命名方式:
第一种方式包含对象名和类名。
第二种方式只显示类名不显示对象名,即为一个匿名对象。
第三种方式只显示对象名不显示类名。
3、生命线(Lifeline)
生命线是一条垂直的虚线,表示时序图中的对象在一段时间内的存在。每个对象的底部中心的位置都带有生命线。
生命线是一个时间线,从时序图的顶部一直延伸到底部,所用的时间取决于交互持续的时间。
对象与生命线结合在一起称为对象的生命线,对象的生命线包含矩形的对象图标以及图标下面的生命线。
对象的生命线:
4、激活(Activation)
激活表示该对象被占用以完成某个任务,去激活指的则是对象处于空闲状态、在等待消息。
在UML中,为了表示对象是激活的,可以将该对象的生命线拓宽成为矩形。其中的矩形称为激活条或控制期,对象就是在激活条的顶部被激活的,对象在完成自己的工作后被去激活。
激活期实例
5、消息(Message)
消息是从一个对象到另一个或者几个其他对象的信息传递,简单地说,消息就是对象与对象、参与者与参与者,或者对象与参与者之间的某种通信方式。
消息定义的是对象之间某种形式的通信,它可以激发某个操作、唤起信号或导致目标对象的创建或撤销。
消息是两个对象之间的单路通信,从发送方到接收方的控制信息流。
消息可以用于在对象间传递参数。
消息可以是信号,也可以是调用。
在UML中,消息使用箭头来表示,箭头的类型表示了消息的类型。
UML的消息分为:
(1)同步消息:调用(call),这是一个来自消息发送者对象的请求,它被传递给消息的接受者对象。它请求接收者对象执行其(接收者对象的)某种操作。通常,这需要发送者等待接收者来执行该操作。由于发送者等待接收者(即发送者和接收者同步),这种消息又叫同步的(synchronous)消息,同步消息的接收者必须是一个被动对象(Passiveobject),即它是一个需要通过消息的驱动才能执行动作的对象。在UML中用一个带有实心箭头的实线来表示这种类型的消息。
(2)返回消息:用带有两条线的箭头的虚线表示的返回消息。
(3)异步消息(asynchronous):发送异步消息的对象不需要等待对方对消息的应答便可以继续自己的操作。
消息示例
三、对象的创建和撤销
1、创建
如果对象位于时序图的顶部,说明在交互开始之前该对象已经存在了。如果对象是在交互的过程中创建的,那么它应当位于图的中间部分。
对象在创建消息发生之后才能存在,对象的生命线也是在创建消息之后才存在的。
2、撤销
如果要撤销一个对象,只要在其生命线终止点放置一个“X”符号即可,该点通常是对删除或取消消息的回应。
四、时序图建模技术
1.设置交互的语境。
2.通过识别对象在交互中扮演的角色,设置交互的场景。
3.为每个对象设置生命线。
4.从引发某个消息的信息开始,在生命线之间画出从顶到底依次展开的消息,显示每个消息的特性(如参数)。
5.如果需要可视化消息的嵌套或实际计算发生时的时间点,可以用激活修饰每个对象的生命期。
6.如果需要说明时间或空间的约束,可以用时间标记修饰每个消息,并附上合适的时间和空间约束。
7.如果需要更形式化的说明某控制流,可以为每个消息附上前置和后置条件。
相关阅读:UML建模之时序图