协作图又叫合作图,通信图。强调的是发送和接收消息的对象之间的组织结构,一个协作图显示了一系列的对象和在这些对象之间的联系以及对象间发送和接收的消息。 “协作”作为一个结构事物用于表达静态结构和动态行为的概念组合,表达不同事物相互协作完成一个复杂功能。
协作图显示某组对象,如何为了由一个用例描述的一个系统事件而与另一组对象进行协作的交互图。对象通常是命名或匿名的类的实例,也可以代表其他事物的实例,例如协作、组件和节点,使用协作图来说明系统的动态情况,协作图使描述复杂的程序逻辑或多个平行事务变得容易。 协作图作为表示对象间相关作用的图形表示,也可以有层次结构。可以把多个对象作为一个抽象对象,通过分解,用下层协作图表示出这多个对象间的协作关系,这样可缓解问题的复杂度。
对象:用长方形框表示对象。
连接:使用实线标记两个对象之间的连接。
消息:由标记在连接上方的带有标记的箭头表示。
当两个对象间有消息传递时用带箭头的有向边连接这两个对象,在UML中,协作图的语义与序列图是等价。
有向边的箭头方向表示传递消息的方向,在有向边上方标识出是什么消息,为表示发送消息的时间顺序,在每个消息前附加数字编号,显然,协作图便于描述对象间有什么样的协作关系,不需要像一个序列图只能对应于一个场景一样,可以将多个场景中的协作关系一次性地全部描述出来,不过,与序列图一样,在UML的协作图中,也规定了消息发送条件的描述。
一个实例:
协作图与时序图的转换
两者在语意上是等价的,请看图:
参考地址:http://blog.csdn.net/wangyongxia921/article/details/8250122
参考地址:http://m.blog.csdn.net/article/details?id=50879385