序列图和协作图之间的差异

时间:2013-01-14 13:10:12

标签: modeling uml tool-uml

当我阅读UML规范上层结构时,有序列图并且有一个协作图 那么,

之间有什么区别

序列图和协作图?

6 个答案:

答案 0 :(得分:22)

序列和协作图都旨在描述对象之间的动态交互。 您可以描述的信息基本相同,但这两个模型的重点不同:

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

UML sequence diagram example

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

UML collaboration diagram example

答案 1 :(得分:4)

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

UML2:协作图重命名为通信图(由于人们认为协作图用于显示协作,因此存在误解)。 这些图几乎相同,但是现在序列图具有更多可视化的可能性(例如,组合片段,状态不变量)。

答案 2 :(得分:4)

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

答案 3 :(得分:2)

序列图是动态的,更重要的是,时间是有序的。协作图与其实现的目的非常类似于序列图;换句话说,它显示了系统中对象的动态交互。协作图的一个显着特征是它显示了对象及其与系统中其他对象的关联,除了它们彼此之间的交互方式。对象之间的关联未在序列图中表示。

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

答案 4 :(得分:2)

序列图和协作图之间存在差异。序列图以及时的方式显示对象交互(因此不需要对消息进行编号)。但协作图并未及时显示对象交互。 (需要对消息进行编号)。

注意:

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

答案 5 :(得分:0)

  • 使用序列图显示时间并强调序列或 交互的顺序。

  • 使用通信图来强调其间的链接 参与者。通信图表可能是一个有用的补充 到对象图。