软件工程 第7章 统一建模语言.ppt
《软件工程 第7章 统一建模语言.ppt》由会员分享,可在线阅读,更多相关《软件工程 第7章 统一建模语言.ppt(95页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第七章 统一建模语言UML【本章引言】面向对象技术在当今的软件开发过程中有了深入的研究和广泛的应用。面向对象技术使用的各种软件设计工具、规范等在面向对象技术发展的过程中经历了较大的发展。UML就是这个发展过程中最重要的成果。UML统一了面向对象技术的众多表示方法,最终统一为大众所接受的标准建模语言。【本章重点】nUML的概念和主要内容;n用例图、类图、对象图和包;n状态图、交互图和活动图。【学习目标】n掌握UML的概念和主要内容;n掌握UML构造块、规则和公共机制;n掌握UML的建模机制;n了解UML的发展;n了解UML的应用领域n了解各种图的应用。【教学内容】n7.1 UML概述n7.2 U
2、ML的概念模型n7.3 UML的静态建模机制n7.4 UML的动态建模机制n7.5 UML的物理架构建模n7.6 小结小结 n7.7 习题习题7.1.1 UML概念概念nUML(Unified Modeling Language),统一建模语言,是一种绘制软件蓝图的标准语言,用于对软件系统制品(包括程序、数据及文档等)进行可视化、详细说明、构建并归档处理。nUML具有如下含义:n1.UML是一种语言 语言提供用于交流的词汇及词语组合的规则。建模语言是这样一种语言,它的词汇和规则集中于系统的概念表达和物理表达上。像UML这种建模语言是绘制软件蓝图的标准语言。UML的词汇和规则说明了如何建立模型和
3、阅读建好的模型,但没有说明建立什么模型和什么时候建立模型,这些是软件开发过程的工作范畴。n2.UML是一种可视化语言 有些事物使用文本建模比较好,而有些事物使用图形建模则更好一些。编程语言使用文本来建模,UML是图形化语言,它的建模体系要远远优于文本建模。UML表面看起来是一些图形符号,实际上在每个图形符号的后面是定义明确的语义。一名开发人员使用UML建立一个模型,另一名开发人员能够明确地解释这个模型,而不会出现歧义的理解。n3.UML是一种明确性语言UML建立的模型是精确的、无歧义的和完整的模型。UML还可以对软件系统所有重要的分析、设计、实现和部署软件系统制定规格说明书。n4.UML是一种
4、构建的语言 UML不是编程语言,但它的模型与多种编程语言有直接的联系。可以将UML的模型映射成如Java、C#、C+或Visual Basic的某一种编程语言,甚至映射成关系数据库的表。n5.UML是一种文档化语言好的软件公司除了源程序外还应制作各种软件制品,这些软件制品包括:n系统需求n系统架构n系统设计n源代码n项目计划n系统测试n原型n软件发布UML给出系统架构和所有详细情况的文档。UML提供表达需求和测试的语言,UML也提供项目计划和发布管理活动的建模语言。nUML不是一种建模方法,只是一种建模语言。一般的方法均应该由建模语言和建模过程两部分组成,其中建模语言提供了该方法中用于表示设计
5、的符号,而建模过程则描述了进行设计所需要遵循的步骤。UML统一了面向对象建模的基本概念、术语和图形符号,为使用者建立了易于沟通的共同语言。使用者可以根据所开发软件的类型、环境和条件,选用不同的建模过程。7.1.2 UML的演变 n面向对象技术出现以后,各种建模技术应运而生。UML语言是在总结和归纳了很多面向对象技术和方法基础之上建立起来的。面向对象最早的发起者和倡导者Grady Booch于1993年提出面向对象技术Booch 1993奠定了UML语言发展的基础。Booch 1993适用于软件系统的设计和构建。UML语言的另一个来源是Jim Rumbaugh等人提出的面向对象的建模技术(Obj
6、ect-oriented Modeling Techniques,OMT)。OMT技术采用对象模型、动态模型、功能模型和用例模型一起实现对整个软件系统的建模,所定义的概念和方法可以用于整个软件开发生命周期的分析、设计和实现全过程。1994年另一位面向对象技术专家Ivar Jacobson提出了面向对象软件工程(Object-Oriented Software Engineering,OOSE)的方法,该方法最大的特点是用例,在用例的描述中引入了参与者的概念。n1994年10月,Grady Booch和Jim Rumbaugh将两人各自的技术统一起来,并于1995年10月发布了被称为统一方法(U
7、nified Method)的UM0.8。1995年秋,OOSE的创始人Ivar Jacobson加盟到这一团队中。经过3人的共同努力,在1996年6月发布了UML 0.9版本,在1996年10月发布了UML 0.91新版本,并将UM重新命名为UML(Unified Modeling Language)。后来,很多大公司参与到了这些工作中,这些大公司包括DEC、HP、IBM、Microsoft、Oracle、Rational Software、TI和Unisys等。1997年1月正式公布了UML 1.0,1997年11月17日,OMG(Object Management Group)接纳UML
8、 1.1为基于面向对象技术的标准建模语言。2001年,发布UML 1.4版,2005年7月,发布UML 2.0版。UML的出现统一了面向对象的建模语言,标志着面向对象技术和方法的成熟。7.1.3 UML的主要内容 nUML的定义包括UML语义和UML表示法两部分。UML语义通过其元模型进行严格定义,元模型为UML的所有元素在语法和语义上提供了简单、一致且通用的定义性说明。UML表示法定义了UML的表示符号,为建模人员和建模支持工具的开发人员提供了标准的图形符号和正文语法。nUML提供了5类图形。n1.用例图(Use Case Diagram):它从用户的角度描述系统的功能,并且明确指出各功能的
9、操作者。n2.静态图(Static Diagram):包含类图(Class Diagram)、对象图(Object Diagram)及包图(Package Diagram)。类图用于定义系统中的类,描述系统中类的静态结构。包括类的内部结构(类的属性和操作)及类之间的联系(如关联、依赖和聚合等)。类图描述了系统中类的静态结构,在系统的整个生命周期中都有效。对象图所使用的符号与类图几乎完全相同,不同点在于对象只是类的实例,而不是实际的类。一个对象图是某一类图的实例。对象有生命周期,对象图只会在系统某一时间段内存在。包图由包或类组成,主要包与类、包与包之间的关系。包图用于描述系统的层次结构,而不是一
10、种独立的模型图。n3.行为图(Behavior Diagram):描述系统的动态模型和组成对象之间的约束关系。行为图包括状态图(Statechart Diagram)和活动图(Activity Diagram)。状态图描述一类对象的所有可能的状态以及事件发生时状态的转移条件。通常状态图是对类图的补充。实际上,并不需要对所有的类图绘制状态图,而只需要对那些有多个状态并且其行为受外界环境的影响而发生变化的类绘制状态图。另一种行为图是活动图,它描述为满足用例要求而要进行的活动和活动之间的约束关系。使用活动图能够很方便地表示并行活动。n4.交互图(Interaction Diagram):描述对象之间
11、的交互关系。包括时序图(Sequence Diagram)和合作图(Collaboration Diagram)。时序图描述对象之间的动态交互关系,它强调对象之间消息发送的顺序,同时也显示了对象之间的交互过程。合作图着重描述对象之间的协作关系。合作图与时序图相似,显示对象之间的动态合作关系。除了显示信息交换之外,合作图还显示对象以及他们之间的关系。如果强调时间和顺序,应该使用时序图;如果强调互相之间的通信关系,则应该使用合作图。n5.实现图(Implementation Diagram):包括部件图(Component Diagram)和配置图(Deployment Diagram)。部件图描
12、述代码部件的物理结构以及各部件之间的依赖关系。一个部件可能是一个源代码部件、一个二进制部件或一个可执行程序部件。它包含逻辑类或者实现类的有关信息。部件图有助于分析和理解部件之间相互影响的程度。配置图定义系统中软硬件的物理体系结构。它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可以显示连接的类型和部件之间的依赖性。在节点内部,放置可执行部件和对象,用于显示节点和可执行软件单元之间的对应关系。7.1.4 UML的应用的应用nUML主要用于软件系统,在如下领域得到了广泛应用:n企业信息系统n银行和金融系统n通信n运输n国防/航空n零售n医疗电子n科学研究n分布式Web服务nUM
13、L并不局限于软件建模。它还可以用于其它非软件系统的建模,如法律系统的工作流,医疗保健系统的架构和硬件系统的设计等。nUML可以用于软件开发过程中从需求规格描述、系统设计方案确立、系统实现,一直到系统完成后测试的不同阶段。在需求分析阶段,可以使用UML中的用例来获取用户需求。通过用例建模,描述与系统关联的参与者及其对系统的功能需求。使用UML类图描述类与类之间的关系,找出问题域中的如类、对象等主要概念和运行机制。为实现用例,类之间要进行协作,这可以用UML动态模型进行描述。在系统分析阶段,要对把现实世界要处理的问题抽象出问题域中的对象,使用UML建模。在系统设计阶段,要考虑定义软件系统中技术细节
14、的类(如数据库、通信、处理用户接口和并行性等问题的类),为系统实现阶段提供更详细的规格说明。n系统实现阶段的任务是使用面向对象编程语言将来自系统设计阶段的类转换成实际的程序代码。在使用UML建立系统分析和系统设计模型时,要尽量避免考虑把模型转换成某种特定的编程语言。在系统分析及系统设计阶段,模型只是理解和分析系统结构的工具,过早考虑采用某种特定编程语言不利于建立简单正确的模型。nUML模型还可以作为测试阶段的依据。软件测试的步骤有单元测试、集成测试、确认测试及系统测试。不同的测试阶段采用不同的UML图作为测试依据:单元测试采用类图和类规格说明;集成测试采用部件图和合作图;确认测试验证系统测试的
15、结果是否满足在系统分析阶段确定的需求;系统测试由用例图来验证系统的行为。n总而言之,统一建模语言UML适用于采用面向对象技术的任何类型的系统,并且适用于系统开发的各个不同阶段,从需求规格描述一直到系统测试及维护。7.2 UML的概念模型的概念模型n为理解UML,需要建立UML的概念模型,这要求学习三个要素:UML的基本构造块、决定这些构造块之间联系的规则和一些贯穿UML全部的公共机制。一旦掌握了这些概念,就能够阅读并建立基本的UML模型。获得应用UML更多的经验后,就能建立这些概念模型,使用UML的更高级的功能。7.2.1 UML的构造块的构造块nUML包括三种构造块:事物、关系和图。n事物是
16、模型中最主要元素的抽象;关系将这些事物结合起来;图将相关事物集合进行分组。n1.UML中的事物nUML中有四种事物:结构事物、行为事物、分组事物和注释事物。n这些事物是UML中的基本的面向对象构造块。用它们能够建立形式完美的模型。(1)结构事物(Structural Things)n结构事物是UML模型中的名词部分,它们大部分为模型中的静态部分,描述概念或物理元素。总共有七种结构事物。n1)类(class)类是一组拥有相同的属性、操作、关系和语义的对象的描述。一个类实现一个或多个接口。在图形方面,类使用矩形表示,通常包含类的名字、属性和操作。如图7-1所示。图图7-1 7-1 类类 n2)接口
17、(interface)接口是描述一个类或组件的服务的操作的集合。接口描述元素的外部可见行为。一个接口可以表现一个类或组件的全部行为或部分行为。接口定义一系列操作的规格说明,而不是操作实现。接口很少单独存在,通常是依附于实现此接口的类或组件。在图形表示上,接口被画成带有名称的圆圈,如图7-2所示。图图7-2 7-2 接口接口 n3)协作(collaboration)协作定义了一个交互,它是一组为提供某种协作行为而一起工作的多种角色和其它元素共同组成的一个群体,而这些协作行为大于所有元素各自行为的总和。协作有结构方面和行为方面两种方式。一个类可能参与几个不同的协作。这些协作表述了组成系统模式的实现
18、。图形表示上,协作被画成通常包含名字的虚线椭圆,如图7-3所示。图图7-3 7-3 协作协作 n4)用例(use case)用例是一系列系统执行的行为的描述,这些行为会产生对对某一特定角色可观测结果的值。用例用于构建模型中的结构事物,用例是通过协作来实现的。在图形表示上,用例被画成实线椭圆,通常椭圆内仅包含用例名称,如图7-4所示。图图7-4 7-4 用例用例n5)主动类(active class)主动类是一种类,这种类的对象拥有一个或多个能够触发控制行为的进程或线程。主动类的对象表现的元素的行为与其它元素是并发的,除此以外,主动类和类是相同的。在图形表示上,主动类的画法与类相似,通常包含名称
19、、属性和操作,只是边框使用粗线条,如图7-5所示。图图7-5 7-5 主动类主动类n6)组件(component)组件是系统中物理的、可替换的部件,它提供一系列接口的实现。在系统中,可能会遇到不同种类的部署组件,如COM+组件或Java Beans,还有开发过程的制品如源代码文件的组件。图形表示上,组件被画成带有小方框的矩形,通常仅包含组件的名称,如图7-6所示。图图7-6 7-6 组件组件n7)节点(node)节点是一个在运行时存在的物理元素,它代表一个可计算的资源,通常拥有存储能力和处理能力。一系列组件可以存在于一个节点上并且也可以从一个节点迁移到另一个节点上。图形表示上,一个节点被画成一
20、个立方体,通常包含它的名称,如图7-7所示。图图7-7 7-7 节点节点n类、接口、协作、用例、主动类、组件和节点这七个元素是在UML模型中包含的最基本的机构化事物。还有这七种基本元素的变体,如参与者、信号、实用工具(多种类)、进程和线程(两种主动类)、应用程序、文档、文件、库、页面和表(多种组件)。(2)行为事物(Behavioral Things)n行为事物是UML模型中的动态部分。它们是模型的动词,描述了跨越时间和空间的行为。总共有两种主要的行为事物。n1)交互(interaction)交互是由一组对象之间在特定的环境下,为实现特定的目标而进行的一系列消息交换而组成的行为。一组对象或单个
21、操作的行为可以由一个交互来描述。交互包括几个其它的元素:消息,动作序列(由消息触发的行为)和链接(对象之间的连接)。在图形表示上,消息被画成带有箭头的直线,通常包含操作的名称,如7-8所示。图图7-8 7-8 消息消息n2)状态机(state machine)状态机描述了一个对象或交互在生命周期内响应事件所经历的状态序列。单个类或一组类之间的协作的行为可以由状态机详细说明。状态机包括其它的几个元素:状态、转换(状态之间的迁移)、事件(触发转换的事物)和活动(对迁移的响应)。在图形表示上,状态被画成一个圆角矩形,通常包含它的名称和子状态,如图7-9所示。图图7-9 7-9 状态状态n交互和状态机
22、这两个元素是UML模型中包含的基本行为事物。语义上,这些元素通常与各种结构化事物有联系,这些结构化事物主要有类、协作和对象。(3)分组事物(Grouping Things)n分组事物是UML模型的有机组成部分。可以把这些分组事物看作是一个一个的“盒子”,模型被分解后,就放在这些“盒子”中。大体上,只有一种主要的分组事物,称为包。n包(package)是一种将元素进行分组的通用机制。结构事物、行为事物,甚至其它的分组事物都可以放置在一个包内。不同于组件(在运行时存在),包是纯粹的概念,只存在于开发阶段。图形表示上,包被画成左上角带有一个小方块的大矩形,通常包含包的名称,有时也含有包的内容,如图7
23、-10所示。n包是建立模型的基本分组事物,包也有变体,如框架、模型和子系统。图图7-10 7-10 包包n注释事物(Annotational Things)n注释事物是UML模型的解释部分,它们用来描述、说明和标注模型中的元素。有一种主要的注释事物,称为注解。注解(note)只是一种简单的符号,用于附加在一个元素或一组元素之上,作为约束或解释。在图形表示上,注解被画成右上角是折角的矩形,通常有文字或图形解释,如图7-11所示。图图7-11 7-11 注解注解n2.UML中的关系n在UML中有四种关系:依赖、关联、泛化和实现。这些关系是UML中基本的关联构造块,可以用它们创建完美的模型。(1)依
24、赖(Dependency)n依赖描述两个事物之间的语义关系,它表示一个事物(独立事物,被依赖事物)的变化会影响另一个事物(依赖事物)的语义。在图形表示上,依赖关系被画成带有箭头的虚线,箭头指向被依赖的事物,如图7-12所示。图图7-12 7-12 依赖依赖 (2)关联(Association)n关联是描述对象之间的一系列连接的结构化关系。在图形表示上,关联关系被画成一条实线,通常还包含角色名称和重数等,如图7-13所示。图图7-13 7-13 关联关联(3)泛化(Generalization)n泛化是一般事物(父类或超类)与该事物的特殊类(子类)之间的关系。子类享有父类的结构和行为。在图形表示
25、上,泛化关系被画成带有空心箭头的实线,箭头指向父类,如图 7-14所示。图图7-14 7-14 泛化泛化n实现(Realization)n实现关系也是UML元素之间的一种语义关系,它描述了一组操作的规约和一组对操作的具体实现之间的语义关系。在系统开发中通常在两个地方需要使用实现关系,一种是用在接口和实现接口的类或构件之间,另一种是用在用例和实现用例的协作之间。在图形表示上,实现关系被画成一条带有空心箭头的虚线,如图7-15所示。图图7-15 7-15 实现实现7.2.2 UML的规则的规则n象任何一种语言一样,UML也有一套自己的规则。UML是一种由符号和一套指示如何使用这些符号的规则组成的建
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 第7章 统一建模语言 统一 建模 语言
限制150内