UML协作图介绍和用法

本文概述

  • 协作图的符号
  • 何时使用协作图?
  • 创建协作图的步骤
  • 协作图示例
  • 协作图的好处
  • 协作图的缺点
协作图用于显示系统中对象之间的关系。序列图和协作图均表示相同的信息, 但表示的信息不同。它没有显示消息流, 而是描述了基于对象编程的系统中驻留的对象的体系结构。一个对象包含多个特征。系统中存在的多个对象相互连接。协作图, 也称为通信图, 用于描述系统中对象的体系结构。
协作图的符号 【UML协作图介绍和用法】以下是下面列出的组件图的组件:
对象:对象的表示由对象符号完成, 其符号和类用下划线标记, 并用冒号分隔。
在协作图中, 通过以下方式利用对象:
  • 通过指定对象的名称和类来表示该对象。
  • 并非每个类都必须出现。
  • 一类可能构成多个对象。
  • 在协作图中, 首先创建对象, 然后指定其类。
  • 为了区分一个对象和另一个对象, 有必要对其进行命名。
参与者:在协作图中, 参与者在调用交互时起主要作用。每个演员都有自己的角色和名字。在这种情况下, 一个参与者发起用例。
链接:链接是关联的实例, 该关联将对象和参与者关联。它描绘了通过其发送消息的对象之间的关系。用实线表示。链接帮助一个对象与另一个对象连接或导航到另一个对象, 以便消息流被附加到链接上。
消息:这是对象之间的通信, 带有信息并包含序列号, 因此可以进行活动。它由标记的箭头表示, 该箭头放置在链接附近。消息从发送方发送到接收方, 并且该方向必须在该特定方向上可导航。接收者必须理解该消息。
UML协作图介绍和用法

文章图片
何时使用协作图? 当必须描述对象之间的关系时, 使用协作。序列图和协作图都表示相同的信息, 但是描述它的方式却大不相同。协作图最适合分析用例。
以下是下面列出的一些实现了协作图的用例:
  1. 在承载用例和操作功能的对象或角色之间进行协作建模。
  2. 在系统的体系结构设计中对机制进行建模。
  3. 捕获表示对象与协作内部角色之间的消息流的交互。
  4. 在用例或操作中对不同场景进行建模, 涉及多个对象和交互的协作。
  5. 支持标识用例中的对象。
  6. 在协作图中, 每个消息构成一个序列号, 以便将顶级消息标记为一个, 依此类推。在同一呼叫期间发送的消息用相同的十进制前缀表示, 但根据它们的出现使用不同的后缀1、2等。
创建协作图的步骤
  1. 确定为其指定实现和实现的行为。
  2. 发现构成类角色, 对象和子系统的结构元素, 以执行协作功能。
    • 选择交互的上下文:系统, 子系统, 用例和操作。
  3. 考虑可能涉及的替代情况。
    • 如果需要, 在实例级别实现协作图。
    • 可以在实例级别序列图中制作规格级别图, 以汇总替代情况。
协作图示例
UML协作图介绍和用法

文章图片
协作图的好处
  1. 协作图也称为通讯图。
  2. 它主要强调交互图的结构方面, 即生命线如何连接。
  3. 协作图的语法与顺序图相似。唯一的区别是生命线不包含尾巴。
  4. 通过对每个单独的消息进行编号来表示按顺序发送的消息。
  5. 与顺序图相比, 协作图在语义上较弱。
  6. 协作图的特殊情况是对象图。
  7. 它专注于元素, 而不是消息流, 如顺序图。
  8. 由于协作图并不昂贵, 因此可以将序列图直接转换为协作图。
  9. 在实现相对于时序图的协作图时, 可能会丢失一些信息。
协作图的缺点
  1. 驻留在系统中的多个对象可能会构成一个复杂的协作图, 因为要探索这些对象变得非常困难。
  2. 这是一个耗时的图表。
  3. 程序终止后, 对象被销毁。
  4. 随着对象状态的瞬时变化, 变得难以关注系统对象内部发生的每个事件。

    推荐阅读