创建序列图
序列图展示了系统中各元素之间传递消息的顺序,以完成特定任务或用例。跨越系统边界的事件被对象和人员(参与者)用于完成各自的流程。

也称为系统序列图,它们是 UML 图的主要类型之一。它们用于规划软件产品的开发或扩展,并作为UML 类图的补充,展示哪些类的数据在哪些元素之间传递。
序列图是对用例图的扩展——它们对场景或用例必须执行的一系列事件进行建模。由于它们展示了所有跨系统消息,因此更接近实际代码。然而,它们仍然与编程语言无关,因此高于实际代码的层面。
如何读懂 UML 序列图
阅读序列图时,要从上往下读。序列图越往下读,时间就越长,发生的事件就越多。
每个系统/对象实例和参与者都放置在生命线(一条垂直的虚线)上,该生命线横跨序列图的顶部。
在生命线之间传递的消息是连接器——实线表示初始消息或呼出电话,虚线表示返回值(可选)。
当系统需要执行耗时较长的过程时,可以在生命线上使用一个垂直方框(激活框)。该方框在首次收到消息时“启动”,并在所有消息发送/接收完毕且过程完成后“结束”。
如果在整个序列结束之前删除了对象实例,则其生命线将终止X。
如果呼叫消息创建了一个新的对象实例,则会在该点添加一条新的生命线。
重复或递归(即序列或消息的一部分重复出现)用一个框架形状框起来,也称为序列片段。如果这是一个复杂的子过程,请将其拆分成单独的图表。
提示:将每个序列片段图放在同一个图表文件中的单独图表页面上。在原始框架形状上添加指向该图表页面的链接。
帧可以用来显示备选序列——这些序列只有在特定条件成立时才会执行。它们也用于并行序列,或者指示存在一个关键的单线程。
有关如何标记和使用各种类型的序列片段,请参阅下面的框架标签部分。
在 draw.io 中绘制序列图
您可以修改几个序列图模板,以便更快地开始绘制序列图。
UML 2.5和 UML 形状库包含了您需要的所有形状。点击左侧面板底部的“更多形状” ,在“软件”部分启用 UML 和 UML 2.5 库,然后点击“应用”。
生命线:拖动生命线的末端可以延长或缩短它。UML 图形库中有多种类型的生命线。

从 UML 形状库中拖放一个销毁形状到生命线的末端以终止该生命线,或者使用UML 2.5 形状库中的销毁发生规范形状。
激活框:当激活框的轮廓为紫色时,将其拖放到生命线上即可将其固定。如果您在绘图画布上移动激活框,它将始终保持在生命线上。

拖动激活形状的起点或终点可以缩短或延长它。沿生命线上下拖动激活形状的方框可以移动它。
消息连接器:使用UML 形状库中的“找到的消息”形状来启动序列。
同步调用形状会在右侧调用一个新的激活框 - 将其拖放到现有的生命线上,并将消息的结尾拖放到原始激活框中。
提示:放置连接器时,形状上的绿色轮廓表示固定连接;蓝色轮廓表示如果移动激活框,消息连接器将“浮动”。

回调形状会在序列的左侧添加一个新的激活框 - 将其放置在生命线上,然后将消息拖放到右侧的原始激活框中。
当生命线轮廓为紫色时,将“自呼”形状略微向右偏移放置在现有激活框上。您可以像操作激活框一样扩展和移动此“自呼”形状,消息的起始端与底层激活框相连。

或者,您可以将连接器从一个激活框拖放到另一个激活框中,或者使用UML 形状库中的“找到的消息”、“消息”或“消息返回”形状之一。
框架形状:使用UML形状库中的框架形状。对于备选路径或并行序列,请从通用形状库中拖动一条虚线或点划线,并将其两端作为固定连接器连接到框架形状的内部。

条件:双击绘图画布的空白区域,在方括号内输入条件。将此文本拖入现有框架形状内,即可将其添加为条件(保护条件)。将框架和条件组合在一起,以便于一起移动。

双击消息连接器即可添加标签 - 连接器可以在不同位置添加多个标签。
注释和评论:在 UML 2.5 形状库中的 “注释”形状中输入其他信息。

将序列图置于整体框架形状(或UML 2.5 形状库中的“图表”形状)中是可选的。
在序列图中标记消息和角色
对象/系统实例和参与者的角色名称用冒号表示。例如: Customer
消息的条件(保护措施)用方括号标出,可以放在消息本身,也可以放在消息框中。例如[value > $1000]
消息编号可用于清晰地显示事件顺序。其工作原理类似于版本编号,每条生命线都会增加一个点。在消息标签的开头添加消息编号和一个冒号。例如:在我们的图表查看器中打开此序列图1.3: searchByItem(itemName)
序列片段的框架标签
序列片段的类型标注在框架形状的左上角。
alt - 备选片段,其中只有一个是正确的。
opt - 一个可选片段,包含一个仅当条件为真时才会执行的序列。
par - 并行片段,可同时执行多个序列。
循环- 一个会多次执行的代码片段。只有当条件(守卫条件)为真时,该序列才会继续循环。
区域- 此片段只能由一个线程执行一次 - 这是一个关键区域。
neg - 显示无效序列的片段。
sd - 嵌套序列图,完全绘制在该图表页面上的包含框架形状内。
ref - 指代另一个图表中绘制的子序列的片段,理想情况下应链接到另一个图表页面。将此框架形状的“样式”选项卡中的“通道颜色”设置为白色,以覆盖底层序列细节,并使此引用片段与其他框架形状区分开来。
其他 UML 行为图类型
UML 中的行为图分为四种类型:活动图、用例图、状态图和交互图子集。
序列图是最常见的交互图类型,它使用 UML 表示法对系统的行为进行建模。

请参阅UML 图概述,了解所有不同类型的图。
还有另外三种类型的交互图。
交互概览图——一种更接近活动图的高层级图表。每个活动都被一个框架形状包围,该框架形状可能包含序列图或其他类型的交互图。
使用多页图表存储所有序列图和交互概览图,并从概览页面链接到每个详细序列。
沟通图——也称为协作图,是序列图的另一种视图,看起来更像流程图。
时序图- 一种序列图,它使用泳道和单线来指示序列中每个部分完成所需的时间。
