2.2 UML(统一建模语言)介绍 2.2.1 用例图
2.2 UML(统一建模语言)介绍
面向对象软件开发需要经过OOA
(面向对象分析)、OOD
(面向对象设计)和OOP
(面向对象编程)三个阶段,
OOA
对目标系统进行分析,建立分析模型,并将之文档化;OOD
用面向对象的思想对OOA
的结果进行细化,得出设计模型。
OOA
和OOD
的分析、设计结果需要统一的符号来描述、交流并记录,UML就是这种用于描述、记录OOA
和OOD
结果的符号表示法
面向对象的分析与设计方法在20世纪80年代末至90年代中出现了一个高潮,UML
是这个高潮的产物。在此期间出现了三种具有代表性的表示方法:
Booch 1993
表示法
Booch
是面向对象方法最早的倡导者之一,他提出了面向对象软件工程的概念。Booch 1993表示法(由Booch
提出)比较适合于系统的设计和构造。
面向对象的建模技术(OMT
)方法
Rumbaugh
等人提出了面向对象的建模技术(OMT
)方法,采用面向对象的概念,并引入了各种独立于语言的表示符这种方法用对象模型、动态模型、功能模型和用例模型共同完成对整个系统的建模,所定义的概念和符号可用于软件开发的分析、设计和实现的全过程,软件开发人员不必在开发过程的不同阶段进行概念和符号的转换。OMT-2特别适用于分析和描述以数据为中心的信息系统
。
OOSE
方法
Jacobson
于1994年提出了OOSE方法,其最大特点是面向用例(Use-Case
),并在用例的描述中引入了外部角色的概念。用例的概念是精确描述需求的重要武器,但用例贯穿于整个开发过程,包括对系统的测试和验证。OOSE比较适合支持商业工程和需求分析。
UML
UML
统一了Booch
、Rumbaugh
和Jacobson
的表示方法,而且对其进行了进一步的发展,并最终统一为大众所接受的标准建模语言。UML
是一种定义良好、易于表达、功能强大且普遍适用的建模语言,UML的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发全过程。
截至1996年10月,UML
获得了工业界、科技界和应用界的广泛支持,已有700多家公司表示支持釆用UML
作为建模语言。1996年年底,UML
已稳占面向对象技术市场的85%,成为可视化建模语言事实上的工业标准。1997年年底,OMG
组织(Object Management Group
,对象管理组织)采纳UML1.1
作为基于面向对象技术的标准建模语言。UML
代表了面向对象方法的软件开发技术的发展方向,目前UML
的最新版本是2.0,UML
的大致发展过程如图2.8所示。
图2.8中的UML 1.1
和UML 2.0
是UML
历史上两个具有里程碑意义的版本,其中,UML 1.1
是OMG
正式发布的第一个标准版本,而UML 2.0
是目前最成熟、稳定的UML
版本。
UML分类
UML
图大致上可分为静态图和动态图两种,UML 2.0
的组成如图2.9所示。
UML2.0 13种图形
从图2.9可以看出,UML2.0
一共包括13种正式图形:
- 活动图(
activity Diagram
)、 - 类图(
class Diagram
) - 通信图(
communication Diagram
,对应于UML 1.x
中的协作图)、 - 组件图(
componentDiagram
)、 - 复合结构图(
composite Structure Diagram,UML2.0
新增)、 - 部署图(
deployment Diagram
)、 - 交互概观图(
Interactive overview Diagram
,UML2.0
新增)、 - 对象图(
object Diagram
)、 - 包图(
package Diagram
)、 - 顺序图(
sequence Diagram
)、 - 状态机图(
state Machine Diagram
)、 - 定时图(
timing Diagram
,UML2.0
新增)、 - 用例图(
use Case Diaagram
)
最常用的UML
最常用的UML
图包括用例图、类图、组件图、部署图、顺序图、活动图和状态机图等。
2.2.1 用例图
用例图用于描述系统提供的系列功能,而每个用例则代表系统的一个功能模块。用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的需求功能,用例图对系统的实现不做任何说明,仅仅是系统功能的描述。
用例图构成
用例图包括
- 用例、
- 角色、
- 角色和用例之间的关系,
- 用例之间的关系。
图形表示
- 用例(以一个椭圆表示,用例的名称放在椭圆的中心或椭圆下面)
- 角色(
Actor
,也就是与系统交互的其他实体,以一个人形符号表示) - 关系(以简单的线段来表示)
用例图一般表示出用例的组织关系:
要么是整个系统的全部用例,
要么是完成具体功能的一组用例。
图2.10是一个简单的BBS
系统的部分用例示意图。
用例图通常用于表达系统或者系统范畴的高级功能。
如图2.10所示,可以很容易看出该系统所提供的功能。这个系统
- 允许注册用户登录、发帖和回复,其中发帖和回复需要依赖于登录;
- 允许管理员删除其他人的帖子,删帖也需要依赖于登录
用例图 用在 需求分析阶段
用例图主要在需求分析阶段使用,主要用于描述系统实现的功能,方便与客户交流,保证系统需求的无二性,用实例图表示系统外观,不要指望用例图和系统的各个类之间有任何联系。不要把用例做得过多,过多的用例将导致难以阅读,难以理解;尽可能多地使用文字说明。