什么是序列图

两者都是序列图和协作图都是交互图。交互图关注系统的动态视图。一个序列图是一种强调消息时间顺序的交互图。它描绘了场景中涉及的对象和类,以及为实现场景功能所需在对象之间交换的消息序列。通常,您会使用一个序列图来指定用例的主要流程,并使用该图的变体来指定用例的异常流程。
Sequence Diagram, UML Diagrams Example: Break Communication Fragment - Visual Paradigm Community Circle

序列图的组成部分

对象

在UML中,序列图中的一个对象以一个包含对象名称(下划线)的矩形表示。对象可以通过三种方式命名:对象名称、对象名称及其类名,或仅类名(匿名对象)。命名对象的三种方式如下面的图所示。

生命线

协作(场景)中参与者的实体水平写在图的顶部。生命线以每个对象下方的虚线垂直线表示。这些表示对象的存在。

Lifelines

对象名称可以是具体的(例如,myAccount),也可以是通用的(例如,myAccount :Account)。通常,可以使用匿名对象(:Account)来表示该类中的任意对象。每个对象还有一条时间线,以对象下方的虚线表示。对象之间的消息用从发送方对象指向接收方对象的箭头表示。

在面向对象系统中,一切事务都由对象完成。对象负责管理数据、在系统中移动数据、响应查询以及保护系统。对象通过彼此通信或交互来协同工作。

消息

消息以水平方向表示操作的调用。它们从发送方绘制到接收方。顺序由垂直位置表示,第一个消息显示在图的顶部,最后一个消息显示在底部。因此,序列号是可选的。

线型和箭头类型表示所使用的消息类型:

  1. 一个同步消息(通常是操作调用)以带实心箭头的实线表示。这是用于发送方和接收方之间正常通信的常规消息调用。
    Lifelines with synchronous message
  2. 一个返回消息使用带空心箭头的虚线。
    Lifelines with return message
  3. 一个异步消息具有实线和空心箭头。信号是一种没有回复的异步消息。
    Lifelines with asynchronous

创建和销毁消息

参与者不一定在整个序列图交互期间都存在。参与者可以根据传递的消息被创建和销毁。

一个构造函数消息创建其接收者。在交互开始时已存在的发送者被放置在图的顶部。通过构造函数调用在交互过程中创建的目标会自动放置在图的更下方。

Lifelines with constructorA

析构消息销毁其接收者。在交互过程中,还有其他方式可以表明目标被销毁。只有当目标的销毁设置为“析构之后”时,才需要使用析构消息。

Lifelines with destructor

非瞬时消息

消息通常被认为是瞬时的,因此到达接收者所需的时间可以忽略不计。消息以水平箭头表示。为了表明接收者实际接收到消息需要一定时间,使用斜箭头.

Lifelines with instantaneous message

控制焦点

控制焦点表示元素执行操作的期间。矩形的顶部和底部分别与操作的开始时间和完成时间对齐

迭代符号

迭代符号表示一条消息被多次发送给多个接收对象,就像你在遍历一个集合时会发生的情况。你可以在方括号内显示迭代的基础,例如*[针对所有订单行]。

示例:下单

该示例展示了一个包含三个参与对象的顺序图:客户、订单和库存。即使你并不正式了解这些符号,大概也能理解其中的运作情况。

  1. 步骤1和2:客户创建一个订单。
  2. 步骤3:客户向订单中添加商品。
  3. 步骤4和5:检查每项商品在库存中的可用性。
  4. 步骤6、7、8:如果产品有库存,则将其添加到订单中。
  5. 步骤9 返回
  6. 步骤10和11:保存并销毁订单

Sequence Diagram example

顺序片段

在UML顺序图中,组合片段可用于展示循环、分支和其他选择。组合片段由一个或多个交互操作数组成,每个操作数包含一个或多个消息、交互使用或组合片段。

顺序片段以一个称为组合片段的框表示,该框包含顺序图中的一部分交互。片段操作符(位于左上角)表示片段的类型。片段类型包括 ref、assert、loop、break、alt、opt 和 neg、ref、sd。

顺序图符号总结

操作符 含义
alt 替代多个片段:只有条件为真的那个会执行。
opt 可选: 仅当提供的条件为真时,该片段才会执行。相当于只有一个轨迹的alt。
并行 并行: 每个片段并行运行。
循环 循环: 该片段可能多次执行,守卫条件决定了迭代的基础。
临界区 临界区: 该片段在同一时间只能有一个线程执行。
否定 否定: 该片段显示一个无效的交互。
引用 引用: 指向另一个图表中定义的交互。框架将覆盖该交互涉及的生命线。您可以定义参数和返回值。
顺序图 顺序图: 用于包围整个顺序图。

示例 – 下单场景

一位希望在线下单的船员。所订购的物品将根据该成员的会员状态(VIP、普通会员)通过快递或普通邮件发送给该成员。如果该成员在下单时选择了通知选项,商店可选地向其发送确认通知。

Sequence Diagram example

Visual Paradigm 支持顺序图及其他 UML 图表类型。您可以在使用顺序图建模系统动态行为时找到所需的所有工具。

快速视频 – 绘制顺序图的 5 个步骤

总结

顺序图是基于时间序列的对象协作模型。它展示了在特定用例场景中对象如何与其他对象交互。借助先进的可视化建模功能,您只需点击几次即可创建复杂的顺序图。此外,Visual Paradigm 可根据您在用例描述中定义的事件流程生成顺序图。

 

参考

Leave a Reply