时序图简述

什么是时序图

时序图(Sequence Diagram),亦称为序列图、循序图或顺序图,是一种UML交互图。它经过描述对象之间发送消息的时间顺序显示多个对象之间的动态协做。数据库

它能够表示用例的行为顺序,当执行一个用例行为时,其中的每条消息对应一个类操做或状态机中引发转换的触发事件。并发

时序图是一个二维图,横轴表示对象,纵轴表示时间,消息在各对象之间横向传递,依照时间顺序纵向排列。异步

时序图的做用

  • 展现对象之间的交互顺序;将交互行为建模为消息传递,经过描述消息是如何在对象间发送和接收的来动态展现对象之间的交互;
  • 相对于其余UML图,时序图更强调交互的时间顺序;
  • 能够直观的描述并发进程

组成元素

1. 角色(Actor)


系统角色,能够是人、机器、其余系统、子系统;在时序图中用 🕴 表示。ide

2. 对象(Object)


对象的三种命名方式

第一种方式包括对象名和类名,例如:直播课时:课时,在时序图中,用“对象:类”表示; 第二种方式只显示类名,即表示它是一个匿名对象,例如: :课程;在时序图中,用“:类”表示; 第三种方式只显示对象名不显示类名,例如:讲师;在时序图中,用“对象”表示。工具

命名方式的选择

三种命名方式都可,哪一种最容易让阅读该时序图的人理解,就选择哪一种。oop

对象的排列顺序

对象的左右顺序并不重要,可是为了做图清晰整洁,一般应遵循如下两个原则:ui

  1. 把交互频繁的对象尽量的靠拢;
  2. 把初始化整个交互活动的对象放置在最左端。

3. 生命线(Lifeline)


在时序图中表示为从对象图标向下延伸的一条虚线,表示对象存在的时间。3d

4. 控制焦点(Focus of Control)


又称为激活期,表示时间段的符号,在这个时间段内对象将执行相应的操做。它能够被理解成C语言语义中一对花括号{ }中的内容;用小矩形表示。cdn

5. 消息(Message)


消息通常分为同步消息(Synchronous Message),异步消息(Asynchronous Message)和返回消息(Return Message)。对象

  • 消息的发送者把控制传递给消息的接收者,而后中止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义;
  • 消息发送者经过消息把信号传递给消息的接收者,而后继续本身的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工做的。
  • 返回消息表示从过程调用返回。

6. 自关联消息


表示方法的自身调用或者一个对象内的一个方法调用另一个方法。

7. 组合片断


组合片断用来解决交互执行的条件和方式,它容许在序列图中直接表示逻辑组件,用于经过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。组合片断共有13种,名称及含义以下:

经常使用组合片断举例:

用来指明在两个或更多的消息序列之间的互斥的选择,至关于经典的if..else..

  1. 抉择(Alt)

抉择在任何场合下只发生一个序列。 能够在每一个片断中设置一个临界来指示该片断能够运行的条件。else 的临界指示其余任何临界都不为 True 时应运行的片断。若是全部临界都为 False 而且没有 else,则不执行任何片断。

  1. 选项(Opt)

包含一个可能发生或不发生的序列;

  1. 循环(Loop)

片断重复必定次数,能够在临界中指示片断重复的条件。

  1. 并行(par)

时序图的绘制工具

时序图的绘制工具备VISO、Rational Rose、StarUML、Web Sequence Diagrams、Timing Designer、Trufun Plato等,可任选其一。

时序图的画法及示例

时序图的绘制步骤可简单总结以下:

  1. 划清边界,识别交互的语境;
  2. 将所要绘制的交互场景中的角色以及对象梳理出来;
  3. 从触发整个交互的某个消息开始,在生命线之间从上到下依次画出全部消息,并注明每一个消息的特性(如参数等)。

接下来,咱们按照上面所讲的时序图的绘制步骤,以学生在教务系统中查询其课程的成绩为例,来说解时序图的绘制方法。

1. 划清边界,识别交互的语境


所谓划清边界,就是要界定好本身所要画的时序图的范围,“学生在教务系统中查询其课程的成绩”就是所要绘制的时序图的交互内容,不用往上延伸到用户登陆,也不要往下延伸到下载成绩单。

识别交互的语境,便是读懂所要画的时序图的前提和背景。好比本例中,既然学生能够查询成绩,那么该学生确定已经注册并认证过其身份,并可选择其所考试的课程查询相应成绩。

2. 梳理角色和对象


在本例中,角色有学生,对象有教务系统、课程、成绩。

对象的梳理是一个相对主观的过程,好比本例中,课程以及成绩分别做为了对象存在,也能够合并为数据库这一个对象。

请注意:角色以及对象,都为名词,动词不可做为角色和对象,如“成绩查询”不可做为对象。

3. 添加消息


学生的登陆验证做为本时序图的前置行为,可直接引用到本时序图中,也可忽略不画;学生进入成绩查询页面后,页面会加载本学生的成绩查询课程列表,并显示出课程对应的成绩;

时序图绘制技巧

时序图的绘制技巧:

  1. 从初始消息开始画,依次画出随后消息,并给每一个消息分配序号,方便理解。
  2. 角色和对象用名词,消息用动词。
  3. 角色放在时序图的开始位置,对象重要程度或使用频率从左到右排列。这就要根据时间的流程考虑了,是一个比较主观的事情。
  4. 控制焦点两端要以消息元素封顶,控制焦点不要超过消息元素
相关文章
相关标签/搜索