指南:通信图
主题
已将协作图重命名为通信图。请参考 UML 1.x 和 UML 2.0 之间的区别以获取更多信息。
通信图用于显示对象如何交互以执行特定用例或一部分用例的行为。设计者使用通信图和序列图来定义和阐明对象角色,这些对象执行特定的用例事件流。它们是用于确定类职责和接口的主要信息源。
与序列图不同,通信图显示了对象之间的关系。序列图和通信图表达了类似的信息,但以不同方式显示这些信息。通信图显示了对象之间的关系,更适用于理解给定对象上的所有效果,更适用于过程设计。
由于通信图的格式,它们更适用于分析活动(请参阅活动:用例分析)。特别地,它们更适用于描述较少量对象的较简单交互。当对象和消息数量增加时,该图将变得越来越难以阅读。另外,很难显示附加的描述信息(例如计时、决策点),或其它可以方便地添加到序列图的注释中去的非结构化信息。
通信图中可以有对象和参与者实例,以及链接和消息(描述是它们是如何相关和交互的)。该图按照各对象如何通过互相发送消息进行通信,描述在参与的各对象中发生的事情。可以为用例的事件流的每个变体制作一个通信图。

描述回收机器系统中用例接收堆积物项的部分事件流的通信图。
使用对象符号来表示对象,该符号显示了冒号分隔的对象名称及其类(有下划线):
objectname : classname
可以用以下方式使用通信图中的对象:
- 可以不指定对象类。通常首先使用对象创建通信图,随后再指定它们的类。
- 可以不命名对象,但当您希望区分相同类的不同对象时,应命名它们。
- 可以在通信图中表示对象类自身(如果它积极参与交互)。
通常在通信图中存在参与者实例,作为交互的调用者。如果在同一图中有多个参与者实例,则应尝试在该图的外围保留它们。
链接定义如下:
- 链接是对象之间的一种关系,可以在这些对象之间发送消息。在通信图中,链接显示为两个对象之间的实线。
- 一个对象通过它到其它对象的链接与这些对象交互,或浏览至这些对象。
- 链接可以是关联的实例,或是匿名的,表示未指定其关联。
- 将消息流连接至链接,请参阅消息。
消息是对象之间的通信,它传送信息,期望在这些信息之后将发生某些活动。在通信图中,消息显示为在链接附近的标注箭头。这表示该链接用于向目标对象传输消息,或以其它方式实施向目标对象传递消息。箭头沿链接指向目标对象方向(接收消息的对象)。对该箭头标注了消息名称及其参数。对该箭头还可以标注一个序号,用于显示整个交互中的消息顺序。通常在通信图中使用序号,因为序号是描述消息的相关顺序的唯一方法。
可以取消分配一个消息,表示其名称是一个临时字符串,描述了该消息的全部意义。可以在以后通过指定该消息的目的地对象的操作,再分配该消息。然后指定的操作将替换该消息的名称。
|