1. 定义协作图
协作图是顺序图之外的另一种表示交互的方法。与顺序图描述随着时间交互的各种信息不同,协作图描述的是与对象结构相关的信息。协作图可以看作是对象图和顺序图的结合,表达对象间的交互过程及对象间的关联关系。
图1 ATM用户成功登录的协作图
协作图包含3个元素,即对象、链和消息。协作图中的对象与顺序图中的对象概念是相同的,只不过在协作图中的对象无法表示对象的创建和撤销。链是连接两个类角色的实践。协作图中的消息添加了顺序号,来说明交互过程中消息的时间顺序。
2. 协作图与顺序图
2.1 顺序图和协作图之间相同点主要有3点:
(1)两种图都规定了发送对象和接收对象。消息是接收对象的操作特征标记,由发送对象触发该操作。
(2)两种图都可以用来检查模型之间的依赖性,判断出依赖关系。
(3)两种图都支持所有的消息类型。
2.2 顺序图和协作图之间的不同点:
(1)顺序图强调对象之间传递消息的时间顺序,而协作图主要强调对象间的交互过程及对象间的关联关系。
(2)顺序图可以描述对象的创建及撤销情况,而在协作图中,对象或者存在或者不存在,除了通过消息描述或约束,没有其他方法可以表示对象的创建或结束。
(3)顺序图还可以表现对象的激活和钝化情况,但对于协作图来说,由于没有时间的描述,无法清晰的表示对象的激活和钝化情况。