
1.3 UML的视图和通用机制
至此,我们已经对UML的发展历程、建模流程和组成有了一定了解,并且认识了UML体系结构中每层的作用。除了上述了解的UML基本概述外,还需要了解一下UML的视图和通用机制等UML元素。
1.3.1 UML的视图
在对复杂的工程进行建模时,系统可由单一的图形来描述,该图形精确地定义了整个系统。但是,单一的图形不可能包含系统所需的所有信息,更不可能描述系统的整体结构功能。UML中使用视图来划分系统各个方面,每种视图描述系统某一方面的特性。完整的系统由不同的视图从不同的角度共同描述,这样系统才可能被精确定义。UML中具有多种视图,细分起来共有5种:用例视图、逻辑视图、并发视图、组件视图和部署视图。
1.用例视图
用例视图强调从系统的外部参与者(主要是用户)的角度所需要的功能,描述了系统应该具有的功能。用例是系统中的一个功能单元,可以被描述为参与者与系统之间的一次交互。用户对系统要求的功能被当作多个用例在用例视图中进行描述,一个用例就是对系统的一个用法的通用描述。
用例视图是其他视图的核心,它的内容直接驱动其他视图的开发。系统要提供的功能都在用例视图中描述,用例视图的修改会对所有其他的视图产生影响。此外,通过测试用例视图还可以检验最终的校验系统。
2.逻辑视图
逻辑视图的使用者主要是设计人员和开发人员,它描述用例视图提出的系统功能的实现。与用例视图相比,逻辑视图主要关注系统内部,它既描述系统的静态结构,如类、对象及它们之间的关系,又描述系统内部的动态协作关系。对系统中静态结构的描述使用类图和对象图,而对动态模型的描述则使用状态图、时序图、协作图和活动图。
3.并发视图
并发视图的使用者主要是开发人员和系统集成人员,它主要考虑资源的有效利用、代码的并行执行以及系统环境中异步事件的处理。除了系统划分为并发执行的控制以外,并发视图还需要处理线程之间的通信和同步。描述并发视图主要使用状态图、协作图和活动图。
4.组件视图
组件是不同类型的代码模块,它是构造应用的软件单元。而组件视图是描述系统的实现模块以及它们之间的依赖关系。在组件视图中可以添加组件的其他附加信息,如资源分配或其他管理信息。描述组件视图的主要是组件图,它的使用者主要是开发人员。
5.部署视图
部署视图使用者主要是开发人员、系统集成人员和测试人员,它显示系统的物理部署,描述位于节点上的运行实例的部署情况,还允许评估分配结果和资源分配。例如,一个程序或对象在哪台计算机上执行,执行程序的各节点设备之间是如何连接的。部署视图一般使用部署图来描述。
1.3.2 通用机制
通用机制使得UML更简单和易于使用。通用机制可以为模型元素添加注释、信息或语义,还可以对UML进行扩展。这些通用机制中包括了修饰、注释、规格说明和扩展机制。
1.修饰
修饰(Adornment)为图中的模型元素增加了语义,建模时可以将图形修饰附加到UML图中的模型元素上。例如,当一个元素代表某种类型时,名称显示为粗体;当同一元素表示该类型的实例时,该元素名称显示为下画线修饰。
UML中的修饰通常写在相关元素的旁边,所有对这些修饰的描述与它们所影响元素的描述放在一起。下图所示为类和对象修饰示意图。

2.注释
UML的表达能力很强,尽管如此,也不能完全表达出所有信息。所以,UML中提供了注释,用于为模型元素添加额外信息与说明。注释以自由文本的形式出现,它的信息类型为字符串,可以附加到任何模型中,并且可以放置在模型元素的任意位置上。在UML图中,注释使用一条虚线连接它所解释或细化的元素,如下图所示。

3.规格说明
模型元素具有许多用于维护该元素的数据值特性,特性用名称和标记值定义。标记值是一种特定的类型,如整型或字符串。UML中有许多预定义的特性,如文档(Documentation)、职责(Responsibility)、永久性(Persistence)和并发性(Concurrency)。
4.扩展机制
UML的扩展机制(Extensibility)允许根据需要自定义一些构造型语言成分。通过该扩展机制,用户可以自定义使用自己的元素。UML扩展机制由3部分组成:构造型(Stereo Type)、标记值(Tagged Value)和约束(Constraint)。
扩展机制的基础是UML元素,扩展形式是为元素添加新语义。扩展机制可以重新定义语义,增加新语义和为原有元素添加新的使用限制,只能在原有元素基础上添加限制,而非对UML进行直接修改。