第9-1章 UML概述.ppt_第1页
第9-1章 UML概述.ppt_第2页
第9-1章 UML概述.ppt_第3页
第9-1章 UML概述.ppt_第4页
第9-1章 UML概述.ppt_第5页
已阅读5页,还剩32页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,1.1 什么是UML,参考教材 UML统一建模实用教程,王先国主编 清华大学出版社,2009年4月,2,第9-1章 UML概述,3,目录,1.1 什么是UML,1.2 什么是模型,1.3 UML工具,小结,4,1.1 什么是UML,统一建模语言 UML(Unified Modeling Language的缩写): 是用来对软件系统进行可视化建模的一种标准语言。 在开发阶段,UML是用于说明、可视化、构建和书写 面向对象软件制品的设计语言。 UML可以贯穿软件开发周期中的每一个阶段。 被OMG采纳作为业界的标准。 UML最适于数据建模,业务建模,对象建模,组件建模。 UML作为一种模型语言,

2、它使开发人员专注于建立产品的模型和结构。当模型建立之后,模型可以被UML工具转化成指定的程序语言代码。 IBM的Rational Rose和MS的Visio都是UML工具。,5,1.1.1 UML的发展历史,公认的面向对象建模语言出现于70年代中期。 从1989年到1994年,其数量从不到十种增加到了五十多种。90年代中,一批新方法出现了,其中最引人注目的是Booch 1993、OOSE和OMT-2等。 Booch是面向对象方法最早的倡导者之一, 他提出了面向对象软件工程的概念。 1991年,他将以前面向Ada的工作扩展到整个面向对象设计领域。Booch 1993比较适合于系统的设计和构造。,

3、6,1.1.1 UML的发展历史,Rumbaugh等人提出了面向对象的建模技术(OMT)方法,采用了面向对象的概念,并引入各种独立于语言的表示符。这种方法使用对象模型、动态模型、功能模型和用例模型,共同完成对整个系统的建模,所定义的概念和符号可用于软件开发的分析、设计和实现的全过程,软件开发人员不必在开发过程的不同阶段进行概念和符号的转换。OMT-2特别适用于分析和描述以数据为中心的信息系统。 Jacobson于1994年提出了OOSE方法,其最大特点是面向用例(Use-Case),并在用例的描述中引入了外部角色的概念。用例的概念是精确描述需求的重要武器,但用例贯穿于整个开发过程,包括对系统的

4、测试和验证。OOSE比较适合支持商业工程和需求分析。,7,1.1.1 UML的发展历史,此外,还有Coad/Yourdon方法,即著名的OOA/OOD,它是最早的面向对象的分析和设计方法之一。 该方法简单、易学,适合于面向对象技术的初学者使用,但由于该方法在处理能力方面的局限,目前已很少使用。,8,1.1.1 UML的发展历史,概括起来, 首先,面对众多的建模语言, 用户由于没有能力区别不同语言之间的差别, 因此很难找到一种比较适合其应用特点的语言; 其次,众多的建模语言实际上各有千秋; 第三,虽然不同的建模语言大多雷同, 但仍存在某些细微的差别,极大地妨碍了用户之间的交流。 因此在精心比较不

5、同建模语言的优缺点及总结面向对象技术应用实践的基础上,组织联合设计小组,根据应用需求,取其精华,去其糟粕,求同存异,统一建模语言。,9,1.1.1 UML的发展历史,UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。 它溶入了软件工程领域的新思想、新方法和新技术。 它的作用域不限于支持面向对象的分析与设计, 还支持从需求分析开始的软件开发的全过程。 UML代表了面向对象方法的软件开发技术的发展方向, 具有巨大的市场前景,也具有重大的经济价值和国防价值。,10,1.1.2 UML的定义,UML是标准的建模语言,而不是标准的开发过程。尽管UML的应用必然以系统的开发过程为背景, 但由于

6、不同的组织和不同的应用领域,需要采取不同的开发过程。,11,1.1.1 UML的定义,UML的定义包括UML语义和UML表示法两个部分。 UML语义: 描述基于UML的精确元模型定义。 元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的表达方法所造成的影响。此外UML还支持对元模型的扩展定义。 UML表示法: 定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法,为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。,语义:是对数据符号的解释, 语法:是对于这些符号之间

7、的组织规则和结构关系的定义。,12,1.1.3UML中的图,UML中的的图分为两大类:结构图和行为图。 结构图描绘系统组成元素之间的静态结构; 行为图描绘系统元素的动态行为。 结构图有下列几种类型:7种 (1) 类图 类图是使用UML建模时最常用的图。它展示了系统中的 静态事物、它们的结构以及它们之间的相互关系。 这种图的典型用法是描述系统的逻辑设计和物理设计。 (2) 构件图 构件图展示一组构件的组织和彼此间的依赖关系。 构件图说明系统如何实现,软件系统内构件如何协同工作。 (3) 对象图 对象图展示系统中的一组对象。它是系统在某一时刻的快照。对象图是类图在某一时刻的快照。,13,1.1.3

8、UML中的图,(4) 部署图 部署图展示物理系统运行时的架构。 部署图描述系统中的硬件和硬件上驻留的软件。 UML2.0新增了以下几种结构图: (5) 组合结构图 组合结构图展示模型元素的内部结构。 (6) 包图 包图描绘包之间的依赖关系(包是一个用于组织其他模型元素的通用模型元素)。 (7) 用例图 用例描述了系统的工作方式,以及系统能提供的服务。 用例图描述了系统外部参与者如何使用系统提供的服务。,14,1.1.3UML中的图,行为图有下列几种:6种 (1) 活动图 活动图显示系统内的活动流。 通常需要使用活动图描述不同的业务过程。 (2) 状态图 状态图显示一个对象的状态和状态之间的转换

9、。 状态图中包括状态、转换、事件和活动。 状态图是一个动态视图,对事件驱动的行为建模尤其重要。例如,可以利用状态图描述一个电话路由系统中交换机的状态。不同的事件可以令交换机转移至不同的状态,用状态图对交换机建模有助于理解交换机的动态行为。在UML2.0中,状态图被称作状态机图(state machine diagram)。,15,1.1.3UML中的图,(3) 合作图 合作图是交互图的一种,交互图还包括顺序图(以及UML2.0中新定义的其他几种图,稍后将介绍)。合作图突出对象之间的合作与交互。在UML2.0 中,合作图被通信图(communication diagram)所取代。 (4) 顺序

10、图 顺序图是另一种交互图。 顺序图强调一个系统中不同元素间传递消息的时间顺序。 UML2.0 又增加了下列几种行为图: (1) 时间图 时间图也是一种交互图。 它描绘与交互元素的状态转换或条件变化有关的详细时间信息。 (2) 交互概述图 交互概观图是一种高层视图,用于从总体上显示交互序列之间的控制流。,16,1.1.3UML中的图,在实际进行系统建模时,几乎没有人使用UML标准中定义的所有图。其中的一些你可能永远也不会用到。 从应用的角度看,当采用面向对象技术设计系统时, 首先是描述需求; 其次根据需求建立系统的静态模型,以构造系统的结构; 第三步是描述系统的行为。 其中在第一步与第二步中所建

11、立的模型都是静态的, 包括用例图、类图(包含包)、对象图、组件图和配置图等五种图形,是标准建模语言UML的静态建模机制。 其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语言UML的动态建模机制。因此,标准建模语言UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类。,17,1.1.4 UML的主要特点,UML的主要特点可以归结为三点: 1UML统一了Booch、OMT和OOSE等方法中的基本概念。 2UML还吸取了面向对象技术领域中其他流派的长处,其中也包括非OO方法部分。UML符号表示考虑了各种方法

12、的图形表示,在UML中汇入了面向对象领域中很多人的思想。 3UML在演变过程中还提出了一些新的概念。 在UML标准中新加了模板、职责、扩展机制、线程、过程、分布式、并发、模式、合作、活动图等新概念,并清晰地区分类型(Type)、类(Class)和实例(Instance)、细化(Refinement)、接口(Interfaces)和组件(Components)等概念。 因此可以认为,UML是一种先进实用的标准建模语言, 但其中某些概念尚待实践来验证,UML也必然存在一个进化过程。,18,1.1.5 UML的应用领域,UML的目标是以图的方式来描述任何类型的系统,具有很宽的应用领域。 其中最常用的

13、是建立软件系统的模型, 但它同样可以用于描述非软件领域的系统, 如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。 总之,UML是一个通用的标准建模语言, 可以对任何具有静态结构和动态行为的系统进行建模。,19,1.1.5 UML的应用领域,UML适用于开发过程中从需求规格描述到系统完成后测试的不同阶段。 需求阶段,可以用用例来捕获用户需求。通过用例建模,描述对系统感兴趣的外部角色及其对系统(用例)的功能要求; 分析阶段,主要关心问题域中的主要概念(如抽象、类和对象等)和机制,需要识别这些类以及它们相互之间的关系,并用UML类图来描述系统。 设计阶

14、段,将考虑软件系统中类的定义和细节(如处理用户接口、数据库、通讯和并行性等问题的类)。设计阶段为构造阶段(编程阶段)提供更详细的规格说明。,20,1.1.5 UML的应用领域,编程(构造)是一个独立的阶段,其任务是用面向对象编程语言将设计阶段的类转换成实际的代码。在用UML建立分析和设计模型时,应尽量避免考虑把模型转换成某种特定的编程语言。因为在早期阶段,模型仅仅是理解和分析系统结构的工具,过早考虑编码问题十分不利于建立简单正确的模型。 测试阶段,UML模型还可作为测试阶段的依据。 系统通常需要经过单元测试、集成测试、系统测试和验收测试。 不同的测试小组使用不同的UML图作为测试依据: 单元测

15、试使用类图和类规格说明; 集成测试使用部件图和合作图; 系统测试使用用例图来验证系统的行为; 验收测试由用户进行,以验证系统测试的结果是否满足在分析阶段确定的需求。 总之,UML适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。 UML 2.0 中一共定义了13 种图示(diagrams),21,1.2 什么是模型,模型就是对一个对象或物体的简化表示。 如,地球仪就是一个模型,它是对地球的简化表示。 我们可以用模型来表示现实领域中的业务, 也可以用模型表示软件领域中的软件组成和结构。 日常生活中,常见的模型有很多,如图1-1所示。

16、 下面按用途对模型进行命名的有: 交通模型:道路交通图、交通标志 建筑模型:建筑物模型、沙盘、公司总部的3D复制品 数据分析模型:条形图、饼状图 设计模型:建筑平面图、管线图、电路板设计图 ,22,1.2 什么是模型,图1-1 常见的模型,建筑平面图,数据分析模型,管线图,电路板设计图,23,1.2 什么是模型,上面这些模型, 是用图形符号对现实世界中某个事物的模仿或仿真。 在软件开发工程中,模型主要用来描述问题域和软件域。 问题域主要包括业务、业务规则、业务流程、工作流程; 软件域主要包括软件组成、软件结构、软件部署等。,24,1.2.1 为什么建模,开发软件活动包括两个方面工作: 第一是对

17、业务和业务规则的理解和表示; 第二是规划和设计软件系统。 由于业务规模和复杂度不断增加,软件的规模和复杂度也不断增长,人们对业务的理解、对软件的设计和构造越来越困难,只有借助UML这种建模语言来表示和理解业务;借助UML语言来设计和构造软件系统,通过UML来表示和展现系统组成和交互。 在软件开发活动中,UML主要用于两个方面的建模: 对业务建模和对要构造的软件建模。,25,1.2.1 为什么建模,1对业务建模 业务建模的目的是理解业务内容和业务过程。 你对自己的业务过程建模,不仅是为了理解业务的内容中规定了要做什么,业务是如何进行的,同样也是为了识别业务的变更对业务造成的影响。对业务建模,有助

18、于你发现业务的优缺点,找出需要改进和优化的地方,在某些情况下还可以对几个可选的业务过程进行仿真。 2对软件建模 软件建模的目的是用UML表示软件的体系和组成, 方便软件设计人员理解和修改软件方案,确保软件设计和计划能正确地实现,同时,一旦设计和计划需要修改时,修改后的软件系统,同样经受得起时间的检验,例如,当在一个软件系统中增加一个组件时,你要保证系统不会因为增加了这个组件而崩溃。,26,1.2.2建模的目的和原则,1. 建模的目标 通过对业务和软件系统建模,以实现下面4个目标: 对业务和软件进行可视化, 便于对业务和软件系统的理解和交流。 (2) 详细说明系统的组成、结构和系统交互的行为。

19、便于开发人员对系统的宏观理解。 (3) 用模型的方式为系统提供一个模板, 开发人员依据该模板构造软件系统。 (4) 将计划和决策文档化。,27,1.2.2建模的目的和原则,2建模的原则 (1) 仅当需要时,才为业务或软件系统构建模型 (2) 按照实际情况或按我们需要的样式, 对业务或软件系统进行建模。 (3) 依据解决方案,来构造需要的模型。 (4) 最好用一组相对独立的模型, 从不同的侧面,描述重要的业务或软件系统。,28,1.2.3 为什么要用UML建模,UML是一种公共的、可扩展的、应用广泛的设计语言。UML可应用于软件开发活动中的每个阶段, 可以表示每个阶段的产品。 使用UML的原因,

20、主要表现在以下三个方面: 1UML是一种公共语言 UML为业务分析员(business analyst)、架构设计师(architect)、代码实现者、测试者、数据库设计师和许许多多参与软件设计和开发的人提供了一个公共“语言”, 使他们能够理解业务、需求,理解软件和架构如何构造。,29,1.2.3 为什么要用UML建模,2UML是一种应用广泛的语言 UML不仅可以用于软件建模,也可以用于业务建模、 知识建模、数据库建模、工作流建模、嵌入式系统建模。 用同一种语言对不同的领域建模,便于理解和沟通。 3UML是一种很好的扩展语言 在UML框架上,用户可以定义和扩展UML语义和语法, 建模更方便、更

21、灵活。,30,1.2.4 用UML可以建立的模型种类,可以使用不同类型的UML图,创建不同类型的模型。 这些模型都是由不同类型的图、模型元素以及模型元素之间的链接组成。 对模型有两种常见的分类方法: 1按产生模型的阶段性分类 在软件开发过程中,模型的产生具有阶段性。 模型按阶段性分为以下几类: 业务模型:展示业务和业务规则的模型。 领域专家和需求分析师创建该种模型。 需求模型:展示应用系统要求和业务要求的模型。 需求分析师和系统分析师创建该种模型。,31,1.2.4 用UML可以建立的模型种类,设计模型:包含架构模型和详细设计模型, 架构模型展示软件系统的宏观结构和组成; 详细设计模型展示软件

22、的微观组成和结构。 架构师设计架构模型, 详细设计模型则以资深开发人员为主, 架构师提供指导,共同设计。 实现模型:表示可执行软件的组成要素和关系。 以资深开发人员(设计人员)为主,架构师提供总体指导。 数据库模型:以数据库开发人员为主,架构师提供指导, 资深开发人员(设计人员)予以配合。,32,1.2.4 用UML可以建立的模型种类,按模型的用途分类 按模型在开发过程中所起的作用,对模型分类, 在UML系统开发中有三个主要的模型: 功能模型: 从用户的角度展示系统的功能,包括用例图。 对象模型: 采用对象、属性、操作、关联等概念 展示系统的结构和基础,包括类图。 动态模型: 展现系统的内部行

23、为。 包括序列图、活动图、状态图。,33,1.3 UML工具,UML工具是帮助软件开发人员方便使用UML的软件, 它的主要功能包括: 支持各种UML模型图的输入、编辑和存储; 支持正向工程和逆向工程; 提供和其他开发工具的接口。 不同的工具提供的功能不同,各个功能实现的程度也不同。目前主要的UML工具有 Rational公司的Rose, Together Soft公司的Together, 微软公司的Visio等。,34,1.3.1 主要UML工具介绍,Rational公司Rose是目前最好的基于UML的Case工具, 它把UML有机地集成到面向对象的软件开发过程中。 不论是在系统需求阶段,还是在对象的分析与设计、软件的实现与测试阶段,它都提供了清晰的UML表达方法和完善的工具,方便建立其相应的软件模型。 使用Rose可以方便地进行软件系统的分析、设计, 很容易同常见的开发环境和程序设计语言进行衔接。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论