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