UML 交互图

UML 交互图

从“交互”一词可以看出,该图用于描述模型中不同元素之间的某种交互。这种交互是系统的动态行为的一部分。

UML中用两个图表来表示这种交互行为,分别是 序列图合作图 。这两个图表的基本目的是相似的。

序列图强调消息的时间顺序,而合作图则强调发送和接收消息的对象的结构组织。

交互图的目的

交互图的目的是可视化系统的交互行为。可视化交互是一项困难的任务。因此,解决方案是使用不同类型的模型来捕捉交互的不同方面。

序列图和合作图用于捕捉动态特性,但从不同的角度来看。

交互图的目的是:

  • 捕捉系统的动态行为。

  • 描述系统中的消息流动。

  • 描述对象的结构组织。

  • 描述对象之间的交互。

如何绘制交互图

如前所述,交互图的目的是捕捉系统的动态方面。因此,为了捕捉动态方面,我们需要了解什么是动态方面以及如何可视化它。动态方面可以定义为系统在特定时刻的运行状态的快照。

我们在UML中有两种类型的交互图。一种是序列图,另一种是合作图。序列图捕捉消息从一个对象到另一个对象的时间顺序流动,而合作图描述参与消息流动的系统中对象的组织。

在绘制交互图之前,需要明确以下几点:

  • 参与交互的对象。

  • 对象之间的消息流动。

  • 消息流动的顺序。

  • 对象的组织。

下面是两个建模订单管理系统的交互图。第一个图表是序列图,第二个图表是合作图。

序列图

序列图有四个对象(Customer、Order、SpecialOrder和NormalOrder)。

以下图表显示了SpecialOrder对象的消息顺序,NormalOrder对象也可以用同样的方式。了解消息流的时间顺序非常重要。消息流仅仅是对象方法的调用。

第一个调用是Order对象的sendOrder()方法。接下来是SpecialOrder对象的confirm()方法,最后是SpecialOrder对象的Dispatch()方法。以下图表主要描述了对象之间的方法调用,这也是系统运行时的实际场景。

UML 交互图

协作图

第二个交互图是协作图。它显示了对象组织,如下图所示。在协作图中,使用某种编号技术来表示方法调用序列。编号表示方法按顺序调用的方式。我们选择了相同的订单管理系统来描述协作图。

方法调用与序列图类似。然而,不同之处在于序列图不描述对象组织,而协作图显示对象组织。

选择这两个图之间的差异是根据需求的类型来决定的。如果时间顺序很重要,则使用序列图。如果需要组织结构,则使用协作图。

UML 交互图

在哪里使用交互图表

我们已经讨论过交互图表用于描述系统的动态性质。现在,我们将深入了解这些图表在实际场景中的应用。为了理解其实际应用,我们需要了解序列图和协作图的基本性质。

这两种图表的主要目的是相似的,都用于捕捉系统的动态行为。然而,特定目的更重要,需要明确和理解。

序列图用于捕捉消息从一个对象流向另一个对象的顺序。协作图用于描述参与交互的对象的结构组织。一张图表无法完全描述整个系统的动态方面,因此使用一组图表来捕捉整体。

当我们想要理解消息流动和结构组织时,可以使用交互图表。消息流动意味着从一个对象到另一个对象的控制流的顺序。结构组织意味着系统中元素的可视组织。

交互图表可用于以下情况:

  • 模拟按时间顺序控制流动。

  • 模拟按结构组织控制流动。

  • 用于正向工程。

  • 用于反向工程。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程