UML – 交互图

UML – 交互图

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

这种交互行为在UML中由两个图表示,即 顺序图协作图。 这两种图的基本目的是相似的。

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

交互图的目的

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

顺序图和协作图被用来捕捉动态性质,但从不同的角度。

交互图的目的是

  • 捕捉一个系统的动态行为。

  • 描述系统中的信息流。

  • 描述对象的结构组织。

  • 描述对象之间的互动。

如何绘制交互图

正如我们已经讨论过的,交互图的目的是为了捕捉一个系统的动态方面。因此,为了捕捉动态方面,我们需要了解什么是动态方面以及如何将其可视化。动态方面可以被定义为运行中的系统在某一特定时刻的快照

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

在绘制交互图之前,需要清楚地确定以下事项

  • 参与交互的对象。

  • 对象之间的信息流。

  • 消息流动的顺序。

  • 对象的组织。

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

顺序图

顺序图有四个对象(客户、订单、特殊订单和正常订单)。

下图显示了 SpecialOrder 对象的消息顺序,同样的方法也可以用于 NormalOrder 对象。了解消息流的时间顺序是很重要的。消息流只不过是一个对象的方法调用。

第一个调用是 sendOrder() ,这是 Order对象 的一个方法 下一个调用是 确认() ,这是 SpecialOrder 对象的一个方法,最后一个调用是 Dispatch() ,这是 SpecialOrder 对象的一个方法。下图主要描述了从一个对象到另一个对象的方法调用,这也是系统运行时的实际情况。

UML - 交互图示

协作图

第二个交互图是协作图。它显示了如下图所示的对象组织。在协作图中,方法的调用顺序由一些编号技术来表示。数字表示方法是如何被一个接一个地调用的。我们采取了相同的订单管理系统来描述协作图。

方法的调用与顺序图的调用类似。然而,不同的是,序列图没有描述对象的组织,而协作图则显示了对象的组织。

要在这两种图之间进行选择,重点在于需求的类型。如果时间顺序是重要的,那么就使用顺序图。如果组织是需要的,那么就使用协作图。

UML - 交互图示

在哪里使用交互图

我们已经讨论过,交互图是用来描述系统的动态性质的。现在,我们将研究这些图被使用的实际情况。为了理解实际应用,我们需要理解序列图和协作图的基本性质。

这两种图的主要目的是相似的,因为它们都是用来捕捉系统的动态行为。然而,具体的目的更需要澄清和理解。

顺序图是用来捕捉从一个对象流向另一个对象的消息的顺序。协作图用于描述参加交互的对象的结构组织。一个单一的图不足以描述整个系统的动态方面,所以要用一组图来捕捉它的整体。

当我们想了解信息流和结构组织时,就会用到交互图。消息流是指从一个对象到另一个对象的控制流序列。结构组织是指系统中各元素的可视化组织。

交互图可以用来 —

  • 通过时间序列对控制流进行建模。

  • 通过结构组织来模拟控制流。

  • 用于正向工程。

  • 用于反向工程。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程