19

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

序列图和协作图?

4

6 回答 6

21

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

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

UML 序列图示例

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

UML 协作图示例

于 2013-01-28T16:11:21.867 回答
5

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

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

于 2013-01-14T15:07:03.297 回答
4

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

于 2013-09-29T12:27:40.137 回答
2

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

笔记:

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

于 2016-07-16T18:04:34.757 回答
1

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

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

于 2013-01-14T13:15:26.397 回答
0
  • 使用序列图来显示时间并强调交互的顺序或顺序。

  • 使用沟通图强调参与者之间的联系。通信图可以是对对象图的有益补充。

于 2014-10-15T11:31:45.983 回答