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