UML 之 序列图和协作图

序列图(Sequence Diagram)
    亦称为时序图或循序图,是一种UML行为图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,时序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。
    序列图展示对象之间的交互,这些交互是指在场景或用例的时间流中发生的。序列图属于动态建模。
    序列图的重点在消息序列上,也就是说,描述消息是如何在对象间发送和接收的。表示了对象之间传送消息的时间顺序。


序列图中的事物

    参与者:与系统、子系统或类发生交互作用的外部用户。

                             

    对象:序列图的横轴上时与序列有关的对象。对象的表示方法是:矩形框中写有对象或类名,且名字下面有下划线。

                           

    生命线:坐标轴纵向的虚线表示对象在序列中的执行情况(即发送和接收的消息,对象的活动)这条虚线称为对象的“生命线”。

                              

    消息符号:消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。

                      UML 之 序列图和协作图_第1张图片

下面是一个简单的序列图例子

              UML 之 序列图和协作图_第2张图片





协作图(Collaboration Diagram )
    是一种交互图(interaction diagram),强调的是发送和接收消息的对象之间的组织结构,使用协作图来说明系统的动态情况。一个协作图显示了一系列的对象和在这些对象之间的联系以及对象间发送和接收的消息。


协作图中的事物

    参与者:发出主动操作的对象,负责发送出事消息,启动一个操作。

                             

    对象:对象是类的实例,负责发送和接收消息。与序列图中的符号相同,冒号前为对象名,冒号后为类名。

                           

    消息流:箭头指示消息的流向,从消息的发出者指向接受者。标签对消息作说明,其中,顺序号指出消息的发生顺序,并且指明了消息的嵌套关系,冒号后面是消息的名字。

                         






协作图与序列图的区别和联系
    协作图和序列图都表示出了对象间的交互作用,但是它们侧重点不同。
    序列图清楚地表示了对象间的关系(强调空间),但时间顺序必须从顺序号获得。
    协作图和序列图可以相互转化


乘坐电梯的协作图
                          UML 之 序列图和协作图_第3张图片

    参与者需要乘坐电梯,他从系统外部按下按钮,让电梯到达他想去的楼层。此时,电梯系统的操作被启动,电梯控制对象以循环的方式检查所有的电梯,从中选择一个工作队列长度最短的。然后,它创建一个作业命令,并将该命令放入对应电梯的工作队列,接着激活队列。电梯对象并发运行,从它的队列中选择一个作业并执行。电梯是一个活动对象,它与它的控制线程并发执行。


下面是我自己画的机房收费系统中上下机的序列图,仅供参考,有不足之处,希望大家给我指出来

                UML 之 序列图和协作图_第4张图片






你可能感兴趣的:(UML)