第六章 UML统一建模
第六章 UML统一建模语言
内容介绍
6.1 UML概述 6.2 UML的静态建模机制 6.3 UML的动态建模机制 6.4 案例分析 6.5 小结
6.1 UML概述
UML(Unified Modeling language),统一建模语 言,是一种标准的图形化建模语言。它主要用于 软件的分析与设计,用定义完善的符号来图形化 地展现一个软件系统。UML的应用可以贯穿于软 件开发的每一个阶段,适用于数据建模、业务建 模、对象建模和组建建模。UML仅是一种建模语 言,不设计编程问题,与计算机语言平台无关。 UML于1996年开发成功至今,相继推出了UML0.9、 UML0.91、UML1.1、UML2.0版本。1997年11月, 国际对象管理组织把UML1.1作为基于面向对象技 术的标准建模语言。
6.1 UML概述
UML的内容
UML是一种标准的图形化(即可视化)建模 语言。 它由图和元模型组成。 图是UML的语法,而元模型给出图的含义,是 UML的语义。
6.1 UML概述
UML的语义
UML的语义被定义在一个如下四层(四个抽象级别)建模 概念框架中。 ① UML的基本元模型层。由UML最基本的元素“事物” 组成,代表要定义的所有事物。 ② 元模型层。由UML的基本元素组成,包括面向对象和面 向构件的概念。这一层的每个概念都是基本元模型中 “事物”概念的实例。 ③ 模型层。由UML模型组成,这一层的每个概念都是元模 型层中概念的实例。这一层的模型通常称为类模型或类 型模型。 ④ 用户模型层。由UML模型的例子组成,这一层中的每个 概念都是模型层的一个实例,也是元模型层概念的一个 实例。这一层的模型通常称为对象模型或实例模型。
6.3.2 顺序图
顺序图描述对象之间的动态交互关系,着重 表现对象间消息传递的时间顺序。顺序图有 两个坐标轴:纵坐标轴表示时间,横坐标轴 表示不同的对象。 顺序图中的对象用一个矩形框表示,框内标 有对象名(对象名的表示格式与对象图中相 同)。从表示对象的矩形框向下的垂直虚线 是对象的“生命线”,用于表示在某段时间 内该对象是存在的。
①普通关联
普通关联是最常见的关联关系,只要在类 与类之间存在连接关系就可以用普通关联 表示。 普通关联的图示符号是连接两个类之间的 直线。
▲
使用 学生 计算机
1..*
▲
*
被使用
①普通关联
如果关联是单向的,则称为导航关联,其符 号是用实线箭头连接两个类。仅在箭头所 指的方向上才有这种关联关系 。
6.3.3 协作图
协作图用于描述相互合作的对象间的交互 关系和链接关系。 虽然顺序图和协作图都用来描述对象间的 交互关系,但是侧重点不一样。顺序图着 重体现交互的时间顺序,协作图则着重体 现交互对象间的静态链接关系。
6.3.4 活动图
活动图描述动作及动作之间的的是描述动 作及动作的结果——对象状态改变。 在活动图中,用例和对象的行为中的各个活 动之间通常具有时间顺序。活动图表达这种 顺序,展示出对象执行某种行为时或者在业 务过程中所要经历的各个活动和判定点。
4.建立用例模型
(1)发现执行者
谁将使用系统的主要功能?
谁来维护和管理系统? 系统控制哪些硬件设备? 系统需要与哪些其他系统交互?
(2)获取用例
执行者需要从系统中获得何种功能? 执行者需要读取、产生、删除、修改或存储系统中的某
种信息吗? 系统中发生的事件需要通知执行者吗? 系统需要何种输入/输出? 当前使用的系统存在的主要问题是什么?
3.对象图
对象是类的实例,对象之间的连接是类之间关联的 实例。因此,对象图可以看作是类图的实例。 在UML中,对象图与类图表示形式类似,主要差别 是对象的名字下面要加一条下划线。 对象名有下列三种表示格式:
第一种格式。对象名:类名。 第二种格式。:类名。 第三种格式。对象名。
张林:学生 五机房8号机: 计算机 三机房8号机: 计算机
行为图也称为动态模型图,主要用来表示系统的行
为。其中,
用例图用来描述一组用例、用例的操作者以及它们的关系
顺序图用来显示若干对象之间的动态协作关系,强调对象 间发送消息的先后顺序,描述对象间的交互过程 活动图重点描述事物执行的控制流或数据流 状态机图描述类的对象的所有可能状态,以及引起状态转 换的事件
6.1 UML概述
UML的图
结构图
类图 对象图 组件图 部署图 包图 活动图 交互图 图
行为图
用例图 状态机图
组织结构图
常用
顺序图 通信图 交互概况图
常用
时序图
常用
6.1 UML概述
说明:
结构图也称为静态模型图,主要表示系统的结构。
其中,
类图主要表示类、接口、协作以及它们之间的关系 对象图主要表示对象的特征以及对象之间的关系
3.执行者
执行者是与系统交互的人或物,它代表外部实体 。 执行者是一个群体概念,代表的是一类能够使用某 个功能的人或物,而不是某个个体。 在UML的用例图中,用一个小人图形代表一个执行 者,但这并不意味着执行者就一定是人。用不带箭 头的线段把执行者与用例连接在一起,表示两者之 间交换信息,称为通信联系。 执行者激活用例,并与用例交换信息。
状态图用来描述一个特定对象的所有可能状态,以及引起状态 转换的事件。 1.状态 所有对象都具有状态,状态是对象执行了一系列活动的结果。 当某个事件发生后,对象的状态将发生变化。在状态图中定 义的状态可能有:初始状态、最终状态、中间状态和复合状 态。 2.状态转换 状态图中两个状态之间带箭头的连线称为状态转换。状态的 变迁通常是由事件触发的,此时应在转移上标出触发转移的 事件表达式。如果转移上未标明事件,则表示在源状态的内 部活动执行完毕后自动触发转移。
系统内部
保险单
客户
Oracle界面 数据库界面 {abstract}
Sybase界面
6.3 UML的动态建模机制
在面向对象技术中,对象之间的交互是通 过对象间的消息传递完成的。 UML定义了如下三种消息:
同步消息。
异步消息。 简单消息。
同步 异步 简单 同步且立即返回
6.3.1 状态图
2.关系
类图描述了类和类之间的静态关系。 类与类之间通常有关联、泛化(继承)、依 赖和细化等四种关系。
(1)关联关系
关联表示两个类之间存在某种语义上的联 系。 例如,学生使用计算机,我们就认为在学 生和计算机之间存在某种语义上的联系, 因此,在类图中应该在学生类和计算机类 之间建立关联关系。
1.类图
类图(Class Diagram)描述类和类之间的静态 关系。 所谓类是对一类具有相同特征的对象的描述。 而对象是类的实例。 类描述一类对象的属性和行为。在UML中,类 的可视化表示为一个划分成三个格子的长方形 (下面两个方格可以省略)。
类的名称 属性 操作
1.类图
类的获取和命名
类B 《友元》 类A
(4)细化关系
当对同一事物在不同抽象层次上描述时,这些描述 之间具有细化关系。 细化是UML中的术语,表示对事物更详细一层的描 述。 假设两个元素A和B描述同一个事物,它们的区别是 抽象层次不同,如果B是在A的基础上的更详细的描 述,则称B细化了A,或称A细化成了B
分析类 设计类
6.1 UML概述
UML的主要的模型
功能模型: 从用户的角度展示系统的功能, 包括用例图。 对象模型: 采用对象,属性,操作,关联等 概念展示系统的结构和基础,包括类图。 动态模型: 展现系统的内部行为。 包括时序 图,活动图,状态图。 是数据库设计过程中, 在E-R图(实体-联系图)的设计后的进一步建 模。
2.用例
自动售货机系统
售货
顾客
供货
取货款
供货人
收银员
2.用例
概括地说,用例具有以下特点:
用例代表某些用户可见的功能,实现一个具体的
用户目标。 用例由执行者激活,并提供确切的值给执行者。 用例可大可小,但它必须是对一个具体的用户目 标实现的完整描述。
注意:用例是一个类,它代表一类功能而不是 使用该功能的某个具体实例。
6.1 UML概述
UML 具有以下特点: (1)面向对象。UML支持面向对象技术的主要概念,提供 了一批基本的模型元素的表示图形和方法,能简洁明了地表达 面向对象的各种概念。 (2)可视化,表示能力强。通过UML的模型图能清晰地表 示系统的逻辑模型和实现模型,可用于各种复杂系统的建模。 (3)独立与过程。UML是系统建模语言,独立与开发过程。 (4)独立于程序设计语言。用UML建立的软件系统模型可 以用Java、VC++、Smalltalk等任何一种面向对象的程序设 计来实现。 (5)易于掌握使用。UML图形结构清晰,建模简洁明了, 容易掌握使用。 使用UML进行系统的分析和设计,可以加速开发的进程,提 高代码的质量,支持动态的业务需求。UML适用于各种规模的 系统开发,能促进软件复用,方便地集成已有的系统并有效处 理开发中的各种风险。
4.包
包是一种组合机制。把各种各 样的模型元素通过内在的语义 关系连在一起,形成一个高内 聚、低耦合的整体就叫做包。 (1)包的内容 构成包的模型元素称为包的内 容,包的内容可以是一个类图 也可以是另一个包图。 (2)包的依赖和继承 包与包之间允许建立依赖、泛 化和细化等关系。
保险单填写 界面
列表框
按钮 菜单
*
(2)泛化关系
UML中的泛化关系就是通常所说的继承关系,它是 通用元素和具体元素之间的一种分类关系。 在UML中,用一端为空心三角形的连线表示泛化关 系,三角形的顶角紧挨着通用元素。
汽车 车厢
客车 客车车厢 载客
货车 货车车厢 载货
(3)依赖关系
依赖关系描述两个模型元素(类、用例等) 之间的语义连接关系:其中一个模型元素 是独立的,另一个模型元素是不独立的, 它依赖于独立的模型元素,如果独立的模 型元素改变了,将影响依赖于它的模型元 素。