第 8章 统一建模语言 UML
8.1 UML简介一,UML的由来
1997年 11月 17日,OMG采纳 UML l.1作为基于面向对象技术的标准建模语言,表明
UML(Unified Modeling Language)代表了面向对象方法的软件开发技术的发展方向 。
第 8章 统一建模语言 UML
二,UML的内容作为一种建模语言,UML的定义包括 UML语义和
UML表示法两个部分 。
1,UML语义
UML语义是基于 UML的精 确元模型 (Meta
model)。 元模型为 UML的所有元素在语法和语义上提供了简单,一致,通用的定义性说明,使开发在语义上取得一致,消除了人为表达方法所造成的影响 。
第 8章 统一建模语言 UML
2,UML表示法
UML的重要内容可以由下列五类图 (共 9种图形 )来定义 。
( 1) 用例图 (Use-case diagram)
( 2) 静态图 (Static diagram)
( 3) 行为图 (Behavior diagram)
( 4) 交互图 (Interactive diagram)
( 5) 实现图 (Implementation diagram)
第 8章 统一建模语言 UML
三,UML的主要特点
( 1) UML统一了 Booch,OMT和 OOSE等方法中的基本概念 。
( 2) UML还吸取了面向对象技术领域中其他流派的长处其中也包括非 OO方法的影响 。
( 3) UML在演变过程中还提出了一些新的概念 。
第 8章 统一建模语言 UML
四,UML的应用领域
UML的目标是以面向对象图的方式来描述任何类型的系统,具有很宽的应用领域 。 其中最常用的是建立软件系统的模型 。 总之,UML
是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模 。
UML适用于系统开发过程中从需求规格描述到系统完成后测试的不同阶段 。
第 8章 统一建模语言 UML
8.2 UML模型的基本概念一,建模技术构造模型的目的,
( 1) 着手解决一个复杂问题前,对解决方案进行检测 。
( 2) 用于客户和其他相关人员进行交流 。
( 3) 加强视觉效果 。
( 4) 对复杂问题进行适度简化 。
构造模型的基本技术手段是抽象 。
第 8章 统一建模语言 UML
二,标准建模语言 UML建模框架一般而言,可以从以下几种角度来描述一个系统 。
( 1) 系统的使用实例 ( 用例 )
( 2) 系统的逻辑结构
( 3) 系统的构成
( 4) 系统的并发特性
( 5) 系统的配置第 8章 统一建模语言 UML
三,UML模型的基本概念
1,UML的建筑块组成 UML有三种基本的建筑块,即事物,
关系,图 。
2,UML的事物
UML中的事物是结构事物,动作事物,
分组事物,注释事物 。
第 8章 统一建模语言 UML
3,UML中的关系
( 1) 依赖 ( Dependencies)
( 2) 关联 ( Association)
( 3) 一般化 ( Generalization)
( 4) 实现 (Realization)
第 8章 统一建模语言 UML
4,UML中的图
类图 (Class Diagram)
对象图 (Object Diagram)
构件图 (Component Diagram)
配置图 (Deployment Diagram)
第 8章 统一建模语言 UML
用例图 (Use case Diagram)
顺序图 (Sequence Diagram)
合作图 (Collaboration Diagram)
状态图 (Statechart Diagram)
活动图 (Activity Diagram)
第 8章 统一建模语言 UML
8.3 UML的静态建模机制一,用例图
1,用例模型 (Use case model)
用例模型描述的是外部执行者 (Actor)所理解的系统功能 。 用例模型用于需求分析阶段 。
2,用例 (Usecase)
在 UML中,用例被定义成系统执行的一系列动作,
动作执行的结果能被指定执行者察觉到 。 在 UML中,用例表示为一个椭圆 。
第 8章 统一建模语言 UML
3,执行者 (Actor)
执行者是指用户在系统中所扮演的角色 。 其图形化的表示是一个小人 。
4,使用和扩展 (Use and Extend)
5,用例模型的获取
( 1) 获取执行者
( 2) 获取用例第 8章 统一建模语言 UML
二,类图,对象图和包
1,类类是具有相同属性,操作,关系的对象集合的总称 。 通常在 UML中类被画成矩形 。
2,类图类图 (Class Diagram)描述类和类之间的静态关系 。
第 8章 统一建模语言 UML
3,关联关系关联 (Association)表示两个类之间存在某种语义上的联系 。
4,继承关系继承 (Generalization)定义了一般元素和特殊元素之间的分类关系 。 在 UML中,继承表示为一头为空心三角形的连线 。
5,依赖关系依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的事物,反之不成立 。
第 8章 统一建模语言 UML
6,类图的抽象层次和细化 (Refinement)关系在需求分析阶段,类图是研究领域的概念;在设计阶段,类图描述类与类之间的接口;
而在实现阶段,类图描述软件系统中类的实现 。
按照 Steve Cook和 John Dianiels的观点,类图分为三个层次 。
( 1) 概念层
( 2) 说明层
( 3) 实现层第 8章 统一建模语言 UML
7,约束在 UML中,可以用约束 (Constraint)表示规则 。
约束是放在括号 "{}"中的一个表达式,表示一个永真的逻辑陈述 。 在程序设计语言中,约束可以由断言
(Assertion)来实现 。
8,对象图,对象和链
UML中对象图与类图具有相同的表示形式 。 对象图可以看作是类图的一个实例 。 对象是类的实例;对象之间的链 (Link)是类之间的关联的实例 。
9,包第 8章 统一建模语言 UML
10,其他模型元素和表示机制主要还有以下模型符号和概念:类别模板 (Stereotype),界面 (Interface),参数化类 ( Parameterized Class) 也 称 模 板 类
( Template),限定关联 ( Qualified
Association),多维关联 ( N-ary
Association),多维链 (N-ary Link),派生
(Derived),类型 (Type)和注释 (Note)等 。
11,使用类图的几个建议第 8章 统一建模语言 UML
三,构件图和配置图构件图 (Component diagram)和配置图
(Deployment diagram)显示系统实现时的一些特性,包括源代码的静态结构和运行时刻的实现结构 。 构件图显示代码本身的结构,配置图显示系统运行时刻的结构 。
图 8.23 配置图第 8章 统一建模语言 UML
1,构件图
2,配置图
3,结点和连接
4,构件和界面
5,对象 (Object)
第 8章 统一建模语言 UML
8.4 UML的动态建模机制一,消息在面向对象技术中,对象间的交互是通过对象间消息的传递来完成的 。
UML定义的消息类型有三种,
( 1) 简单消息 (Simple Message)
( 2) 同步消息 (Synchronous Message)
( 3) 异步消息 (Asynchronous Message)
第 8章 统一建模语言 UML
二,状态图状态图 (State Diagram)用来描述一个特定对象的所有可能状态及其引起状态转移的事件 。 大多数面向对象技术都用状态图表示单个对象在其生存周期中的行为 。
一个状态图包括一系列的状态以及状态之间的转移 。
(1) 状态 所有对象都具有状态,状态是对象执行了一系列活动的结果 。
(2) 转移 状态图中状态之间带箭头的连线被称为转移 。
第 8章 统一建模语言 UML
三,顺序图顺序图 (Sequence Diagram)用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序 。 顺序图存在两个轴:水平轴表示不同的对象,垂直轴表示时间 。 顺序图中的对象用一个带有垂直虚线的矩形框表示,并标有对象名和类名 。 垂直虚线是对象的生命线,
用于表示在某段时间内对象是存在的 。 对象间的通信通过在对象的生命线间画消息来表示 。
消息的箭头指明消息的类型 。
第 8章 统一建模语言 UML
四,合作图合作图 (Collaboration Diagram)用于描述相互合作的对象间的交互关系和链接关系 。 虽然顺序图和合作图都用来描述对象间的交互关系,
但侧重点不一样 。 顺序图着重体现交互的时间顺序,合作图则着重体现交互对象间的静态链接关系 。
第 8章 统一建模语言 UML
五,活动图活动图 (Activity Diagram) 既可用来描述操作 (类的方法 )的行为,也可以描述用例和对象内部的工作过程 。 活动图是由状态图变化而来的,它们各自用于不同的目的 。 活动图依据对象状态的变化来捕获动作 (将要执行的工作或活动 )与动作的结果 。 活动图中一个活动结束后将立即进入下一个活动 (在状态图中状态的变迁可能需要事件的触发 )。
六,四种图的运用第 8章 统一建模语言 UML
8.5 UML软件开发过程概述一,UML建模过程高层视图图 8.25是 UML建模过程的一个高层视图 。
这是一个迭代递增的开发过程 。 使用此方法,
不是在项目结束时一次性提交软件,而是分块逐次开发和提交 。
第 8章 统一建模语言 UML
二,UML实际建模过程每次迭代都分为以下几个阶段:
(1)分析阶段 。
(2)设计阶段 。
(3)实现阶段 。
(4)配置阶段 。
(5)测试阶段 。