UML——协作图

目录

 

什么是协作图

协作图与时序图的互换

协作图与时序图的相同点

协作图与时序图的区别


什么是协作图

协作图是一种类图,它包含类元角色和关联角色,而不仅仅是类元和关联。协作图强调参加交互的各对象的组织。

协作图只对相互间有交互作用的对象和这些对象间的关系建模,它可以说明类操作中用到的参数、局部变量以及操作中的永久链。协作图的对象用矩形表示,矩形内是此对象的名字,连接用对象间相连的直线表示,连线可以有名字,并标注于表示连接的直线上。协作图包含对象(Object)、链(Link)和消息(Message)三种元素。

协作图中链的符号和对象图中链所用的符号是一样的,即一条连接两个类的实线。

符号 含义
创建对象之间的通信路径
显示对象可以调用自己的属性
在两个对象之间或一个对象本身增加消息
在两个对象之间或一个对象本身从反方向增加消息
显示两个对象之间的信息流
在反方向显示两个对象之间的信息流

 

协作图与时序图的互换

协作图和时序图都是表示对象间的交互作用,只是他们侧重点有所不同。时序图描述了交互过程中的时间顺序,但没有明确地表达对象间的关系;协作图描述了对象间的关系,但时间顺序必须从序列号获得。

协作图和时序图都来自UML元模型的相同信息,因此它们的语义是等价的,它们可以从一种形式的图转换成另一种形式的图,而不丢失任何信息。

以下是毕业管理协作图和毕业管理时序图转换☟☟☟

协作图与时序图的相同点

▷规定责任:两种图都直观地规定了发送对象和接收对象的责任。将对象确定为接收对象,意味着为此对象添加一个接口。而消息描述成为接收对象的操作特征标记,由发送对象触发该操作。

▷支持消息:两种图都支持所有的消息类型。

▷衡量工具:两种图是衡量耦合性的工具,耦合性被用来衡量模型之间的依赖性,通过检查两个元素之间的通信,可以很容易地判断出它们的依赖关系。

协作图与时序图的区别

▷协作图的重点是将对象的交互映射到它们之间的链上,即协作图以对象图的方式绘制各个参与对象,并且将消息和链平行放置;时序图不把链表示出来,在时序图的对象之间没有相应链的存在也可以随意绘制消息,但是这样会使有些逻辑交互不会实际发生。

▷时序图可以描述对象的创建和撤销的情况,在时序图中,除了通过消息描述或约束,没有其他的方法可以表示对象的创建或结束;但是由于协作图所表现的结构被置于静止的对象图中,所以很难判断约束什么时候有效。

▷时序图可以表现激活和去激活情况;协作图除了通过对消息进行解释,它无法清晰地表示对象的激活和去激活情况。