什么是序列图?全面指南
UML序列图是交互图,详细描述了操作的执行方式。它们在协作的背景下捕捉对象之间的交互。序列图以时间为焦点;通过使用图表的垂直轴表示时间,直观地展示交互的顺序,详细说明发送了哪些消息以及何时发送。
VP AI:自动化序列图
尽管传统建模需要手动拖放操作,Visual Paradigm AI极大地加速了这一过程。通过利用自然语言处理,VP AI允许用户描述一个场景——例如“用户提交登录请求,系统将凭据与数据库进行验证,并返回成功令牌”——并自动生成完整的UML序列图。此功能弥合了需求收集与可视化建模之间的差距,确保非技术利益相关者能够参与架构设计,同时保持符合UML标准。
关键概念
在深入复杂场景之前,理解构成序列图的基础元素至关重要:
- 对象维度(水平方向): 水平轴显示参与交互的元素。通常情况下,对象根据其在消息序列中参与的时间从左到右列出。
- 时间维度(垂直方向): 垂直轴表示时间沿页面向下推进。请注意,序列图中的时间关注的是顺序,而不是持续时间。除非特别用约束标注,否则垂直空间与交互的持续时间无关。
- 生命线: 表示交互中的一个独立参与者。
- 激活: 生命线上的一条细长矩形,表示元素执行操作的时段。顶部与启动对齐,底部与完成对齐。
序列图的目的
序列图是用途广泛的工具,用于:
- 建模系统中活跃对象之间的高层交互。
- 建模协作中实现用例的各个对象实例之间的交互。
- 建模协作中实现操作的各个对象之间的交互。
- 捕捉在实现用例或操作的协作中发生的交互(实例图或通用图)。
序列图符号
理解符号对于创建准确的图表至关重要。以下是Visual Paradigm中使用的标准视觉表示:
参与者与消息
- 参与者: 由与主体交互的实体扮演的角色(例如,人类用户、外部硬件)。参与者位于主体之外。
- 调用消息: 定义 Lifelines 之间的特定通信。它表示对目标 Lifeline 上的操作的调用。
- 返回消息: 表示将信息传回对应前一个消息的调用者。
- 自消息: 表示在同一 Lifeline 上调用消息。
- 递归消息: 自消息的一种变体,其中目标指向从调用该消息的激活之上的激活。
- 创建消息: 表示目标 Lifeline 的实例化。
- 销毁消息: 表示请求销毁目标 Lifeline 的生命周期。
- 持续时间消息: 显示消息调用时两个时间点之间的距离。
序列片段
UML 2.0 引入了序列片段以管理复杂的交互,如循环和分支。序列片段以一个称为“组合片段”的框表示,该框包含交互的一部分。
- alt: 选择多个片段;只有条件为真的那个会执行。
- opt: 可选;只有在提供的条件为真时,片段才会执行。
- par: 并行;每个片段并行运行。
- loop: 片段可根据保护条件执行多次。
- region: 临界区;片段在同一时间只能有一个线程执行。
- neg: 负面;片段显示无效的交互。
- 参考: 参考;指在另一个图表上定义的交互。
顺序图示例:酒店系统
顺序图常用于细化用例场景。以下是预订酒店房间的顺序图的概念性描述:
场景: 发起该序列的对象是 预订窗口。随着时间推移,该窗口向 酒店系统 发送查询可用性的消息。如果可用,系统会发送一个 创建消息 以生成一个新的 预订对象.
注意: 类和对象图是静态模型视图。交互图是动态的。它们描述了对象如何随时间协作。
顺序图——先建模后编码
有人可能会问:如果顺序图接近代码级别,为什么不直接写代码呢?以下是为什么先建模更优越的原因:
- 抽象: 一个好的顺序图略高于实际代码层次,使逻辑更清晰。
- 语言中立: 无论你使用 Java、C# 还是 Python 编码,该逻辑都适用。
- 协作: 非程序员和利益相关者可以理解并验证顺序图。
- 团队效率: 团队协作设计顺序图比集体编写代码更容易。
- 测试与用户体验: 模型可用于测试计划和用户体验原型设计。
开始使用 Visual Paradigm
你已经了解了顺序图是什么以及如何区分其组成部分。Visual Paradigm 社区版是一款获得国际奖项的 UML 建模工具,可让你快速、轻松且直观地绘制这些图表。它支持所有 UML 图表类型,且完全免费用于学习目的。