通信图是什么
通信图是 UML 交互图的一种,UML 2 之前称为协作图,语义与顺序图等价:以对象及其之间的链接为中心组织图形,消息用序号标注执行顺序,如 1、1.1、2,其中点号表示嵌套调用。它擅长展示对象拓扑与多轮交互,强调谁和谁相连;顺序图强调时间轴上的先后,两者可以互相转换,只是阅读视角不同。
怎么读序号
序号表达调用层级:1 表示第一条消息,1.1 是 1 内部发起的子调用,2 是回到顶层后的第二条消息,同一层级内的多条消息可以并列。读图时先按顶层序号梳理主流程,再逐层进入子调用,就能还原出与顺序图一致的执行顺序。并发分支可以用字母后缀区分,但条件与循环等复杂控制逻辑在通信图上很难表达清楚。
基本信息
| 构成元素 | 对象、对象之间的链接、带序号的消息 |
|---|---|
| 序号规则 | 点号表示嵌套,1.1 是 1 的子调用,同层可并列 |
| 与顺序图选择 | 强调对象拓扑用通信图,强调时间先后用顺序图 |
| 表达边界 | 条件分支与循环可读性差,宜换顺序图或活动图 |
| 工具支持 | 主流建模工具支持通信图与顺序图互相转换 |
带序号的消息示例
带序号的消息示例
1 校验库存() → 仓库服务 # 顶层第一条消息
1.1 查询可用量() → 库存表 # 1 内部发起的子调用
2 冻结库存() → 仓库服务 # 回到顶层后的第二条
2.1 写入冻结记录() # 2 的子调用
3 创建支付单() → 支付服务典型使用场景
- 表达对等对象之间的多轮交互,凸显对象之间的连接关系
- 顺序图中对象过多导致连线交叉时,用通信图重排拓扑
- 设计评审中说明某次交互涉及哪些对象及其协作方式
- 与顺序图互相转换,为不同读者提供同一交互的不同视角
两种图语义等价且可互相转换,建模工具一般支持直接切换,不必重复维护两份内容,改动时同步更新即可。
消息序号遗漏层级会让读者无法判断调用的嵌套关系,跨团队评审时最容易引发对执行顺序的误解。