3.7 协作图

3.7 协作图

协作图(Collaboration Diagram) 描述对象间的协作关系, 跟顺序图相似, 显示对象间的动态合作关系。除显示信息交换外, 协作图还显示对象以及它们之间的关系。

一个系统的行为是由一批对象实现的, 这些对象通过交互和协作来完成系统的服务。用来描述实现某些服务所涉及的对象及其相互之间的关系(包括消息通信) 的静态结构图称为协作图, 可用UML 协作图来描述业务流程。

协作图的作用有以下3个。

①协作图是一种交互图, 强调的是发送和接收消息的对象之间的组织结构, 可以使用协作图来说明系统的动态情况。

②协作图主要描述协作对象间的交互和链接, 显示对象、对象间的链接以及对象间如何发送消息。

③协作图可以表示类操作的实现。

协作图由参与者、对象、消息流和链接关系构成。其中参与者和对象与顺序图一样,这里不再过多对其介绍。

消息流由箭头和标签组成, 箭头指示消息的流向, 从消息的发出者指向接收者。标签对消息做相关说明。其中, 顺序号(数字) 指出消息的发生顺序, 并且指明消息的嵌套关系; 顺序号后面的冒号, 其后面是消息的名字。

链接关系用线条来表示, 表示两个对象共享一条消息, 位于对象之间或参与者与对象之间。

图3-30所示是“打印操作” 的协作图, Actor 发送Print 消息给Computer, Computer发送Print 消息给PrintServer, 如果打印机空闲, 则PrintServer 发送Print 消息给Printer。

图3-30 “打印操作” 的协作图

协作图和顺序图都表示出了对象间的交互作用, 但是它们的侧重点不同, 具体表现在以下3个方面。

①顺序图清楚地表示了交互作用中的时间顺序(强调时间), 但没有明确表示对象间的关系。

②协作图清楚地表示了对象间的关系(强调空间), 但时间顺序必须从顺序号获得。

③协作图和顺序图可以相互转化。

图3-31所示是用户登录的协作图示例。

图3-31 用户登录的协作图