1
 软件工程
1.8.4.8 6.4.8 合作图

6.4.8 合作图

合作图(Collaboration Diagram,又称为协作图)是一种交互图,强调的是发送和接收消息的对象之间的组织结构。一个合作图显示了一系列的对象和在这些对象之间的联系,以及对象间发送和接收的消息。对象通常是命名或匿名的类的实例,也可以代表其他事物的实例,如协作、组件和节点。使用合作图来说明系统的动态情况,对在一次交互中有意义的对象和对象之间的链建模。在UML中,合作图用几何排列来表示交互作用中的对象和链,附在链上的箭头代表消息,消息的发生顺序用消息箭头处的编号来说明。

顺序图与合作图都表示对象之间的交互作用,只是它们在语义上是完全等价的,而且可以没有任何语义损失的相互转化,但是顺序图和合作图两者所表示的侧重点是不同的:顺序图描述了对象交互过程中的时间顺序,但没有明确地表达对象之间的关系。而合作图描述了对象之间的关系,但时间顺序必须从顺序号中获得。顺序图着重体现对象间消息传递的时间顺序,合作图着重于哪些对象间有消息传递,表达了对象之间的静态连接关系。顺序图和合作图是同构的,它们相互之间可以转化而不损失信息,依靠工具协作图和顺序图可以互相转换。

img107

图6-18 ATM取款过程顺序图

图6-19是ATM系统的一个合作图。

合作图的构造步骤如下。

(1)将参加交互的对象作为图的顶点。

(2)将连接这些对象的链表示为图的弧。

(3)用对象发送和接收的消息修饰这些链。

合作图提供了在协作对象的结构组织的上、下文环境中观察控制流的一个清晰的可视化轨迹。