【问题标题】:differences between sequence diagram and collaboration diagram序列图和协作图的区别
【发布时间】:2013-01-14 13:10:12
【问题描述】:

当我阅读 UML 规范上层结构时,有序列图和协作图 那么,有什么区别

顺序图和协作图?

【问题讨论】:

标签: modeling uml tool-uml


【解决方案1】:

序列图和协作图都旨在描述对象之间的动态交互。 你能描述的信息基本相同,只是两个模型的侧重点不同:

  • 序列图通过沿(垂直)时间线显示调用和响应以及明确显示对象的激活时间,更加突出了时间方面。 序列图显示对象如何根据消息的时间序列相互通信。时间流是这些图表中最明显的方面,因为消息根据垂直时间线以及关联对象的生命周期进行排序 这些消息被报告。下图(取自我们的book)显示了描述 3 个对象(Shipment、Invoice 和 PartList 类的实例)以及彼此之间交换的消息的序列图示例。交互图描述了系统的执行场景。

  • 协作图旨在通过定义彼此之间流动的消息来显示对象之间发生的通信。它们基本上包括将通信动作叠加在对象图上。通过对与顺序标签的交互进行编号,这里也可以显示时间方面。 协作图以链接(连接可以交互的元素的无向实线)和流经链接的消息的形式显示对象或类之间的交互。这同时描述了系统的某种静态结构(链接和节点)和动态行为(消息)。示例如下所示。

【讨论】:

  • 感谢您的努力。据我所知,第二个图是通信图而不是协作图,不是吗?因为我读到了 UML 规范上层结构 2.5 仍然是 beta 的协作,第 225 页 omg.org/spec/UML/2.5/Beta1/PDF
  • 呃.. 嗯,它实际上是 UML 1 中的协作图(因此是 UML 2 中的一种通信图)。既然你现在问,我假设你问的是过去的模型。
【解决方案2】:

UML1:这些图是相同的,但从不同的角度呈现数据。

UML2:将协作图重命名为通信图(有误解,因为人们认为协作图是用来展示协作的)。 这些图几乎相同,但目前的序列图有更多的可视化可能性(例如,组合片段、状态不变量)。

【讨论】:

    【解决方案3】:

    顺序图以时间顺序方式指定交互,可能在对象和/或类之间。这些图表是在早期细化阶段创建的,其中用例的每个流程都是根据序列定义的,即在每个步骤之后接下来会发生什么。这种表示对于理解和与客户讨论用例非常有帮助,两者都可以得出所有可能的功能方面。 另一方面,协作图提供了对象之间的直接交互。当您在设计关系的实现时,这些图似乎更多地用于开发的设计阶段。

    【讨论】:

      【解决方案4】:

      序列图和协作图是有区别的。序列图及时显示对象交互(因此不需要对消息进行编号)。但是协作图没有及时显示对象交互。 (需要给消息编号)。

      注意:

      现在协作图也称为通信图。

      【讨论】:

        【解决方案5】:

        序列图是动态的,更重要的是,它是按时间排序的。协作图在实现的目的上与序列图非常相似;换句话说,它显示了系统中对象的动态交互。协作图的一个显着特征是它显示了对象及其与系统中其他对象的关联,除了它们如何相互交互。对象之间的关联没有在序列图中表示。

        链接:http://www.developer.com/design/article.php/3102981/Collaboration-Diagram-in-UML.htm

        【讨论】:

        • 对象之间没有关联。它们被称为“链接”。更重要的是序列和通信图包含实例规范但不包含对象。
        【解决方案6】:
        • 使用时序图来显示时间并强调时序或 交互的顺序。

        • 使用沟通图强调 参与者。沟通图可能是一个有用的补充 到对象图。

        【讨论】:

          猜你喜欢
          • 2015-12-23
          • 1970-01-01
          • 2013-05-29
          • 1970-01-01
          • 2016-11-06
          • 2014-04-21
          • 2014-03-23
          • 1970-01-01
          • 2020-10-13
          相关资源
          最近更新 更多