UML 协作图17 Mar 2025 | 4 分钟阅读 协作图用于展示系统中对象之间的关系。时序图和协作图都表示相同的信息,但方式不同。协作图不显示消息的流程,而是描述系统中对象的架构,因为它基于面向对象编程。一个对象包含多个特性。系统中存在的多个对象相互连接。协作图,也称为通信图,用于描述系统中对象的架构。 协作图的符号以下是协作图的组成部分,列举如下 - 对象:对象的表示方式是对象符号,其名称和类以下划线分隔,并用冒号分隔。
在协作图中,对象的使用方式如下- 对象通过指定其名称和类来表示。
- 并非每个类都必须出现。
- 一个类可以包含多个对象。
- 在协作图中,首先创建对象,然后指定其类。
- 为了区分一个对象与另一个对象,必须命名它们。
- 参与者:在协作图中,参与者扮演着主要角色,因为它调用交互。每个参与者都有其各自的角色和名称。在此,一个参与者启动用例。
- 链接:链接是关联的一个实例,它将对象和参与者关联起来。它描述了对象之间通过其发送消息的关系。它由实线表示。链接帮助对象连接到或导航到另一个对象,以便消息流附加到链接。
- 消息:它是对象之间的通信,携带信息并包括一个序列号,以便可以进行活动。它由一个带标签的箭头表示,该箭头放置在链接附近。消息从发送者发送到接收者,并且方向必须在该特定方向上可导航。接收者必须理解该消息。
 何时使用协作图?当需要描述对象之间的关系时,会使用协作图。时序图和协作图都表示相同的信息,但表达方式完全不同。协作图最适合分析用例。 以下列出了一些用例,可以实施协作图 - 为了对对象或角色之间的协作进行建模,这些对象或角色执行用例和操作的功能。
- 为了对系统架构设计内部的机制进行建模。
- 为了捕获表示对象和角色之间消息流的交互。
- 为了对用例或操作中的不同场景进行建模,涉及多个对象和交互的协作。
- 为了支持识别参与用例的对象。
- 在协作图中,每个消息都包含一个序列号,以便将顶级消息标记为一,依此类推。在同一调用期间发送的消息用相同的十进制前缀表示,但根据它们的出现情况,后缀不同,例如1、2等。
创建协作图的步骤- 确定要指定实现和实现的行为。
- 发现作为类角色、对象和子系统的结构元素,以执行协作的功能。
- 仔细考虑可能涉及的替代情况。
- 如果需要,在实例级别实施协作图。
- 可以在实例级别时序图中制作规范级别图,以总结替代情况。
协作图的示例 协作图的优点- 协作图也称为通信图。
- 它主要强调交互图的结构方面,即生命线如何连接。
- 协作图的语法类似于时序图;唯一的区别是生命线不包含尾部。
- 通过对每个单独的消息进行编号来表示通过排序传输的消息。
- 与时序图相比,协作图在语义上较弱。
- 协作图的特殊情况是对象图。
- 它侧重于元素,而不是像时序图那样侧重于消息流。
- 由于协作图的成本不高,因此可以将时序图直接转换为协作图。
- 在实现与时序图相关的协作图时,可能会丢失一些信息。
协作图的缺点- 系统中存在的多个对象会使协作图变得复杂,因为很难探索对象。
- 这是一个耗时的图表。
- 程序终止后,该对象将被销毁。
- 由于对象状态会瞬间变化,因此很难密切关注系统中对象的内部发生的每一个对象。
|