序列图是对象之间基于时间顺序的动态交互,它显示出随着时间变化对象之间是如何进行通讯的。
在UML表示中,序列图将交互关系表示为一个二维图,其中,纵向是时间轴,时间沿竖线向下延伸。横向代表在协作中各独立对象的角色。
角色使用生命线表示,当对象存在时,生命线用虚线表示,此时对象不处于激活状态;当对象的过程中处于激活状态时,生命线是一个双道线。
序列图中的消息使用从一个对象的生命线到另一个对象的生命线的箭头表示,箭头以时间顺序在图中从上到下排列。
序列图的用途
1. 确认和丰富一个使用语境的逻辑表达;
2. 细化用例的表达,它是序列图的主要用途,把用例表达的需求转化成进一步/更加正式层次的精细表达;
3. 有效的描述如何分配各个类的职责,以及各个类具有相应职责的原因。eg:Customer对象向Address对象请求其街道名称,指出了Customer对象应该具有“知道其街道名称”这个职责。
开发者一般认为序列图只对他们有意义。然而,一个组织的业务人员会发现,序列图显示不同的业务对象如何交互,对于交流当前业务如何进行很有用。除记录组织的当前事件外,一个业务级的序列图能被当作一个需求文件使用,为实现一个未来系统传递需求。在项目的需求阶段,分析师能通过提供一个更加正式层次的表达,把用例带入下一层次。那种情况下,用例常常被细化为一个或者更多的序列图。组织的技术人员也能通过序列图来记录未来系统的行为应该如何表现。在设计阶段,架构师和开发者能使用该图挖掘出系统对象间的交互,这样充实整个系统的设计。
对象
序列图中的对象可以是系统的参与者或任何有效的系统对象。
序列图中的对象和对象图中的对象概念一样,都是类的实例,对象的表示形式也和对象图中的对象的表示形式一样,使用包围名称的矩形框来标记,所显示的对象及其类的名称下都带有下划线,二者用冒号隔开,使用对象名:类名的形式。
生命线
生命线是一条垂直的虚线,用来表示序列图中的对象在一段时间内的存在。
激活
序列图可以描述对象的激活,激活是对象操作的执行,它表示一个对象直接或通过从属操作完成操作的过程。
在序列图中,激活使用一个细长的矩形框表示,它的顶端与激活时间对齐,而底端与完成时间对齐。
消息
消息是从一个对象(发送者)向另一个或几个其他对象(接收者)发送信号,或由一个对象(发送者或调用者)调用另一个对象(接收者)的操作。
消息由三部分组成,分别是发送者/接收者和活动。 活动为调用,信号,发送者的局部操作或原始活动,如创建或销毁等。
创建对象与销毁对象
在序列图的图形表示中,和其他对象不一样的是,其他对象处于图的顶部,被创建的对象通常处于图的中间部分。创建对象的消息通常位于被创建对象的水平位置。
销毁对象表示对象生命线的结束,在生命线中使用一个“X”号进行标识。
在序列图中,消息编号有:无层次编号, 多层次编号, 顺序编号。
创建序列图步骤大致分为:
1. 识别交互过程 2. 确定并创建交互对象 3. 创建生命线 4. 做出消息传递