UML之时序图
时序图——Sequence Diagram
通过描述对象之间发送消息的时间顺序,显示多个对象之间的动态协作。
也叫序列图,或循序图,或顺序图,是一种UML交互图。
它可以表示用例的行为顺序,当执行一个用例行为时,时序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。
时序图的画法
1、确定交互过程的上下文。
2、识别参与过程的交互对象。
3、为每个对象设置生命线。
4、从初始消息开始,依次画出随后消息。
5、考虑消息的嵌套,标示消息发生时的时间点,则采用FOC(focus of control)。
6、说明时间约束的地点。
使用ER画时序图,选择Sequence如下图:
时序图的组成部分
时序图中包括如下元素:角色,对象,生命线,激活期和消息。
1、角色(Actor):
系统角色,可以是人或者其他系统,子系统。
2、对象(Object)
对象代表时序图中的对象在交互中所扮演的角色,位于时序图顶部和对象代表。
对象一般包含以下三种命名方式:
第一种方式:包含对象名和类名。
第二种方式:只显示类名不显示对象名,即为一个匿名对象。
第三种方式:只显示对象名不显示类名。
3、生命线(Lifeline)
生命线代表时序图中的对象在一段时期内的存在。
时序图中每个对象和底部中心都有一条垂直的虚线,这就是对象的生命线,对象间的消息存在于两条虚线间。
4、激活期(Activation)
激活期代表时序图中的对象执行一项操作的时期,在时序图中每条生命线上的窄的矩形代表活动期,它可以被理解成C语言语义中一对花括号“{}”中的内容。
5、消息(Message)
消息是定义交互和协作中交换信息的类,用于对实体间的通信内容建模,信息用于在实体间传递信息。允许实体请求其他的服务,类角色通过发送和接受信息进行通信。
时序图描述
时序图描述对象是如何交互的,并且将重点放在消息序列上,也就是说,描述消息是如何在对象间发送和接收的。
时序图有两个坐标轴:纵坐标轴显示时间,横坐标轴显示对象。
每一个对象的表示方法是:矩形框中写有对象和/ 或类名,且名字下面有下划线,同时有一条纵向的虚线表示对象在序列中的执行情况(即发送和接收的消息对象的活动),这条虚线称为对象的生命线。
对象间的通信用对象的生命线之间的水平的消息线来表示,消息线的箭头说明消息的类型,如同步,异步或简单。
浏览时序图的方法是,从上到下查看对象间交换的消息,分析那些随着时间的流逝而发生的消息交换。
消息
消息可以用消息名及参数来标识,消息还可带有条件表达式,表示分支或决定是否发送消息,如果用于表示分支,则每个分支是相互排斥的,即在某一时刻仅可发送分支中的一个消息,消息也可以有顺序号,但是在时序图中,消息的顺序号很少使用,因为时序图已经将消息的顺序显式地表示出来了。
激活
当对象接收到一个消息时,该对象中的一项活动就会启动,我们把这一过程称做激活 ( Activation )。
激活会显示控制焦点,表明对象在某一个时间点开始执行,一个被激活的对象或者是执行它自身的代码,或者是等待另一个对象的返回(该被激活的对象已经向另一个对象发送了消息),在图形上,激活被绘制为对象生命线上的一个瘦高矩形。
一个对象可以通过发送消息来创建另一个对象,当一个对象被删除或自我删除时,该对象用"X"标识。
在VS中可以自动的生成时序图:
比如选择UI层的某一个方法,右击选择生成时序图即可。