1、UML
1.1概述
UML(Unified Modeling Language 统一建模语言) 是为软件系统的制品进行描述(specifying)、可视化(visualizing)、构造(constructing)、文档化(documenting) 的一种语言。
UML规范用来描述建模的概念有: 类、对象、关联、职责、行为、接口、用例、包、顺序、协作,以及状态。
1.2 UML是一种建模语言
-
建模方法 = 建模语言 + 建模过程。
建模语言定义了用于表示设计的符号(通常是图形符号);建模过程描述进行设计所需要遵循的步骤。 - 标准建模语言UML是一种建模语言,而不是一种方法,它统一了面向对象建模的基本概念、术语及其图形符号,为人们建立了便于交流的共同语言。
- 建模能力:
建模方法 + 领域知识 + 实践
1.3 UML语言包含三方面
- UML基本图素:它是构成UML模型图的基本元素。例如类、对象、包、接口、组件等。
- UML模型图:它由UML基本图素按照UML建模规则构成。例如用例图、类图、对象图、…等。
- UML建模规则:UML模型图必须按特定的规则有机地组合而成,从而构成一个有机的、完整的UML模型图(well-formed UML diagram)。
2、UML支持软件体系结构建模
为了表达不同的软件开发相关人员在软件开发周期的不同时期看待软件产品的不同侧重面, 需要对模型进行分层。
UML根据软件产品的体系结构(architecture)对软件进行分层。
软件的体系结构分解为五个不同的侧面,称为4+1视图(view)。分别是:
- 用例视图(Use case view,Scenarios)—场景视角
- 逻辑视图(Logical view) — 逻辑视角
- 进程(过程)视图(Process view) — 过程视角
- 实现(开发)视图(Implementation view) —开发视角
- 部署(物理、配置)视图(Deployment view) —物理视角
- 每个视图分别关注软件开发的某一侧面
- 视图由一种或多种模型图(diagram)构成
- 模型图描述了构成相应视图的基本模型元素(element)及它们之间的相互关系。
2.1 逻辑视图
逻辑视图定义系统的实现逻辑, 描述为实现用例图描述的功能,在对软件系统进行设计时, 所产生的设计概念,设计概念又称为软件系统的设计词汇 (vocabulary)。
逻辑视图定义了:
- 设计词汇的逻辑结构
- 存在于它们之间的语义联系
- 设计词汇包括系统的类/协同/接口及其关系
对逻辑视图的描述在原则上与软件系统的实现平台无关。 它相当于电子产品生产中的电原理图。逻辑视图包含的模型图有:
- 类图(class diagrams)
- 对象图(object diagrams)
- 交互图(interaction diagrams)
- 状态图(state-chart diagrams)
- 活动图(activity diagrams)
2.2 实现(开发)视图
实现视图描述组成一个软件系统的各个物理部件,这些部件以各种方式组合起来,(如: 不同的源代码经过编译,构成一个可执行系统; 或者不同的软件组件配置成为一个可执行系统;以及不同的网页文件,以特定的目录结构,组成一个网站,等等) 构成了一个可实际运行的系统。
当系统的逻辑结构在逻辑视图里被定义之后, 需要定义逻辑结构的物理实现。这包括:
- 设计元素对应的源代码文件
- 各物理文件之间的关系、存放路径,等等
实现视图就是定义这些内容的地方,它当于电子产品的印刷电路板的布线图。
实现视图包含的模型图有:
- 部件图(Component diagram)
- 交互图(Interaction Diagram)
- 状态图(state-chart diagram)
- 活动图(activity diagram)
2.3 部署视图
软件产品将运行在计算机硬件系统上, 如果软件产品是面向网络的应用系统,则有可能同时运行在多个计算机上。
部署视图用来描述软件产品在计算机硬件系统和网络上的安装、分发(delivery)、分布(distribution)。
在部署视图中,系统的静态特性用分布图(deployment diagram)描述。
动态特性的描述用
- 交互图(interaction diagram)
- 状态图(state-chart diagram)
- 活动图(activity diagram)
2.4 过程视图
过程架构考虑一些非功能性的需求,如性能和可用性。它解决并发性、分布性、系统完整性、容错性的问题,以及逻辑视图的主要抽象如何与过程结构相配合在一起 —— 即在哪个控制线程上,对象的操作被实际执行。
2.5 用例视图
用例(场景)视图用来支持软件系统的需求分析,它定义系统的边界,关注的是系统的外部功能的描述。
它从系统的使用者的角度,描述系统的外部的
- 静态的功能
- 动态行为
系统的动态功能由UML以下模型图描述:
- 交互图(interaction diagram),包括顺序图和协作图。
- 状态图(state-chart diagram)
- 活动图(activity diagram)
3、UML基本组成
\(UML = UML成员 + UML建模规则\)
UML建模规则:相当于建模语言的语法
UML成员(building blocks of the UML):它是UML的基本组成部分
\(UML成员 = UML 基本模型元素+ 关系+ 模型图\)
UML成员可进一步划分为
- UML 基本模型元素(things in UML)
- 关系(relationship)
- 模型图(diagram)
3.1 UML成员
3.1.1 UML 基本模型元素
UML基本模型元素,类似于电子产品电原理图里的集成电路符号,是模型图上包含的基本符号
\(UML基本模型元素 = 结构模型元素+行为模型元素+成组元素+注解元素\)
基本模型元素可分为四类, 它们是:
- 结构模型元素(structural things)
- 行为模型元素(behavioral things)
- 分组模型元素(grouping things)
- 注解元素(annotational things)
3.1.2 关系
结构模型元素是UML模型的静态组成部分,静态组成部分不是孤立存在的,它们被组合在一起互相协作以完成某项任务。因此,结构模型元素之间存在着某种语义上的联系。
在UML中,这种联系是关系(relationship)
UML*有4种关系,它们是:
-
关联关系(association)
-
依赖关系(dependency)
-
泛化关系(generalization)
-
实现关系(realization)
详情点击这里
3.1.3 模型图
UML基本模型元素及其关系必须通过某种载体表示,这种载体就是模型图(diagram)
在UML中,模型图是一组UML基本模型元素的图形表示,它通常由一组节点(UML基本模型元素), 及节点之间的连线(关系)组成
软件系统体系结构的5个视图的内容, 就是用模型图来表达的
一般地说,一个UML基本模型元素既可以出现在所有的模型图中,又可以出现在某些模型图中,甚至可以不在任何一个模型图上出现
9种UML模型图。它们是:
- 类图
- 对象图
- 用例图
- 序列图
- 协同图
- 状态图
- 活动图
- 组件图
- 分布图
3.2 UML建模规则
UML建模规则包括:
- 名字:任何一个UML成员都必须包含一个名字
- 作用域:UML成员所定义的内容起作用的上下文环境
- 可见性:UML成员能被其它成员引用的方式
- 完整性:UML成员之间互相联接的合法性和一致性。
- 运行属性(execution):UML成员在运行时的特性。
完备的UML模型必须对以上的内容给出完整的解释, 当用于软件系统的建造时,UML模型是必须是完备的, 但是当模型在不同的视图中出现时, 出于不同的交流侧重点, 其表达可以是不完备的 。