📅  最后修改于: 2020-12-13 15:08:23             🧑  作者: Mango
从术语“交互”可以明显看出,该图用于描述模型中不同元素之间的某种类型的交互。这种交互是系统动态行为的一部分。
在UML中,这种交互行为由两个称为序列图和协作图的图表示。这两个图的基本目的是相似的。
顺序图强调消息的时间顺序,而协作图则强调发送和接收消息的对象的结构组织。
交互图的目的是可视化系统的交互行为。可视化交互是一项艰巨的任务。因此,解决方案是使用不同类型的模型来捕获交互的不同方面。
序列图和协作图用于从不同角度捕获动态性质。
交互图的目的是-
捕获系统的动态行为。
描述系统中的消息流。
描述对象的结构组织。
描述对象之间的相互作用。
正如我们已经讨论的,交互图的目的是捕获系统的动态方面。因此,要捕获动态方面,我们需要了解什么是动态方面以及如何对其进行可视化。动态方面可以定义为特定时刻正在运行的系统的快照
UML中有两种类型的交互图。一个是序列图,另一个是协作图。顺序图捕获了从一个对象到另一个对象的消息流的时间顺序,而协作图描述了参与消息流的系统中对象的组织。
在绘制交互图之前,要清楚地识别以下内容
参与交互的对象。
消息在对象之间流动。
消息流的顺序。
对象组织。
以下是为订单管理系统建模的两个交互图。第一个图是序列图,第二个图是协作图
序列图具有四个对象(Customer,Order,SpecialOrder和NormalOrder)。
下图显示了对于SpecialOrder对象和相同的消息序列能够在NormalOrder对象的情况下使用。了解消息流的时间顺序很重要。消息流不过是对象的方法调用。
第一个调用是sendOrder() ,它是Order对象的方法。下一个调用是Confirm () ,这是SpecialOrder对象的方法,而最后一个调用是Dispatch() ,这是SpecialOrder对象的方法。下图主要描述了从一个对象到另一个对象的方法调用,这也是系统运行时的实际情况。
第二个交互图是协作图。它显示了对象组织,如下图所示。在协作图中,方法调用序列由某种编号技术指示。数字表示方法的调用方式。我们采用了相同的订单管理系统来描述协作图。
方法调用与序列图相似。但是,区别在于顺序图并没有描述对象的组织,而协作图则显示了对象的组织。
要在这两个图之间进行选择,重点放在需求类型上。如果时间顺序很重要,则使用顺序图。如果需要组织,则使用协作图。
我们已经讨论了交互图用于描述系统的动态性质。现在,我们将研究使用这些图的实际情况。要了解实际应用,我们需要了解序列和协作图的基本性质。
这两个图的主要用途相似,因为它们用于捕获系统的动态行为。但是,明确和理解特定目的更为重要。
顺序图用于捕获从一个对象流向另一个对象的消息的顺序。协作图用于描述参与交互的对象的结构组织。单个图不足以描述整个系统的动态方面,因此使用了一组图来捕获整个系统。
当我们想了解消息流和结构组织时,可以使用交互图。消息流是指从一个对象到另一个对象的控制流的顺序。结构组织是指系统中元素的视觉组织。
可以使用交互图-
按时间顺序对控制流进行建模。
模拟结构组织的控制流。
用于正向工程。
用于逆向工程。