协作图

协作图把对象和它们之间的链接摆在一张图上,消息用编号标出顺序,适合展示对象协作结构。

hajimicode.cn
协作图操作界面

对象链接图

对象框自动布局,连线不交叉

消息编号

1、1.1、2 嵌套编号自动递增

与类图呼应

对象名与类名可保持一致

高清导出

PNG / SVG 导出

产品能力

1

对象与链接

对象框自动布局,链接连线清晰不交叉。

2

消息编号

消息按 1、1.1、2 顺序编号,嵌套调用层次分明。

3

与类图呼应

对象命名可与类图类名对应,设计文档前后一致。

协作图功能面板

使用步骤

  1. 1

    摆放参与协作的对象

  2. 2

    连接对象间的链接

  3. 3

    标注消息与编号后导出

详细介绍

协作图与结构视角

协作图(通信图)和时序图表达的信息是等价的,但视角不同:时序图强调时间顺序,协作图强调对象之间的结构关系。协作图把对象画成节点,对象之间的链接连成网,消息按顺序编号标在链接上,适合表达「哪些对象参与了这次协作、它们之间有什么关联」。

协作图与结构视角(协作图界面示意)

消息编号的规则

消息用 1、2、3 顺序编号;嵌套调用用小数点层级表示,比如 1.1、1.2 表示消息 1 触发的子调用,2.1 表示消息 2 的子调用。这个编号规则对应程序里的调用层次,答辩时能直接对应到代码逻辑。

消息编号的规则(协作图界面示意)

使用建议

当图的重点是「对象之间的连接关系」时用协作图,比如分析模式中的对象交互结构;当重点是「什么时候发生什么」时用时序图。两种图通常二选一即可,不必都画。对象命名要与类图中的类名对应,保持文档前后一致。

使用建议(协作图界面示意)

适用场景

对象协作结构说明
UML 交互图作业
系统消息流转设计

交稿前核对清单

按这份清单过一遍,能挡掉答辩时最常见的格式扣分点。

  • 消息编号层级是否正确(1.1、1.2)
  • 对象名是否与类图一致
  • 连线是否有交叉
  • 嵌套调用是否用小数点分层
  • 图的视角是否与需求一致
  • 和时序图是否重复表达

常见问题

协作图和时序图信息一样吗?

信息等价但视角不同时序图按时间排布,协作图按对象结构排布。同一段交互理论上可以互相转换,选一个画即可。

消息编号 1.1 是什么意思?

表示消息 1 触发的子调用。嵌套调用用小数点层级编号,对应程序里的调用栈深度,答辩讲代码逻辑时能直接对照。

对象之间的连线要标名称吗?

链接线上标消息,不标链接名。消息格式为「编号: 方法名(参数)」,比如「1: 提交订单(订单信息)」。

和类图怎么配合使用?

协作图里的对象名对应类图里的类名(对象是类的实例)。论文里先用类图讲静态结构,再用协作图讲动态交互,前后命名保持一致。

布局有什么技巧?

交互发起者放中间或左侧,按调用关系向外辐射。连线尽量不交叉,必要时调整对象位置而不是绕线。

适合画哪些场景?

对象协作结构清晰的场景,比如 MVC 模式的请求处理、设计模式的类交互(观察者、工厂)。纯时间流程用时序图更直观。

免费开始使用 协作图

图表交给工具,时间还给论文。

免费开始