协作图的定义:
所谓协作是指在一定的语境中一组对象以及用以实现某些行为的这些对象间的相互作用。它描述了在这样一组对象为实现某种目的而组成相互合作的
“
对象社会
”
。
协作图就是表现对象协作关系的图,它表示了协作中作为各种类元角色的对象所处的位置,在图中主要显示了类元角色(
ClassifierRoles
)和关联角色(
AssociationRoles
)。
当协作被实例化时,对象受限于类元角色,连接受限于关联角色。
如果从结构和行为两个方面分析协作图,那么从结构方面来讲,协作图和对象图一样,包含了一个角色集合和它们之间定义了行为方面的内容的关系,从这个角度来说,协作图也是类图的一种,但是协作图与类图这种静态视图的区别是:静态视图描述了类固有的内在属性,而协作图描述了类实例的特性,因为只有对象的实例才能在写作中扮演出自己的角色,它在协作中起了特殊的作用。
与序列图的不同:
如果从结构和行为两个方面分析协作图,那么从结构方面来讲,协作图和对象图一样,包含了一个角色集合和它们之间定义了行为方面的内容的关系,从这个角度来说,协作图也是类图的一种,但是协作图与类图这种静态视图的区别是:静态视图描述了类固有的内在属性,而协作图描述了类实例的特性,因为只有对象的实例才能在写作中扮演出自己的角色,它在协作中起了特殊的作用。
协作图的作用:
通过描绘对象之间消息的传递情况来翻译具体的使用语境的逻辑表达。
显示对象及其交互关系的空间组织结构。
表现一个类操作的实现。
与序列图的不同:
与序列图不同,协作图显示的是对象之间的关系,并不侧重于交互的顺序,它没有将时间作为一个单独的维度,而是使用序列号来确定消息及并发线程的顺序。
序列图表示了注重表达交互作用中的时间小顺序,单没有明确表示对象间的关系。而协作图不同,它注重表示了对象间的关系,但时间顺序可以从对象刘静的顺序编号中获得。序列图常常被用于表示方案,二协作图则被用于过程的详细设计。
协作图的组成:
协作图的组成也由对象,消息,链等构成,这和序列图类似,不再赘述。