协作图(在UML 1.x中称为通信图 Collaboration Diagram)用于显示对象如何交互以执行特定用例或用例的一部分的行为。除了序列图之外,设计人员还使用协作来定义和阐明执行用例的特定事件流的对象的角色。它们是用于确定类职责和接口的主要信息来源。
什么是协作?
- 协作是指定对象和参与者的集合,其中包含连接它们的链接。他们合作执行某项任务。
- 协作定义了一组对于给定目的而言有意义的参与者和关系
- 协同工作的对象之间的协作在面向对象的系统中提供了新兴的功能
- 每个对象(责任)部分支持紧急功能
- 对象能够通过协同工作来生成(可用的)高级功能
- 对象通过彼此通信(传递消息)来协作以便一起工作
为何选择协作图?
与序列图不同,协作图显示了对象之间的关系。序列图和协作图表示类似的信息,但以不同的方式显示。
由于协作图的格式,它们更倾向于更适合分析活动(请参阅活动:用例分析)。具体而言,它们往往更适合描绘较少数量对象的简单交互。但是,如果对象和消息的数量增加,则图表变得越来越难以阅读。此外,很难显示其他描述性信息,例如时序,决策点或其他非结构化信息,这些信息可以轻松添加到序列图中的注释中。因此,以下是我们要为以下内容创建协作图的一些用例:
- 对象或角色之间的协作模型,提供用例和操作的功能
- 系统架构设计中的模型机制
- 捕获显示在协作中对象和角色之间传递的消息的交互
- 在涉及不同对象和交互的协作的用例或操作中建模替代方案
- 支持识别参与用例的对象(因此是类)
- 协作图中的每条消息都有一个序列号。
- 顶级消息编号为1.在同一调用期间发送的消息具有相同的十进制前缀,但后缀为1,2等,具体取决于它们何时发生。