协作图是动态图的零一中表现形式,它强调参加交互的各对象结构的信息。协作图是一种类图,它包含类元角色和关联角色,而不仅仅是类元和关联。
对象:代表协作图交互中所扮演的角色,和时序图中的对象的概念类似
链:一下是几种常用的链符号
消息:消息代表协作图中对象间通过连接发送消息。
协作图建模技术
对系统动态行为建模,当按组织对控制流建模时,一般使用协作图。建模策略如下:
(1)设置交互的语境,语境可以是系统、子系统、操作、类、用例或用例的脚本。
(2)通过识别对象在交互中所扮演的角色,开始绘协作图,把这些对象作为图的顶点放在协作图中。
(3)在识别了协作图对象后,为每个对象设置初始值。如果某对象的属性值、标记值、状态或角色在交互期发生变化,则在图电放置一个复制对象,并用变化后的值更新它,然后通过构造型<>或<>的消息将两者连接。
(4)设置了对象的初始值后,根据对象间的关系开始确定对象间链接。一般先确定关联的链接,因为这是最主要的,它代表了结构的链接。然后需要确定的是其他的链接,用合适的路径构造型修饰它们,这表达了对象间是如何互相联系的。
(5)从引起交互的消息开始,按消息的顺序,把随后的消息附到适当的链接上,这描述了对象间的消息传递,可以用带小数点的编号来表达嵌套。
(6)如果需要说明时间或空间的约束,可以用适当的时间或空间约束来修饰每个消息。
(7)在建模中,如果想更详细地描述这个控制流,可以为交互过程中的每个消息都附上前置条件和后置条件。
协作图与时序图互换
协作图和时序图都是表示对象间的交互作用,只是侧重点不同,时序图描述了交互过程中的时间顺序,但没有明确的表达对象间的关系,协作图描述了对象间的关系,但时间顺序必须从序列号获得。
时序图和协作图的比较
相同点 :规定责任、支持消息、衡量工具
区别:1、协作图的重点是将对象的交互映射到他们之间的链上,即协作图以对象的方式绘制各个参与对象,并将消息和链平行放置
2、时序图可以描述对象的创建和撤销的情况
3、时序图还可以表现对象的激活和去激活情况,但对于协作图而言,由于没有对时间的描述,所以除了通过对消息进行解释,它无法清晰的表示对象的激活和去激活情况。