2.2.6 协作图
协作图和序列图的作用一样反映的也是动态协作除了显示消息变化称为交互外协作图还显示了对象和它们之间的关系称为上下文有关由于协作图或序列图都反映对象之间的交互所以建模者可以任意选择一种反映对象间的协作如果需要强调时间和序列最好选择序列图如果需要强调上下文相关最好选择协作图协作图与对象图的画法一样图中含有若干个对象及它们之间的关系使用对象图或类图中的符号对象之间流动的消息用消息箭头表示箭头中间用标签标识消息被发送的序号条件迭代iteration 方式返回值等等通过识别消息标签的语法开发者可以看出对象间的协作也可以跟踪执行流程和消息的变化情况协作图中也能包含活动对象多个活动对象可以并发执行如图2-6 所示第五章和第八章详细讨论协作图
:计算机
:打印服务器 :打印机
:队列
1 打印文件
[打印机空闲]
1.1 打印文件
[打印机忙]
1.2 存储文件
图2.6 协作图示例
2.2.7 活动图
活动图activity diagram 反映一个连续的活动流如图2-7 所示相对于描述活动流比如用例或交互来说活动图更常用于描述某个操作执行时的活动状况活动图由各种动作状态action state 构成每个动作状态包含可执行动作的规范说明当某个动作执行完毕该动作的状态就会随着改变这样动作状态的控制就从一个状态流向另一个与之相连的状态活动图中还可以显示决策条件动作状态的并行执行消息被动作发送或接收的规范说明等内容活动图在第五章中详述
[空闲磁盘空间]
在屏幕上
显示磁盘满
^Printer.Print(file)
[磁盘满]
在屏幕上
显示打印
产生附录文件
擦除屏幕上
的提示信息
Printfile()
图2.7 活动图示例
2.2.8 组件图
组件图component diagram 用来反映代码的物理结构
代码的物理结构用代码组件表示组件可以是源代码二进制文件或可执行文件组件组件包含了逻辑类或逻辑类的实现信息因此逻辑视图与组件视图之间存在着映射关系组件之间也存在依赖关系利用这种依赖关系可以方便地很容易地分析一个组件的变化会给其他的组件带来怎样的影响组件可以与公开的任何接口比如OLE COM 接口一起显示也可以把它们组合起来形成一个包package 在组件图中显示这种组合包实际编程工作中经常使用组件图如图2-8 所示第六章中将进一步详述组件图