
2.1 UML的基本概念
2.1.1 UML的定义
建模是大型软件项目中必不可少的组成部分。对于软件项目来说,软件模型可以保证项目业务功能的正确和完整,并使最终用户的需求得到满足。不仅如此,软件模型甚至还可以支持诸如软件的可扩展性、可靠性、安全性和可维护性等方面的质量属性。
对于统一建模语言,OMG规范给出了如下的定义。统一建模语言是一种用于说明、构造和记录软件密集型系统中人工制品(Artifact)的图形语言。UML提供了一种编写系统蓝图(Blueprint)的标准方式,它既能描述软件开发过程中的业务流程、用例和系统功能等概念性的事物,也能够描述像程序语句、数据库模式和软件组件等具体的事物。
OMG将UML定义成一种语言,而不是一种方法或一个过程。其主要用途是定义软件系统、详细描述系统中的工件以及记录文档和构造软件系统蓝图。而UML就是用于实现这些用途或书写这个蓝图的建模语言。UML可以用多种方式支持不同的软件开发方法学(如Rational统一过程),但它本身并不指定具体的方法学或过程。
UML为软件开发的不同领域或不同过程定义了不尽相同的符号和语义。以支持软件开发的不同领域的建模。这些领域模型包括用例模型、交互模型、动态模型、逻辑模型、构件模型和物理部署模型等。
(1)用例模型(Use Case Model)
用例模型也称为用户交互模型,该模型描述了系统的参与者与系统之间的交互,当然也描述系统里的边界。这种模型也对应了需求模型的某些方面。
(2)交互模型(Interaction Model)
交互模型也称为通信模型,主要用于描述系统中的对象之间的交互,以及如何通过对象之间的交互以完成特定的系统工作或任务。
(3)动态模型(Dynamic Model)
动态模型的内容则主要包括两个方面:一方面,使用状态图描述系统对象在某个时间段内的状态及其变化;另一方面,使用活动图描述系统需要完成的工作流。
(4)逻辑模型(Logical Model)
逻辑模型也称为类模型(Class Model),主要用于描述构成系统所需要的类以及这些类之间的关系,这个模型描述的是系统的逻辑结构。
(5)构件模型(Component Model)
构件模型主要用于描述构成系统所需要的软件构件及其相互关系,它所表示的是软件系统的物理结构。
(6)部署模型(Deployment Model)
部署模型用于描述系统的物理架构(Physical Architecture)和构件在硬件架构上的部署情况,它所表示的是整个系统的物理结构。
上述六种模型构成了软件开发过程所需要的主要的领域模型。