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