1、第2章 UML概述本章将对UML的基本内容进行介绍,包括其起源与发展、概念范围、公共机制、对象约束语言、未来发展目标等。 本章学习的重点是:UML的概念范围及UML的公共机制。 本章学习的难点是:概念的理解。,2.1 UML的起源与发展,70年代中期早期,8994繁盛时期。20世纪90年代完善时期。,从UML纳入到OMG开始,OMG对于UML的修订工作也是从来没有停止过。产生了UML 1.2、UML 1.3和UML 1.4版本,其中UML 1.4版本是较为重要的修订版。目前,该组织正在为UML 2.0努力。,2.2 UML的概念范围,UML定义了一套建模语言。 UML是一种对软件系统进行规约,
2、构造,可视化和文档化的语言。 UML也致力于并发分布式系统和实时系统的建模。 UML的概念模型分为静态结构,动态行为,实现构造,模型组织和扩展机制等部分。 UML的概念和模型划分为视图,图和模型。,2.2.1 视图,UML利用模型来描述系统的结构、静态特征、行为或动态特征,它从不同的视角为系统的架构建模形成系统的不同视图。,结构分类描述了系统中的结构成员及其相互关系。类元包括类、用例、构件和节点。类元为研究系统动态行为奠定了基础。类元视图包括静态视图、用例视图、实现视图以及部署视图。 动态行为描述了系统随时间变化的行为。行为利用从静态视图中抽取的瞬间值的变化来描述。动态行为视图包括状态机视图、
3、活动视图和交互视图。 模型管理说明了模型的分层组织结构。包是模型的基本组织单元。特殊的包还包括模型和子系统。模型管理视图跨越了其他视图并根据系统开发和配置组织这些视图。,视图模型划分为三个视图域,UNL中的主要视图有: 静态视图 、用例视图 、交互视图 、状态机视图 、活动视图 、物理视图、模型管理视图。,1. 静态视图静态视图是对在应用领域中的各种概念以及与系统实现相关的各种内部概念进行的建模。静态视图由类与类之间的关系构成。这些关系含关联、泛化和依赖。,静态视图的作用: UML基础、概念对象的基本结构,2. 用例视图 用例视图描述了系统的参与者与系统进行交互的功能,是参与者所能观察和使用到
4、的系统功能的模型图。,3. 交互视图 交互视图描述了执行系统功能的各个角色之间相互传递消息的顺序关系,是描绘系统中各种角色或功能交互的模型。,描述方式: 以独立对象为中心,称状态机,描述对象内部的深层次行为。 以相互作用的一组对象为中心,称交互视图,描述一组对象的整体行为。,4. 状态机视图 状态机视图是通过对象的各种状态建立模型来描述对象随时间变化的动态行为。,状态这间的变化是通过事件进行触发。 状态使用类的一组属性值进行标识。 状态机还包括了用于描述类的行为的事件,5. 活动视图 活动视图是一种特殊形式的状态机视图,是状态机的一个变体,用来描述执行算法的工作流程中涉及的活动。,活动图含对象
5、活动的状态及对状态的控制。 活动图对事物及对软件系统中和活动进行建模,6. 物理视图 物理视图包含两种视图,分别是实现视图和部署视图。,物理视图对自身的实现结构建模。 物理视图提供了将系统中的类映射成物理构件和节点的机制。 实现视图将系统中可重用的块包装成为具有可替代性的物理单元即构件。 部署视图表示运行时的计算资源(节点)的物理布置。,7. 模型管理视图 模型管理视图是对模型自身组织进行的建模,是由自身的一系列模型元素(如类、状态机和用例)构成的包所组成的模型。,模型是一种特殊的包。 包是操作模型内容、存取控制和配置控制的基本单元。 模型管理由包及包之间的依赖关系组成。,最常用的UML图包括
6、:用例图、类图、序列图、状态图、活动图、构件图和部署图。,2.2.2 图,1. 用例图:用例图描述了系统提供的一个功能单元。用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求,包括基于基本流程的“角色”关系以及系统用例之间的关系。,用例,角色,用例间的关系,2. 类图:显示了系统的静态结构,表示不同的实体(人,事物和数据)是如何相关联的.,名称,操作或方法,属性,类图可以整合其他许多概念,下图中可以看到泛化关系和关联关系。,3. 序列图(顺序图) :显示了一个具体用例或者用例一部分的流程。,垂直维度,水平维度,4. 状态图:表示某个类所处的不同状态以及在这些状态中的转换过程.,
7、判断点,初始起点,状态间的转换,状态,终止点,5. 活动图用来表示两个或者更多的对象之间在处理某个活动时的过程控制流程.,开始,泳道,活动,结束,6. 构件图指出某些功能实际存在于哪些地方.,构件可以是源代码组件、二进制组件或可执行的组件。 确保最终系统将会被接受。,7. 部署图用于表示该软件系统如何部署到硬件环境中。它是显示在系统中的不同的构件在何处物理运行以及如何进行彼此的通信。,图之间的作用:系统的部署图利用系统物理结构的节点显示属于该节点的构件,然后使用构件图显示该构件包含的类,接着使用交互图显示该类对象参与的交互,最终到达某个用例。,把可以在图中使用的基本概念统称为模型元素。模型元素
8、使用相关的语义、元素的正式定义、确定的语句来表达准确的含义。,2.2.3 模型元素,模型元素划分为事物和关系。,(1)结构事物(Structural Thing)7种P41 (2)行为事物(Behavioral Thing)两类P42 (3)分组事物(Grouping Thing)包 (4)注释事物(Annotational Thing)注解,1. 事物 事物是UML模型中面向对象的基本模块,它们在模型中属于静态部分。,2. 关系(4种)以及这些事物之间的各种关系构成的。关系是指支配、协调各种模型元素存在并相互使用的规则。,(1)依赖(Dpendency)关系,(2)关联(Associate)
9、关系,(3)泛化(Generalization)关系,(4)实现(Realization)关系,用在接口和实现接口的类或构件之间, 用在用例和实现用例的协作之间,在UML中共有4种贯穿于整个统一建模语言并且一致应用的公共机制,这4种公共机制分别是规格说明、修饰、通用划分和扩展机制。又分为通用机制和扩展机制。,2.3 UML的公共机制,UML提供了一些通用的公共机制,使用这些通用的公共机制(通用机制)能够使UML在各种图中添加适当的描述信息,从而完善UML的语义表达。,2.3.1 UML的通用机制,通用机制:规格说明、修饰、通用划分。,1. 规格说明(Specification) 如果把模型元素
10、当成一个对象来看待,那么模型元素本身也应该具有很多的属性,这些属性用于维护属于该模型元素的数据值。属性是使用名称和标记值(Tagged Value)来定义的。,2. 修饰(Adornment)在UML的图形表示中,每一个模型元素都有一个基本符号,这个基本符号可视化地表达了模型元素最重要的信息。,3. 通用划分(General Division)通用划分是一种保证不同抽象概念层次的机制。通常可以采用两种方式进行通用划分,一种是对类和对象的划分,另外一种是对接口和实现的分离。,2.3.2 UML的扩展机制扩展机制是对已有的UML语义按不同系统的特点合理地进行扩展的一种机制。下面将介绍3种扩展机制,
11、即构造型(Stereotype)、标记值(Tagged Value)和约束(Constraint)。,1. 构造型(Stereotype) 构造型就像在模型元素的外面重新添加了一层外壳,这样就在模型元素上又加入了一个额外语义。,图2 使用include构造型示例,图1 未使用构造型示例,2. 标记值(Tagged Value) 标记值是由一对字符串构成的,这对字符串包含一个标记字符串和一个值字符串,从而用来存储有关模型元素或表达元素的相关信息。,3. 约束(Constraint) 如果需要对UML构造块的语义进行扩展,就可以使用约束机制,这种机制用于扩展UML构造块的语义,允许建模者和设计人员
12、增加新的规则和修改现有的规则。,2.4 UML的对象约束语言,对象约束语言(Object Constraint Language,OCL)是一种能够使用工具进行解释的表达UML约束的标准方法。用规范或自然语言表达。对象约束语言包含如下4个特性。 1. 对象约束语言不仅是查询语言还是约束语言 2. 对象约束语言是基于数学的 3. 对象约束语言是一种强类型的语言 4. 对象约束语言也是一种声明式语言 对象约束语言的元模型包含类型包和表达式包. 对象约束语言支持不变量约束、前置条件和后置条件,不变量约束是指当某个对象在进行某一操作的过程中将某种约束应用到一种类型上,并指定一个条件特征,该特征在此操作
13、的整个过程中保持不变。,UML中的前置条件是指当某个对象进行某一操作时,附于此操作的限定条件(Constraint)必须为True。,UML中的后置条件是指当一个操作执行结束时附于此操作的限定条件(Constraint)也必须为True。,2.5 UML的未来发展目标,对于UML 2.0的新改进包括以下5个方面。 1. 在语言定义方面的精确程度有了很大提高 2. 一个改良的语言组织 3. 重点改进大规模的软件系统的模型性能 4. 对特定领域改进的支持 5. 全面合并、合理化、清晰化各种不同的模型概念,2.6 本 章 小 结本章是对UML的内容进行一个简要的概括,重点强调的是UML的基本内容,它是后面对UML进行详细介绍的铺垫。在下一章中将对UML的工具Rational Rose进行介绍。,作业:分组并定课题,