- 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 - 交互图
从术语“交互”可以看出,该图用于描述模型中不同元素之间某种类型的交互。这种交互是系统动态行为的一部分。
UML中用两种图来表示这种交互行为,即序列图和协作图。两种图的基本目的都是相似的。
序列图强调消息的时间顺序,而协作图强调发送和接收消息的对象的结构组织。
交互图的目的
交互图的目的是可视化系统的交互行为。可视化交互是一项困难的任务。因此,解决方案是使用不同类型的模型来捕捉交互的不同方面。
序列图和协作图用于捕捉动态特性,但角度不同。
交互图的目的是:
捕捉系统的动态行为。
描述系统中的消息流。
描述对象的结构组织。
描述对象之间的交互。
如何绘制交互图?
正如我们已经讨论过的,交互图的目的是捕捉系统的动态方面。因此,为了捕捉动态方面,我们需要了解什么是动态方面以及如何将其可视化。动态方面可以定义为在特定时刻运行系统的快照。
UML中有两种交互图。一种是序列图,另一种是协作图。序列图捕捉从一个对象到另一个对象的消息流的时间顺序,而协作图描述参与消息流的系统中对象的组织。
绘制交互图之前,需要明确识别以下内容:
参与交互的对象。
对象之间消息的流动。
消息流动的顺序。
对象组织。
以下是两个对订单管理系统进行建模的交互图。第一个图是序列图,第二个图是协作图。
序列图
序列图有四个对象(客户、订单、特殊订单和普通订单)。
下图显示了特殊订单对象的发送消息序列,对于普通订单对象也可以使用相同的序列。理解消息流的时间顺序非常重要。消息流只不过是对象的调用方法。
第一个调用是sendOrder(),它是Order对象的方法。下一个调用是confirm(),它是SpecialOrder对象的方法,最后一个调用是Dispatch(),它是SpecialOrder对象的方法。下图主要描述了从一个对象到另一个对象的方法调用,这也是系统运行时的实际场景。
协作图
第二个交互图是协作图。它显示了如下所示的对象组织。在协作图中,方法调用序列通过某种编号技术来指示。数字表示方法一个接一个调用的方式。我们使用了相同的订单管理系统来描述协作图。
方法调用类似于序列图。但是,区别在于序列图不描述对象组织,而协作图显示对象组织。
要在这两种图之间进行选择,重点在于需求类型。如果时间顺序很重要,则使用序列图。如果需要组织,则使用协作图。
在何处使用交互图?
我们已经讨论过,交互图用于描述系统的动态特性。现在,我们将研究这些图的实际应用场景。要了解实际应用,我们需要了解序列图和协作图的基本特性。
两种图的主要目的是相似的,因为它们都用于捕捉系统的动态行为。但是,具体的目的是更重要的澄清和理解。
序列图用于捕获从一个对象到另一个对象的消息流的顺序。协作图用于描述参与交互的对象的结构组织。单个图不足以描述整个系统的动态方面,因此使用一组图来整体捕获它。
当我们想要了解消息流和结构组织时,可以使用交互图。消息流表示从一个对象到另一个对象的控制流序列。结构组织表示系统中元素的可视化组织。
交互图可用于:
通过时间序列建模控制流。
通过结构组织建模控制流。
正向工程。
逆向工程。