Page 1 ?
UML及软件建模
主讲人, 李 唯
clx7000@163.com
Page 2 ?
第八章 交互视图概论
什么是交互视图
协作和交互的概念
Page 3 ?
1、概述
对象间的相互作用体现了对象的行为。这种相互作用可以描述成两种互
补的方式,一种以独立的对象为中心进行考察,另一种以互相作用的一
组对象为中心进行考察。
状态图的描述范围不宽,但它描述了对象深层次的行为,是单独考察每
一个对象的“微缩”视图。对状态图的说明是精确的并且可直接用于代

。然而,在理解系统的整个功能时存在困难,因为状态图一个时刻只集
中描述一个对象,要确定整个系统的行为必需同时结合多个状态图进行
考察。交互视图更适合于描述一组对象的整体行为。 交互视图 是对象间
协作关系的模型。
Page 4 ?
2,协作
协作描述了在一定的语境中一组对象以及用以实现某些行为的这些对象间
的相互作用。它描述了为实现某种目的而相互合作的“对象社会”。协作
中有在运行时被对象和连接占用的槽。协作槽也叫做角色,因为它描述了
协作中的对象或连接的目的。类元角色表示参与协作执行的对象的描述;
关联角色表示参与协作执行的关联的描述。类元角色是在协作中被部分约
束的类元;关联角色是在协作中被部分约束的关联。协作中的类元角色与
关联角色之间的关系只在特定的语境中才有意义。通常,同样的关系不适
用于协作外的潜在的类元和关联。
静态视图描述了类固有的内在属性。例如,交通工具 需要有一个所有者。
协作图描述了类实例的特性,因为它在协作中起特殊的作用,例如,在一
个 租车 的协作中,所租的车 需要 租车司机,它通常与交通工具不直接相关
但它是协作的基本部分。
Page 5 ?
系统中的对象可以参与一个或多个协作。虽然协作的执行通过共享对象相
连,但是对象所出现的协作不必直接相关。例如,在一个 休假 模型中,某
人可以既是 租车司机 同时又是 旅店的客人 。不经常出现的情况是一个对象
在同一个协作中可能担当多个角色。
合作包括结构和行为两个方面。结构方面与静态视图相似 — 包含一个角色
集合和它们之间的关系,这些关系定义了行为方面的内容。行为方面是一
个消息集合,这些消息在具有某一角色的各对象间进行传递交换。协作中
的消息集合叫做交互。一个协作可以包含一个或多个交互,每个交互描述
了一系列消息,协作中的对象为了达到目标交换这些消息。
状态机描述范围具有一定的局限性,但它的描述层次较深入,协作不受限
制但描述层次较浅。它捕获了对象组成的网络结构中相互发送消息的整体
行为。协作表示潜藏于计算过程中的三个主要结构的统一,即数据结构、
控制流和数据流的统一。
Page 6 ?
3、交互
交互是协作中的一个消息集合,这些消息被类元角色通过关联角色交换。
当协作在运行时,受类元角色约束的对象通过受关联角色约束的连接交换
消息实例。交互作用可对操作的执行、用例或其他行为实体建模。
消息是两个对象之间的单路通信,从发送者到接收者的控制信息流。消息
具有用于在对象间传值的参数。消息可以是信号(一种明确的、命名的、
对象间的异步通信)或调用(具有返回控制机制的操作的同步调用)。
创建一个新的对象在模型中被表达成一个事件,这个事件由创建对象所引
起并由对象所在的类本身所接受。创建事件,作为从顶层初始状态出发的
转换的当前事件。对于新实例是可行的。
消息可以被组织成顺序的控制线程。分离的线程代表并发的几个消息集合
。线程间的同步通过不同线程间消息的约束建模。同步结构能够对分叉控
制、结合控制和分支控制建模。
消息序列可以用两种图来表示:顺序图(突出消息的时间顺序)和协作图
(突出交换消息的对象间的关系)。