面向对象分析与设计
上QQ阅读APP看书,第一时间看更新

2.2.2 UML中的视图

为了简明、准确、清晰地表达一个完整的软件模型,UML定义了多种不同的模型或视图,以便建模人员可以从不同的视角对软件进行建模。

为了描述软件开发过程中使用的各种领域模型,UML中定义了五种基本视图或软件模型来描述一个完整的软件系统结构。这些视图包括用例视图(Use Case View)、逻辑视图(Logical View)、动态视图(Dynamic View)、构件视图(Component View)和部署视图(Deployment View)五种基本视图,如图2-2所示。

另外,UML还定义了业务过程模型(Business Process Model)、需求模型(Requirement Model)和测试模型(Testing Model)等其他多种不同用途的软件模型。其中,五种基本视图具有核心作用,它将其他各种视图有机地连接到一起,共同构成完整的软件模型。

UML是一种用于描述模型的“语言”,而不是一种方法或一个过程。人们可以使用UML定义一个软件系统,详细地描述系统中的工件、文档和构造,UML可以以多种方式支持不同的软件开发方法(如Rational统一过程),但它本身并不指定任何特定的方法或过程。

图2-2 视图之间的关系

图中的五个视图并不直接对应于某一个特定的软件模型的逻辑结构,也不直接对应于软件的物理结构,不同的视图突出的是特定的人员所关注的系统的不同方面,通过合并五个视图中得到的信息就可以形成系统的完整描述。当然,对于某些特殊的领域或过程,可能只考虑某一个视图或某几个视图中包含的信息可能就足够了。

1.用例视图(Use Case View)

用例视图主要用于定义系统的外部行为,是最终用户、分析人员和测试人员所关心的视图。用例视图的主要内容包括参与者、用例以及它们之间的关系,具体内容还可以包括从用例导出的类、为描述用例或场景所建立的活动图、通信图和状态图等。

总之,用例视图描述了系统的用户需求,因此也约束了描述系统设计和构造的所有其他视图。因此,在用例驱动的开发方法中,用例视图在UML占据了模型中最重要的中心位置。

2.逻辑视图(Logical View)

逻辑视图也称为类视图,主要用于描述构成系统所需要的类或对象,其具体内容包括类、类所持有的数据、类的行为以及类之间交互的说明,如何实现系统功能所需要的细节都将在这个视图中描述和展现。

3.动态视图(Dynamic View)

动态视图合并了前面描述的动态模型(Dynamic Model)和交互模型(Interaction Model),用于描述系统中的过程或线程,重点关注系统的非功能性需求。行为视图通常由顺序图、通信图、状态图和活动图等组成。

4.构件视图(Component View)

构件视图用于描述构造系统的物理构件。构件视图中的构件不同于逻辑视图中描述的逻辑构件,这些构件包括可执行文件、代码库和数据库等内容。构件视图中包含的信息与配置管理和系统集成这类活动有关。

5.部署视图(Deployment View)

描述系统的物理结构以及构件如何在系统运行的实际环境中部署。

这两个视图处理的是系统的非功能性需求,例如容错性和性能等问题。动态视图和部署视图在UML中相对地未充分开发,尤其是与逻辑视图相比。在逻辑视图中包含了大量非正式的与设计有关的符号。

6.其他视图

除了上述五种视图以外,UML 2.0以后的版本还定义了其他一些可选的视图。这些视图源于不同的建模方法或开发方法,当使用不同的开发方法,或将UML用于某种特定的目的时,可选择与之对应的视图模型。

这些模型包括业务过程模型(Business Process Model)、需求模型(Requirements Model)、领域模型(Domain Model)、测试模型(Test Model)和分析视图(Analysis View)等多种不同的视图。