UML顺序图是关键的交互图,详细描述了系统内操作的执行方式。通过捕捉协作背景下对象之间的交互,这些图表以可视化方式呈现时间,展示消息交换的具体顺序。
本全面指南涵盖从基本定义到复杂组合片段的所有内容,帮助您有效建模交互行为。
顺序图(也称为序列图)是一种UML交互图。它通过描述对象之间消息发送的时间顺序,展示多个对象之间的动态协作。与其他UML图不同,顺序图特别强调交互行为的时间顺序,以可视化方式描述并发过程。
手动创建复杂的顺序图可能耗时费力,需要精确对齐生命线,并为每种消息类型使用准确的标注。Visual Paradigm AI通过允许您使用自然语言提示生成专业的UML顺序图,从而改变这一过程。
在深入复杂场景之前,必须理解构成顺序图的基础元素。
参与者代表与系统交互的实体所扮演的角色,例如人类用户、机器或外部系统。需要注意的是,参与者并不一定代表某个具体的物理实体,而仅仅是一个特定角色。一个人可以扮演多个参与者角色,反之,一个参与者角色也可能由多人扮演。
对象以包含对象名称的矩形表示。UML中有三种标准的对象命名方式:
对象:类).:课程).讲师).提示: 将频繁交互的对象放在一起。通常将发起交互的对象放在最左侧。
从对象图标向下延伸的虚线表示对象存在的时长。这条垂直轴代表时间。
用生命线上的细长矩形表示,控制焦点(或激活期)表示元素执行操作的时间段。矩形的顶部与操作开始时间对齐,底部与操作完成时间对齐。
消息定义了生命线之间的通信。发送方将控制权或信号传递给接收方。
参与者并不总是持续整个图表的时长。一个构造函数消息 创建接收方(将新对象放置在图表更下方)。一个析构函数消息 销毁其接收方,结束其生命线。
为了模拟复杂的逻辑,如循环、分支和选择,UML 使用组合片段。这些是包围交互部分的矩形框。
| 操作符 | 含义 |
|---|---|
| 替代;多个片段中仅执行条件为真的那一个(相当于 if..else)。 | 替代多个片段;仅条件为真的那个片段执行(相当于 if..else)。 |
| 可选;仅当条件为真时,片段才会执行。 | 可选;仅当条件为真时,片段才会执行。 |
| 循环;根据一个保护条件,片段会多次执行。 | 片段根据一个保护条件多次执行。 |
| 当保护条件变为真时,允许跳出外层循环(常用于异常处理)。 | 当保护条件变为真时,允许跳出外层循环(常用于异常处理)。 |
| 并行;每个片段并发运行。 | 并行;每个片段并发运行。 |
| 临界区;一次只能有一个线程执行此片段。 | 临界区;一次只能有一个线程执行此片段。 |
| 引用;指向另一个图中定义的交互。 | 引用;指向另一个图中定义的交互。 |
考虑一个客户与订单对象和库存对象交互的场景。流程如下:
在这种情况下,创建订单是一个创建消息,检查库存是一个同步消息,并且保存订单是一个自我消息或对数据库对象的调用。
使用一个Break片段非常适合建模错误。例如,在银行交易中:
余额 < 金额.addDebitTransaction消息继续执行。为确保您的图表符合规范且易于阅读,请参考此快速符号检查清单: