Read this post in: de_DEen_USes_ESfr_FRhi_INid_IDjapl_PLpt_PTru_RUvizh_TW

关于序列图你需要知道的一切:全面指南

简介

UML序列图是交互图,详细描述操作的执行方式。它们在协作背景下捕捉对象之间的交互。序列图以时间为焦点,通过使用图表的垂直轴表示时间,直观地展示交互的顺序、发送的消息及其时间。

什么是序列图?

序列图,也称为顺序图,是一种UML交互图。它通过描述消息在对象之间发送的时间顺序,展示多个对象之间的动态协作。

在UML中,序列图中的对象以一个包含对象名称(下划线)的矩形表示。对象的命名方式有三种:

  • 对象名称

  • 对象名称及其类

  • 仅类名称(匿名对象)

编辑此序列图

序列图中的对象

  1. 展示对象之间交互的顺序: 将交互行为建模为消息传递,并通过描述消息在对象之间发送和接收的方式,动态展示对象之间的交互。

  2. 时间强调: 与其他UML图相比,序列图更强调交互行为的时间顺序。

  3. 并发可视化: 它可以直观地描述并发过程。

序列图的元素

  1. 参与者: 系统参与者,可以是人、机器、其他系统或子系统;用于在时间序列图中表示。

  2. 对象: 对象的命名方式有三种:

    • 带类的命名对象: 包括对象名称和类名称,例如:对象: 类

    • 匿名对象: 仅显示类名称,例如::课程

    • 仅命名对象: 仅显示对象名称,而不显示类名称,例如:讲师

    三种命名方法均可使用;请选择最便于阅读图表的人理解的一种。

  3. 对象顺序:

    • 对象的左右顺序并不重要

    • 将频繁交互的对象尽可能放得靠近

    • 将启动整个交互活动的对象放置在最左侧

生命线

从顺序图中的对象图标向下延伸的虚线,表示该对象存在的时间长度。

控制焦点(激活)

也称为激活期,这是表示对象执行相应操作的时间段的符号。可以将其理解为C语言语义中的成对括号{ };用一个小矩形表示。它表示元素执行操作的期间。矩形的顶部与操作开始时间对齐,底部与操作完成时间对齐。

消息

消息通常分为三种类型:

  1. 同步消息: 消息的发送者将控制权传递给接收者,然后停止活动并等待接收者放弃或返回控制权,用于表示同步。

  2. 异步消息: 消息的发送者通过消息将信号传递给接收者,然后继续其活动,而无需等待接收者返回消息或控制权。异步消息的接收者和发送者是并发工作的。

  3. 返回消息: 表示从过程调用中返回。

创建与销毁消息

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

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

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

非瞬时消息

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

组合片段

序列片段表示为一个称为组合片段的框,它包围了序列图中交互的一部分。片段操作符(位于左上角)表示片段的类型。

交互片段允许您将序列图中的相关消息分组。提供了多种预定义的片段类型,可用来指定替代结果、并行消息或循环。

序列图中的片段是绘制在图示部分上的矩形框。它们表示影响消息流的条件结构。在UML规范中,这些框被称为组合片段,容器称为交互操作数。框的左上角标有标签,该标签在UML中称为交互操作符。

示例 – 下单场景

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

编辑此序列图

另一个示例:下单

序列图是一种二维图,横轴表示对象,纵轴表示时间,消息在对象之间水平传递,并按时间顺序垂直排列。该示例展示了一个包含三个参与对象的序列图:客户、订单和库存。

  1. 步骤 1 和 2: 客户创建一个订单。

  2. 步骤 3: 客户将商品添加到订单中。

  3. 步骤 4、5: 检查每项商品在库存中的可用性。

  4. 步骤 6、7、8: 如果产品有库存,则将其添加到订单中。

  5. 步骤 9: 返回

  6. 步骤 10、11: 保存并销毁订单

编辑此序列图

常用组合片段

片段类型包括 ref、assert、loop、break、alt、opt 和 neg、ref、sd。

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

重要说明:

  • 可以组合框架以捕捉循环或分支等结构。

  • 组合片段关键字: alt、opt、break、par、seq、strict、neg、critical、ignore、consider、assert 和 loop。

  • 约束通常用于显示消息上的时间约束。它们可以应用于单个消息的时间或消息之间的时间间隔。

组合片段示例

1. 选择(Alt)

一个替代片段提供多个受保护的替代片段(由交互操作数分隔),即用于指定两个或多个消息序列之间的互斥选择,相当于经典的 if..else…

编辑此顺序图

2. 选择(可选)

包含一系列可能发生的或不发生的事件,这意味着可选片段仅在某些保护条件为真时才执行:

编辑此顺序图

3. 循环(循环)

循环允许一个片段重复执行,直到某个保护条件变为假:

编辑此顺序图

4. 中断

当某个保护条件为真时,中断可使外部循环提前退出:

编辑此顺序图

中断最常用于建模异常处理。此顺序图示例使用了中断组合片段,因为它将余额 < 金额的条件视为异常,而非替代流程。要理解此示例,我们从顺序图的左上角开始,自上而下阅读。当顺序到达返回值“余额”时,会检查余额是否小于金额。如果余额不小于金额,则发送的下一个消息是addDebitTransaction消息,顺序按正常流程继续。

5. 并行

并行片段允许多个交互并行运行:

编辑此顺序图

框架

框架提供了一种封装顺序图的方法。

编辑此顺序图

引用(引用)

一个框架可以在另一个顺序图中被引用:

编辑此顺序图

协议

编辑此顺序图

协作

编辑此顺序图

场景

编辑此顺序图

信号与接收

拍卖师向一群焦虑的竞标者密集的房间广播某物品的提议价格。当竞标者听到该提议时,他会决定接受或不接受该价格。

在自动拍卖中,拍卖师将如何广播提议?如果某个对象接收到特定类型的广播信号,它可能具有指定的操作,这些操作应自动被调用。这些方法称为接收。信号是一种特殊的类。接收的名称通常与信号名称匹配。接收在单独的区域中显示:

编辑此顺序图

在顺序图中,我们可以将信号表示为异步信号,将接收表示为接收调用:

编辑此顺序图

关键

编辑此顺序图

其他片段类型

  • 严格

  • 断言

  • 考虑

  • 忽略

  • 区域

  • 否定

顺序图符号概要

符号说明 视觉表示
参与者

  • 由与主体交互的实体扮演的一种角色(例如,通过交换信号和数据)
  • 位于主体之外(即,参与者的一个实例不是其对应主体实例的一部分)。
  • 表示由人类用户、外部硬件或其他主体扮演的角色。

请注意:

  • 参与者不一定代表一个具体的物理实体,而仅仅是某个实体的特定角色
  • 一个人可能扮演多个不同的参与者角色,反之,一个给定的参与者角色也可能由多个不同的人来扮演。
UML Sequence Diagram: Actor example
生命线

  • 生命线表示交互中的一个独立参与者。
UML Sequence Diagram: Lifeline example
激活

  • 生命线上的细长矩形表示一个元素执行操作的期间。
  • 矩形的顶部和底部分别与操作的开始时间和完成时间对齐
UML Sequence Diagram: Activation example
调用消息

  • 消息定义了交互中生命线之间的特定通信。
  • 调用消息是一种表示目标生命线操作调用的消息。
UML Sequence Diagram: Call message example
返回消息

  • 消息定义了交互中生命线之间的特定通信。
  • 返回消息是一种表示信息传回对应前序消息调用者的消息。
UML Sequence Diagram: Return message example
自消息

  • 消息定义了交互中生命线之间的特定通信。
  • 自消息是一种表示同一生命线消息调用的消息。
UML Sequence Diagram: Self message example
递归消息

  • 消息定义了交互中生命线之间的特定通信。
  • 递归消息是一种表示同一生命线消息调用的消息。其目标指向从消息被调用的激活上方的激活。
UML Sequence Diagram: Recursive message example
创建消息

  • 消息定义了交互中生命线之间的特定通信。
  • 创建消息是一种表示(目标)生命线实例化的消息。
UML Sequence Diagram: Create message example
销毁消息

  • 消息定义了交互中生命线之间的特定通信。
  • 销毁消息是一种表示请求销毁目标生命线生命周期的消息。
UML Sequence Diagram: Destroy message example
持续时间消息

  • 消息定义了交互中生命线之间的特定通信。
  • 持续时间消息显示消息调用在两个时间点之间的距离。
UML Sequence Diagram: Duration message example
注释
注释(评论)可为元素附加各种备注。注释本身不具有语义意义,但可能包含对建模者有用的信息。

AI驱动的序列图生成

Visual Paradigm 提供强大的 AI 驱动支持用于 UML 序列图,专注于将自然语言描述转换为详细且架构合理的交互模型。其工具可让您跳过手动绘制,直接从基于文本的场景快速生成专业图表。

核心 AI 序列图功能

  • 自然语言生成: 您可以输入一个简单的提示,例如“用户登录网站”,AI 会自动识别参与者(生命线)、消息流和激活序列。

  • 复杂逻辑自动化: AI 能够根据您对条件逻辑的文本描述,智能处理高级 UML 符号,如选择片段(alt)、选项片段(opt)和循环。

  • AI 优化工具: 此专用应用程序可将简单的交互代码或高层级提示转换为详细的 MVC(模型-视图-控制器)蓝图。它能自动将场景分解为适当的架构层,如视图、控制器和模型组件。

  • 对话式编辑: 通过 “Visual Paradigm AI聊天机器人,您可以使用诸如“添加重置状态”或“将用户重命名为客户”之类的命令,逐步优化图表。

  • 智能设计分析:您可以要求AI对您的图表进行评估,例如识别出应改为异步以提升系统性能的同步调用。

生态系统与集成

  • 多平台访问:使用 AI聊天机器人 或 Visual Paradigm Online,然后将其导入到 Visual Paradigm 桌面版 应用程序中进行高级建模和代码工程。

  • 自动化文档生成:AI可直接从您的时序图生成项目摘要、详细的行为模型以及MVC架构文档。

  • 模型间协同:Visual Paradigm的AI可以连接不同类型的图表,例如将高层次的用例转换为详细的活动图或时序图,并通过引导式步骤分解实现。


  1. 参考文献
  2. UML时序图:使用AI建模交互的权威指南:全面指南,介绍如何使用AI建模UML时序图及交互
  3. 如何使用AI聊天机器人将需求转化为图表:学习如何使用AI聊天机器人技术将文本需求转换为可视化图表
  4. 免费AI时序图优化工具:访问Visual Paradigm的AI驱动工具,用于优化和增强时序图
  5. AI时序图优化工具 – Visual Paradigm:专业功能,支持AI辅助的时序图创建与优化
  6. Visual Paradigm AI聊天机器人:通过自然语言进行UML图表创建与编辑的交互式AI聊天机器人
  7. AI聊天机器人功能 – Visual Paradigm:AI聊天机器人在图表生成与建模方面功能的概览
  8. Visual Paradigm AI时序图教程:视频教程,演示如何使用AI创建时序图
  9. 全面评测:Visual Paradigm 的 AI 图表生成功能: 对 Visual Paradigm 的 AI 驱动图表生成功能的深入评测
  10. Visual Paradigm AI 功能演示: Visual Paradigm 中 AI 功能的演示视频
  11. Visual Paradigm AI 教程: 展示 Visual Paradigm 中 AI 能力的教程
  12. Visual Paradigm 的 AI 驱动生态系统如何变革 UML 开发: 分析 AI 如何改变 Visual Paradigm 中的 UML 开发工作流程