支持UML的工具课件

上传人:鲁** 文档编号:569468824 上传时间:2024-07-29 格式:PPT 页数:88 大小:2.47MB
返回 下载 相关 举报
支持UML的工具课件_第1页
第1页 / 共88页
支持UML的工具课件_第2页
第2页 / 共88页
支持UML的工具课件_第3页
第3页 / 共88页
支持UML的工具课件_第4页
第4页 / 共88页
支持UML的工具课件_第5页
第5页 / 共88页
点击查看更多>>
资源描述

《支持UML的工具课件》由会员分享,可在线阅读,更多相关《支持UML的工具课件(88页珍藏版)》请在金锄头文库上搜索。

1、IS ArchitectureIS Architecture上节课重点上节课重点v面向对象的软件工程方法,它包括:面向对象的软件工程方法,它包括:v 面向对象的分析(面向对象的分析(OOA OOA Object Oriented Object Oriented AnalysisAnalysis)v 面向对象的设计(面向对象的设计(OOD OOD Object Oriented DesignObject Oriented Design)v 面向对象的编程(面向对象的编程(OOI OOI Object Oriented Object Oriented ImplementationImplement

2、ation)v 面向对象的测试(面向对象的测试(OOT OOT Object Oriented TestingObject Oriented Testing)v 面向对象的维护(面向对象的维护(OOSM OOSM Object Oriented Software Object Oriented Software MaintenanceMaintenance) 1IS ArchitectureIS Architecture上节课重点上节课重点v面向对象方法的优点:面向对象方法的优点:v(1 1)按照人类的自然思维方式,面对客观世界)按照人类的自然思维方式,面对客观世界建立软件系统模型,有利于对问

3、题领域和系统责建立软件系统模型,有利于对问题领域和系统责任的理解,有利于人员交流。任的理解,有利于人员交流。v(2 2)对需求变化的适应性。)对需求变化的适应性。 v(3 3)支持软件复用。)支持软件复用。 v(4 4)可维护性好。)可维护性好。 2IS ArchitectureIS Architecture上节课重点上节课重点v面向对象的分析的基本过程如下:面向对象的分析的基本过程如下:v(1 1)问题领域分析)问题领域分析v(2 2)发现和定义对象与类)发现和定义对象与类v(3 3)识别对象的外部联系)识别对象的外部联系v(4 4)建立系统的静态结构模型)建立系统的静态结构模型v(5 5)

4、建立系统的动态行为模型)建立系统的动态行为模型3IS ArchitectureIS Architecture上节课重点上节课重点v面向对象的设计面向对象的设计 基本过程如下:基本过程如下:v(1 1)设计对象与类)设计对象与类v(2 2)设计系统结构)设计系统结构v(3 3)设计问题领域子系统)设计问题领域子系统 v(4 4)设计人机交互子系统)设计人机交互子系统v(5 5)设计数据管理子系统)设计数据管理子系统v(6 6)设计任务管理子系统)设计任务管理子系统v(7 7)设计优化,提高系统的性能)设计优化,提高系统的性能 4IS ArchitectureIS Architecture本章内容

5、本章内容v1.1.什么是什么是UMLUMLv2.UML2.UML是一种语言是一种语言v3.UML3.UML的主要特点的主要特点v4.4.UMLUML的构成的构成v5.UML5.UML模型的体系结构模型的体系结构v6.UML6.UML语言的体系结构语言的体系结构v7.UML7.UML与面向对象建模简介与面向对象建模简介5IS ArchitectureIS Architecture基本要求基本要求v对面向对象的基本概念和技术有概括的本质的认对面向对象的基本概念和技术有概括的本质的认识识v了解面向对象的分析方法了解面向对象的分析方法v了解面向对象的设计过程了解面向对象的设计过程v了解学习了解学习UM

6、LUML的目的、的目的、UMLUML的历史、特点与构成的历史、特点与构成, ,v理解理解UMLUML的应用领域、支持的应用领域、支持UMLUML的工具。的工具。v了解基于了解基于UMLUML的分析、设计过程。的分析、设计过程。6IS ArchitectureIS Architecturebackgroundv软件工程领域在软件工程领域在19951995年至年至19971997年取得了前所未有年取得了前所未有的进展的进展, ,其成果超过软件工程领域其成果超过软件工程领域19951995年之前年之前1515年的成就总和。年的成就总和。v其中最重要的、具有划时代重大意义的成果之一其中最重要的、具有划

7、时代重大意义的成果之一就是统一建模语言就是统一建模语言 UML ( Unified Modeling UML ( Unified Modeling Language)Language)的出现。在世界范围内的出现。在世界范围内, ,至少在近至少在近1010年年内,内,UMLUML将是面向对象技术领域内占主导地位的将是面向对象技术领域内占主导地位的标准建模语言。标准建模语言。 7IS ArchitectureIS Architecture1.什么是什么是UML?v统一建模语言统一建模语言(Unified Modeling LanguageUnified Modeling Language) vUM

8、LUML是一种对软件密集是一种对软件密集 (software-intensivesoftware-intensive)型)型系统的制品进行可视化(系统的制品进行可视化(VisualizingVisualizing) 、详述、详述(SpecifyingSpecifying) 、构造(、构造(ConstructingConstructing) 、文、文档化(档化(DocumentingDocumenting)的语言。的语言。vUMLUML是一种绘制软件系统蓝图的是一种绘制软件系统蓝图的可视化的可视化的标准标准建建模模语言语言。vUMLUML有助于表达和设计软件系统,特别是采用面有助于表达和设计软件

9、系统,特别是采用面向对象方法构造的软件系统。向对象方法构造的软件系统。支持面向对象系统支持面向对象系统的分析、设计、实现和交付等环节。的分析、设计、实现和交付等环节。8IS ArchitectureIS Architecture1.1UML的产生背景的产生背景v2020世纪世纪7070年代出现了面向对象的程序设计语言。年代出现了面向对象的程序设计语言。v2020世纪世纪8080年代,出现了面向对象的建模语言。年代,出现了面向对象的建模语言。v在在19891989年到年到19941994年年期间期间, ,面向对象的方法面向对象的方法从不到从不到十种增加到了五十多种十种增加到了五十多种 ;一些方法

10、脱颖而出,一些方法脱颖而出,包括包括BoochBooch方法方法、 OMTOMT和和OOSEOOSE等方法;等方法;v其他的方法还有其他的方法还有FusionFusion方法、方法、ShlaerShlaer-Mellor -Mellor 方方法和法和CoadCoad-Yourdon-Yourdon方法方法v经过经过BoochBooch、RumbaughRumbaugh和和JacobsonJacobson三人的共同努三人的共同努力力, ,于于19961996年发布了年发布了UML(UnifiedUML(Unified Modeling Modeling Language)Language)。9I

11、S ArchitectureIS Architecture1.2UML的标准化的标准化v19971997年年1111月月1414日,日,UML1.1UML1.1版本被版本被OMGOMG(对象管理(对象管理组织)采纳为标准,并陆续修订颁布了组织)采纳为标准,并陆续修订颁布了1.31.3、1.41.4和和1.51.5等版本。等版本。v20002000年年-2003-2003年,年,UML2.0UML2.0版本问世。版本问世。v20052005年,年,UML2.0UML2.0标准版本被标准版本被OMGOMG采纳。采纳。BoochBoochRumbaughRumbaughJacobsonJacobso

12、n10IS ArchitectureIS Architecture1.3ThreeamigosvUMLUML的三位主要奠基人,被的三位主要奠基人,被称为称为“三友三友”(three three amigosamigos),),UnifiedUnifiedG.BoochG.Booch 布奇布奇 BoochBooch方法方法J.RumbaughJ.Rumbaugh 兰博兰博 OMTOMT方法方法I.JacobsonI.Jacobson 雅格布森雅格布森 OOSEOOSE11IS ArchitectureIS Architecture1.4UML的历史的历史12IS ArchitectureIS A

13、rchitecture2.UML是一种语言是一种语言vUMLUML定义了一系列的定义了一系列的图形符号图形符号来描述软件系统。它们有来描述软件系统。它们有严严格的语义格的语义和和清晰的语法清晰的语法。图形符号及其背后的语义和语。图形符号及其背后的语义和语法组成了一个法组成了一个标准标准。v作为一种建模语言作为一种建模语言,UML,UML的定义包括的定义包括UMLUML语义和语义和UMLUML表示法两表示法两个部分个部分UMLUML语义:描述基于语义:描述基于UMLUML的精确元模型定义。元模型为的精确元模型定义。元模型为UMLUML的所有的所有元素在语法和语义上提供了简单、一致、通用的定义性说

14、明元素在语法和语义上提供了简单、一致、通用的定义性说明, ,使使开发者能在语义上取得一致开发者能在语义上取得一致, ,消除了因人而异的最佳表达方法所消除了因人而异的最佳表达方法所造成的影响。此外造成的影响。此外UMLUML还支持对元模型的扩展定义。还支持对元模型的扩展定义。UMLUML表示法:定义表示法:定义UMLUML符号的表示法符号的表示法, ,为开发者或开发工具使用这为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型文字所表达的是应用级的模型, ,在语义上它是在语义上它是UML

15、UML元模型的实例。元模型的实例。13IS ArchitectureIS Architecture2.1UML是一种可视化的语言是一种可视化的语言vUMLUML的每一个符号都具有明确的语义。的每一个符号都具有明确的语义。v使用使用UMLUML语言可以构建清晰的模型。语言可以构建清晰的模型。UMLUML模型使得开发人员更好的理解系统的细节,而这是模型使得开发人员更好的理解系统的细节,而这是文字和代码做不到的。文字和代码做不到的。UMLUML模型有利于开发人员之间的交流。模型有利于开发人员之间的交流。14IS ArchitectureIS ArchitectureUML的定义的定义vUMLUML的

16、定义包括的定义包括UMLUML语义和语义和UMLUML表示法两个部分。表示法两个部分。(1) UML(1) UML语义语义描述基于描述基于UML的精确元模型的精确元模型(meta-model)定义。元模型为定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的的所有元素在语法和语义上提供了简单、一致、通用的定义性说明定义性说明,使开发者能在语义上取得一致使开发者能在语义上取得一致,消除了因人而异消除了因人而异的表达方法所造成的影响。此外的表达方法所造成的影响。此外UML还支持对元模型的扩展还支持对元模型的扩展定义。定义。UML支持各种类型的语义。如布尔、表达式、列表、阶、名支持各

17、种类型的语义。如布尔、表达式、列表、阶、名字、坐标、字符串和时间等,还允许用户自定义类型。字、坐标、字符串和时间等,还允许用户自定义类型。(2) UML(2) UML表示法表示法定义定义UML符号的表示法符号的表示法,为开发者或开发工具使用这些图形符为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型这些图形符号和文字所表达的是应用级的模型,在语义上它是在语义上它是UML元模型的实例。元模型的实例。15IS ArchitectureIS Architecture2.2UML是一种可用于详细描述的语言是一种可

18、用于详细描述的语言v详细描述意味着所建立的模型是精确的、无歧义详细描述意味着所建立的模型是精确的、无歧义的和完整的。的和完整的。vUMLUML贯穿软件开发的生命期,贯穿软件开发的生命期,使得软件开发的所使得软件开发的所有相关人员都能用它来对软件系统的各个侧面进有相关人员都能用它来对软件系统的各个侧面进行描述。行描述。vUMLUML对所有重要的分析、设计和实现决策进行详对所有重要的分析、设计和实现决策进行详细描述。细描述。16IS ArchitectureIS Architecture2.3UML是一种用于构造的语言是一种用于构造的语言vUMLUML不是可视化的编程语言,但是用不是可视化的编程语

19、言,但是用UMLUML描述的模描述的模型可以与各种编程语言甚至数据库里的对象进行型可以与各种编程语言甚至数据库里的对象进行关联转换。关联转换。v正向工程(正向工程(forward engineeringforward engineering):):直接从系统模型生成初始软件或数据库代码。直接从系统模型生成初始软件或数据库代码。v逆向工程(逆向工程(reverse engineeringreverse engineering):):直接从软件或数据库代码生成初始的系统模型。直接从软件或数据库代码生成初始的系统模型。v双向工程:双向工程:把正向工程和逆向工程结合起来把正向工程和逆向工程结合起来17

20、IS ArchitectureIS Architecture2.4UML是一种文档化的语言是一种文档化的语言vUMLUML适于建立系统体系结构以及所有细节的文档。适于建立系统体系结构以及所有细节的文档。vUMLUML还提供用于表达需求和用于测试的语言。还提供用于表达需求和用于测试的语言。vUMLUML也提供对项目计划活动和发布、管理活动进也提供对项目计划活动和发布、管理活动进行建模的语言行建模的语言18IS ArchitectureIS Architecture3.UML的主要特点的主要特点v统一的标准统一的标准UMLUML是被是被OMGOMG接受为标准,越来越多的开发人员使用接受为标准,越来

21、越多的开发人员使用UMLUML进行软件开发,越来越多的厂商支持进行软件开发,越来越多的厂商支持UMLUML。v面向对象面向对象是支持是支持OOOO软件开发的建模语言。软件开发的建模语言。v概念明确概念明确建模表示法简洁,图形结构清晰,可视化、表示能力建模表示法简洁,图形结构清晰,可视化、表示能力强大,容易掌握和使用。强大,容易掌握和使用。v独立于过程独立于过程UMLUML不依赖于特定的软件开发过程。不依赖于特定的软件开发过程。 19IS ArchitectureIS Architecture4.UML的构成的构成v为了理解为了理解UMLUML, 需要形成该语言的概念模型,这需要形成该语言的概念

22、模型,这要求学习语言的三个要素。要求学习语言的三个要素。UMLUML的基本构造块(的基本构造块(Building BlocksBuilding Blocks),也叫建模元),也叫建模元素。素。UMLUML的构造块包括三种的构造块包括三种事物事物(Things)关系关系(Relationships)图图(Diagrams)支配构造块如何放在一起的规则(支配构造块如何放在一起的规则(the rules the rules )UMLUML的公共机制(的公共机制(common mechanismscommon mechanisms)v掌握了这些思想,就能读懂掌握了这些思想,就能读懂UMLUML,并能构

23、建一些,并能构建一些基本的基本的UMLUML模型。模型。vUMLUML的上述三个要素的关系如下列图示:的上述三个要素的关系如下列图示:20IS ArchitectureIS Architecture4.1UML的构成图的构成图UML构成构成规则规则公共机制公共机制命名命名范围范围执行执行完整性完整性可见性可见性扩展机扩展机制制通用划通用划分分详述详述修饰修饰构造型构造型约束约束标记值标记值基本构造块基本构造块21IS ArchitectureIS Architecture4.2UML基本构造块基本构造块UML基本构造块基本构造块事物事物关系关系图图结构结构事物事物行为行为事物事物分组分组事物事

24、物辅助辅助事物事物关联关联关系关系依赖依赖关系关系泛化泛化关系关系实现实现关系关系静态静态图图动态动态图图用用例例图图类类图图对对象象图图组组件件图图配配置置图图时时序序图图协协作作图图状状态态图图活活动动图图用用例例类类接接口口协协作作主主动动类类组组件件节节点点状状态态机机交交互互机机包包注注释释22IS ArchitectureIS Architecture4.3事物(事物(Thing)v事物是对模型中最具有代表性的成分的抽象。事物是对模型中最具有代表性的成分的抽象。结构事物:结构事物:UMLUML中的名词,它是模型基本物理元素。中的名词,它是模型基本物理元素。类、接口、协作(它是一个交

25、互,它是由一组共同工作以提供某协类、接口、协作(它是一个交互,它是由一组共同工作以提供某协作行为的角色和其它元素构成的一个群体。)、用例、主动类(至作行为的角色和其它元素构成的一个群体。)、用例、主动类(至少拥有一个进程或者线程,其元素的行为可以和其它元素的行为并少拥有一个进程或者线程,其元素的行为可以和其它元素的行为并发)、构件(如发)、构件(如COM+和和JavaBean)、节点。)、节点。行为事物:行为事物:UMLUML中的动词,它是模型中的动态部分,是一种跨越中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为。时间、空间的行为。交互、状态机交互、状态机(描述了一个对象或者一个交

26、互在生命期内响应事件(描述了一个对象或者一个交互在生命期内响应事件所经历的状态序列)。所经历的状态序列)。分组事物:分组事物:UMLUML中的容器,用来组织模型,使模型更加的结构化。中的容器,用来组织模型,使模型更加的结构化。例如:包。例如:包。辅助事物:辅助事物:UMLUML中的解释部分,和代码中的注释语句一样,是用中的解释部分,和代码中的注释语句一样,是用来描述模型的。来描述模型的。 例如:注释例如:注释。23IS ArchitectureIS Architecture结构事物结构事物(Structuralthings)v结构事物是模型中的静态部分,用以呈现概念或实体的表现元素,是结构事物

27、是模型中的静态部分,用以呈现概念或实体的表现元素,是软件建模中最常见的元素,共有以下七种:软件建模中最常见的元素,共有以下七种: 类类(class): (class): 用矩形表示,写有类的名称用矩形表示,写有类的名称,属性和操作。属性和操作。接口接口(interface)(interface)用带有名称的圆表示。用带有名称的圆表示。协作协作(collaboration) (collaboration) 用含有名称的虚线椭圆表示。用含有名称的虚线椭圆表示。用例用例(Use case) (Use case) 用含有名称的实线椭圆表示。用含有名称的实线椭圆表示。主动类主动类(Active clas

28、s):(Active class):与类相似与类相似,不同点就是对象至少拥有一个进程或线程不同点就是对象至少拥有一个进程或线程,因此能够启动控制活动因此能够启动控制活动.外框是粗线外框是粗线,包括名称包括名称,属性和操作。属性和操作。构件构件(Component): (Component): 是类是类,接口和协作的物理包接口和协作的物理包.用带有小方框的矩形表示用带有小方框的矩形表示,只写构件的名称。只写构件的名称。结点结点(node): (node): 与类相似与类相似,通常用只包括名称的立方体表示通常用只包括名称的立方体表示.表示可计算的一种资源。表示可计算的一种资源。24IS Archi

29、tectureIS Architecture结构事物部分图符结构事物部分图符25IS ArchitectureIS Architecture结构事物部分图符结构事物部分图符26IS ArchitectureIS Architecture行为事物行为事物(Behavioralthings)v行为事物描述跨越时间和空间的行为行为事物描述跨越时间和空间的行为. . 行为事物行为事物指的是指的是UMLUML模型中的动态部分,代表语句里的模型中的动态部分,代表语句里的“动词动词”,表示模型里随着时空不断变化的部分,表示模型里随着时空不断变化的部分,包含两类:包含两类:交互交互(interaction):

30、 (interaction): 包括消息包括消息,动作序列和链动作序列和链.用一条有向直线表示。用一条有向直线表示。状态机状态机(state machine): (state machine): 包括状态包括状态,转换转换,事件和活动事件和活动.用圆角矩形表示用圆角矩形表示.27IS ArchitectureIS Architecture分组事物分组事物(Groupingthings)v分组事物可以看成是一个分组事物可以看成是一个“盒子盒子”,模型可以在,模型可以在其中被分解。目前只有一种分组事物,即包。结其中被分解。目前只有一种分组事物,即包。结构事物、动作事物甚至分组事物都有可能放在一构事

31、物、动作事物甚至分组事物都有可能放在一个包中。个包中。包纯粹是概念上的,只存在于开发阶段,而组件在运包纯粹是概念上的,只存在于开发阶段,而组件在运行时存在。行时存在。包包(package): (package): 是把元素组成组的机制是把元素组成组的机制. .结构事物结构事物, ,行为行为事物甚至其它事物组成一个包事物甚至其它事物组成一个包. .由左上角有一个小矩形由左上角有一个小矩形的大矩形来表示的大矩形来表示. . 28IS ArchitectureIS Architecture注释事物注释事物(Annotationalthings)v注释事物是注释事物是UMLUML模型的解释部分。模型的

32、解释部分。v注解注解(note):(note):依附于一个元素或一组元素之上,依附于一个元素或一组元素之上,对它进行约束或解释的简单的符号。用右上角是对它进行约束或解释的简单的符号。用右上角是折角的矩形来表示。折角的矩形来表示。29IS ArchitectureIS Architecture4.4关系(关系(Relationships)v关系是将事物联系在一起的方式,关系是将事物联系在一起的方式,UMLUML中定义了中定义了四种关系:四种关系:30IS ArchitectureIS Architecture关联关联(Association)v关联关联是是类之间类之间的结构关系,它描述了一组链,

33、链的结构关系,它描述了一组链,链是对象(类的实例)之间的连接。是对象(类的实例)之间的连接。聚合与合成是特殊类型的关联,描述了整体和部分间聚合与合成是特殊类型的关联,描述了整体和部分间的结构关系。的结构关系。在图形上,把关联画成一条实线,它可能有方向,偶在图形上,把关联画成一条实线,它可能有方向,偶尔在其上还带有一个标记,而且它还经常含有诸如多尔在其上还带有一个标记,而且它还经常含有诸如多重性和端名这样的修饰,如图所示。重性和端名这样的修饰,如图所示。31IS ArchitectureIS Architecture依赖(依赖(Dependencies)v依赖是依赖是两个模型元素间两个模型元素间

34、的语义关系,其中一个元的语义关系,其中一个元素(独立元素)发生变化会影响另一个元素(依素(独立元素)发生变化会影响另一个元素(依赖元素)的语义。赖元素)的语义。v在图形上,把依赖画成一条可能有方向的虚线,在图形上,把依赖画成一条可能有方向的虚线,偶尔在其上还带有一个标记,如图所示:偶尔在其上还带有一个标记,如图所示:32IS ArchitectureIS Architecture泛化泛化(Generalization)v泛化是一种泛化是一种特殊特殊/ /一般一般关系,在其中特殊元素关系,在其中特殊元素(子元素)基于一般元素(父元素)而建立。用(子元素)基于一般元素(父元素)而建立。用这种方法,

35、子元素共享了父元素的结构和行为这种方法,子元素共享了父元素的结构和行为v在图形上,把泛化关系画成一条带有空心箭头的在图形上,把泛化关系画成一条带有空心箭头的实线,该实线指向父元素,如图示:实线,该实线指向父元素,如图示: 33IS ArchitectureIS Architecture实现实现(Realization)v实现(实现(realizationrealization)是)是类目之间类目之间的语义关系,的语义关系,其中的一个类目指定了由另一个类目保证执行的其中的一个类目指定了由另一个类目保证执行的合约。在两种地方会遇到实现关系:合约。在两种地方会遇到实现关系:一种是在接口和实现它们的类

36、或构件之间;一种是在接口和实现它们的类或构件之间;另一种是在用况和实现它们的协作之间。另一种是在用况和实现它们的协作之间。v在图形上,把实现关系画成一条带有空心箭头的在图形上,把实现关系画成一条带有空心箭头的虚线,它是虚线,它是泛化泛化和和依赖依赖关系两种图形的关系两种图形的结合结合,如,如图所示。图所示。 34IS ArchitectureIS Architecture4.5图图(Diagram)v图,又叫模型图,是事物集合的分类,图,又叫模型图,是事物集合的分类,UMLUML中包中包含多种图:含多种图:用例图用例图( (UsecaseUsecase Diagram) Diagram):用例

37、图从用户的角度出发描述系统的功能、需求,展示系统用例图从用户的角度出发描述系统的功能、需求,展示系统外部的各类角色与系统内部的各种用例之间的关系外部的各类角色与系统内部的各种用例之间的关系类图类图(Class Diagram)(Class Diagram):类图描述系统所包含的类、类的内部结构及类之间的关系类图描述系统所包含的类、类的内部结构及类之间的关系对象图对象图(Object Diagram)(Object Diagram):对象图是类图的一个具体实例对象图是类图的一个具体实例包图(包图(Package DiagramPackage Diagram):):包图表明包及其之间的依赖类图包图

38、表明包及其之间的依赖类图组件图组件图( (CompomentCompoment Diagram Diagram,也称构件图,也称构件图) ):组件图描述代码部件的物理结构以及各部件之间的依赖关系组件图描述代码部件的物理结构以及各部件之间的依赖关系35IS ArchitectureIS Architecture4.5图图(Diagram)部署图部署图(Deployment Diagram)(Deployment Diagram):部署图定义系统中软硬件的物理体系结构部署图定义系统中软硬件的物理体系结构顺序图顺序图(Sequence Diagram)(Sequence Diagram):顺序图表示

39、对象之间动态合作的关系顺序图表示对象之间动态合作的关系协作图协作图(Collaboration Diagram)(Collaboration Diagram):合作图描述对象之间的协作关系合作图描述对象之间的协作关系状态图状态图( (StatechartStatechart Diagram) Diagram):状态图描述一类对象的所有可能的状态以及事件发生时状态状态图描述一类对象的所有可能的状态以及事件发生时状态的转移条件的转移条件活动图活动图(Activity Diagram)(Activity Diagram):活动图描述系统中各种活动的执行顺序。活动图描述系统中各种活动的执行顺序。36I

40、S ArchitectureIS Architecture用例图、类图、包图、构件和部署图用例图、类图、包图、构件和部署图37IS ArchitectureIS Architecture时序图、状态图、协作图、活动图时序图、状态图、协作图、活动图38IS ArchitectureIS Architecture4.5图图(Diagram)v上述十种模型图可归纳为五种类型上述十种模型图可归纳为五种类型静态图:静态图:类图、对象图、包图类图、对象图、包图行为图:行为图:状态图、活动图状态图、活动图用例图:用例图:用例图用例图 交互图:交互图:顺序图、协作图顺序图、协作图 实现图:实现图:组件图、部署

41、图组件图、部署图 39IS ArchitectureIS Architecture40IS ArchitectureIS Architecture上上节课重点重点结构事物结构事物类类(class):接口接口(interface)协作协作(collaboration)用例用例(Usecase)主动类主动类(Activeclass):构件构件(Component):结点结点(node):行为事物行为事物交互交互(interaction):状态机状态机(statemachine):分组事物分组事物包包(package):41IS ArchitectureIS Architecture上上节课重点重点

42、v关系关系v关联关联( AssociationAssociation )v依赖(依赖(DependenciesDependencies)v泛化泛化(GeneralizationGeneralization)v实现实现( (RealizationRealization) )42IS ArchitectureIS Architecture4.6规则(规则(RulesoftheUML)vUMLUML的规则描述了一个结构良好(的规则描述了一个结构良好(well-formedwell-formed)的模型看起来应该像什么。而不至于出现不太规的模型看起来应该像什么。而不至于出现不太规范的使用。范的使用。v

43、UMLUML的有自己的语法和语义上的规则,用于:的有自己的语法和语义上的规则,用于:名字(名字(NamesNames):为事物、关系、图起的名字):为事物、关系、图起的名字范围(范围(ScopeScope):使名字具有特定含义的语境):使名字具有特定含义的语境可见性(可见性(VisibilityVisibility):如何让其他成分看到和使用):如何让其他成分看到和使用这些名字这些名字完整性(完整性(IntegrityIntegrity):事物如何正确、一致的相互联):事物如何正确、一致的相互联系系执行(执行(ExecutionExecution):运行或者模拟动态模型意味着什):运行或者模拟

44、动态模型意味着什么么43IS ArchitectureIS Architecture4.7公共机制公共机制vUMLUML具有四种贯穿整个语言且一致应用的公共机具有四种贯穿整个语言且一致应用的公共机制,使得制,使得UMLUML较为简单,他们分别是:较为简单,他们分别是:详述(详述(SpecificationsSpecifications)修饰(修饰(AdornmentsAdornments)通用划分(通用划分(Common divisionsCommon divisions)扩展机制(扩展机制(Extensibility mechanismsExtensibility mechanisms)44

45、IS ArchitectureIS Architecture详述(详述(Specifications)v在在UMLUML中,每个模型元素的图形表示法之后都存中,每个模型元素的图形表示法之后都存在一个在一个详述详述( (规范说明规范说明) ),它以文字的形式描述基,它以文字的形式描述基本模型元素的语法和语义。本模型元素的语法和语义。例如,在类的图符背后有一个详述,它提供了对该类例如,在类的图符背后有一个详述,它提供了对该类所拥有的属性、操作(包括完整的特征标记)和行为所拥有的属性、操作(包括完整的特征标记)和行为的全面描述;在视觉上,类的图符可能仅展示了这个的全面描述;在视觉上,类的图符可能仅展

46、示了这个详述的一小部分。详述的一小部分。此外,可能存在着该类的另一个视图,其中提供了一此外,可能存在着该类的另一个视图,其中提供了一个完全不同的部件集合,但是它仍然与该类的基本详个完全不同的部件集合,但是它仍然与该类的基本详述相一致。述相一致。vUMLUML的图形表示法用来对系统进行可视化;的图形表示法用来对系统进行可视化;UMLUML的的详述用来说明系统的细节。详述用来说明系统的细节。45IS ArchitectureIS Architecture修饰(修饰(Adornments)v对类的详述可以包含其他细节,例如,它是否是对类的详述可以包含其他细节,例如,它是否是抽象类,或它的属性和操作是

47、否可见。可以把很抽象类,或它的属性和操作是否可见。可以把很多这样的细节表示为图形或文字修饰,放到类的多这样的细节表示为图形或文字修饰,放到类的基本矩形符号上。基本矩形符号上。例如,下图是一个带有修饰的类,图中表明这个类是例如,下图是一个带有修饰的类,图中表明这个类是一个抽象类,有两个公共操作、一个受保护操作和一一个抽象类,有两个公共操作、一个受保护操作和一个私有操作。个私有操作。 UMLUML表示法中的每一个元素都有表示法中的每一个元素都有 一个基本符号,可以把各种修饰一个基本符号,可以把各种修饰 细节加到这个符号上。细节加到这个符号上。 46IS ArchitectureIS Archite

48、cture修饰举例修饰举例v在在UMLUML众多的修饰符中,注释是一种最重要的并众多的修饰符中,注释是一种最重要的并且能单独存在的修饰符,它是附加在模型元素或且能单独存在的修饰符,它是附加在模型元素或元素集上用来表示约束或注解信息的图形符号。元素集上用来表示约束或注解信息的图形符号。图中注释的作用是指出图中注释的作用是指出priority()priority()的算法细节在文档的算法细节在文档exe.docexe.doc中。中。47IS ArchitectureIS Architecture通用划分(通用划分(Commondivisions)vUMLUML提供了事物的抽象的描绘和具体的实例两种

49、提供了事物的抽象的描绘和具体的实例两种两分法表达,被称为公共划分。通常:两分法表达,被称为公共划分。通常:第一种方法是对类和对象的划分。第一种方法是对类和对象的划分。类是一种抽象,对象是这种抽象的一个具体表现。类是一种抽象,对象是这种抽象的一个具体表现。在在UML中,可以对类和对象建立模型,如图所示。在图形上,中,可以对类和对象建立模型,如图所示。在图形上,UML是这样辨别对象的:用与类同样的图形符号来表示对象,是这样辨别对象的:用与类同样的图形符号来表示对象,并且在对象名的下面画一道线。并且在对象名的下面画一道线。在这个图中,有一个名称为在这个图中,有一个名称为Customer的类,它有的类

50、,它有3个个对象,分别为对象,分别为Jan(它被明确地标记为(它被明确地标记为Customer的对象),的对象),:Customer(匿名的(匿名的Customer对象)和对象)和Elyse(它在详述(它在详述中被说明为是一种中被说明为是一种Customer对象,尽管在这里没有明确地对象,尽管在这里没有明确地表示出来)。表示出来)。48IS ArchitectureIS Architecture通用划分(通用划分(Commondivisions)第二种方法是接口和实现的分离。第二种方法是接口和实现的分离。接口声明了一个合约,而实现则表示了对该合约的具体实施,接口声明了一个合约,而实现则表示了对

51、该合约的具体实施,它负责如实地实现接口的完整语义。在它负责如实地实现接口的完整语义。在UML中,既可以对接中,既可以对接口建模又可以对它们的实现建模,如图所示。口建模又可以对它们的实现建模,如图所示。在这个图中,有一个名称为在这个图中,有一个名称为SpellingWizard.dll的构件,它实的构件,它实现了接口现了接口IUnknown和接口和接口ISpelling,并且还需要一个由其,并且还需要一个由其他构件提供的名为他构件提供的名为IDictionary的接口。的接口。49IS ArchitectureIS Architecture通用划分(通用划分(Commondivisions)第三

52、种方法是类型和角色的分离。第三种方法是类型和角色的分离。类型声明了实体的种类(如对象、属性或参数),角色描述类型声明了实体的种类(如对象、属性或参数),角色描述了实体在语境中的含义(如类、构件或协作等)。任何作为了实体在语境中的含义(如类、构件或协作等)。任何作为其他实体结构中的一部分的实体(例如属性)都具有两个特其他实体结构中的一部分的实体(例如属性)都具有两个特性:从它固有的类型派生出一些含义,从它在语境中的角色性:从它固有的类型派生出一些含义,从它在语境中的角色派生出一些含义。派生出一些含义。50IS ArchitectureIS Architecture扩展机制扩展机制vUMLUML提

53、供了一种绘制软件蓝图的标准语言,但是提供了一种绘制软件蓝图的标准语言,但是一种闭合的语言即使表达能力再丰富,也难以表一种闭合的语言即使表达能力再丰富,也难以表示出各种领域中的各种模型在不同时刻所有可能示出各种领域中的各种模型在不同时刻所有可能的细微差别。的细微差别。v由于这个原因,由于这个原因,UMLUML是目标开放的,使人们能够是目标开放的,使人们能够以受控的方式来扩展该语言。以受控的方式来扩展该语言。vUMLUML的扩展机制包括:的扩展机制包括:衍型(衍型(StereotypesStereotypes)标记值(标记值(Tagged valuesTagged values)约束(约束(Con

54、straintsConstraints)51IS ArchitectureIS Architecture扩展扩展机制机制衍型衍型( (构造型构造型 ):):对对UMLUML的词汇的扩展,用于创建的词汇的扩展,用于创建与已有的模型元素相似且针对特定问题的新种类与已有的模型元素相似且针对特定问题的新种类的模型元素。用的模型元素。用书名号括起来的名字书名号括起来的名字表示,其位表示,其位置在其他元素置在其他元素之上之上。 标记值标记值: :对对UMLUML元素的特性的扩展,用于在模型元元素的特性的扩展,用于在模型元素的规约中创建新的信息。用素的规约中创建新的信息。用花括号括起来的字花括号括起来的字符

55、串符串表示,其位置在其他元素表示,其位置在其他元素之下之下。 约束约束: :对对UMLUML元素的语义的扩展,用于增加新规则元素的语义的扩展,用于增加新规则或修改已有规则。用或修改已有规则。用花括号括起来的字符串花括号括起来的字符串表示,表示,且放在所关联的元素附近或通过依赖关系连接相且放在所关联的元素附近或通过依赖关系连接相应元素。应元素。52IS ArchitectureIS Architecture扩展机制实例扩展机制实例 衍型衍型exceptionexception使得使得OverflowOverflow成为成为一个模型元素一个模型元素EventQueueEventQueue中中版本和

56、作者是版本和作者是标记值标记值addadd上的约束上的约束orderedordered使得使得EvenrQueueEvenrQueue中的事中的事件按序排列件按序排列53IS ArchitectureIS Architecture5UML模型的体系结构模型的体系结构v可视化、详述、构造和文档化一个系统,要求从可视化、详述、构造和文档化一个系统,要求从几个角度去观察系统。从一个角度观察到的系统几个角度去观察系统。从一个角度观察到的系统称为一个视图(称为一个视图(viewview)。)。vUMLUML用视图来表示被建模系统的各个方面,它是用视图来表示被建模系统的各个方面,它是在某一个抽象层次上对系

57、统的抽象表示。在某一个抽象层次上对系统的抽象表示。系统开系统开发相关的各种人员会在不同日程、不同阶段、不发相关的各种人员会在不同日程、不同阶段、不同方式看待系统。同方式看待系统。vUMLUML用用“4+1”4+1”视图视图来描述系统的体系结构:来描述系统的体系结构:每一个视图代表完整系统描述的投影,显示系统的一每一个视图代表完整系统描述的投影,显示系统的一个特定方面。个特定方面。每一个视图又由一种或多种模型图构成。每一个视图又由一种或多种模型图构成。54IS ArchitectureIS Architecture5.1UML的的“4+1”视图视图设计设计( (逻辑逻辑) )视图视图实现视图实现

58、视图部署视图部署视图交互交互( (进程进程) )视图视图用例用例( (用户用户) )视图视图性能、稳定性、吞吐率性能、稳定性、吞吐率系统拓扑、分布、安装系统拓扑、分布、安装设计词汇、功能描述设计词汇、功能描述系统组装、配置管理系统组装、配置管理55IS ArchitectureIS Architecture5.1UML的的“4+1”视图视图56IS ArchitectureIS Architecture5.1UML的的“4+1”视图视图57IS ArchitectureIS Architecture5.1UML的的“4+1”视图视图v用例视图(用例视图(use case viewuse cas

59、e view):):从用户角度描述系统功能从用户角度描述系统功能, ,并指出各功能的操作者;并指出各功能的操作者;v设计视图(设计视图(Design ViewDesign View)或逻辑视图()或逻辑视图(Logical ViewLogical View)包含了类、接口和协作,它们形成了问题及其对问题解决方案的包含了类、接口和协作,它们形成了问题及其对问题解决方案的术语词汇;术语词汇;v进程视图进程视图(process view)(process view):该视图主要用于描述系统性能、可伸缩性和吞吐量的设计,包含该视图主要用于描述系统性能、可伸缩性和吞吐量的设计,包含了形成系统并发与同步机

60、制的线程和进程;了形成系统并发与同步机制的线程和进程;v实现视图实现视图(implementation view)(implementation view):该视图用于描述系统组装和配置管理、表达软件成分的组织结构;该视图用于描述系统组装和配置管理、表达软件成分的组织结构;v部署视图部署视图(deployment view)(deployment view):该视图用于描述物理系统的部件的分布、交付和安装,包含形成该视图用于描述物理系统的部件的分布、交付和安装,包含形成系统硬件拓扑结构的节点;系统硬件拓扑结构的节点;58IS ArchitectureIS Architecture用例视图用例视

61、图(用户模型视图用户模型视图)v由专门描述系统行为的用例组成,是从用户角度由专门描述系统行为的用例组成,是从用户角度来描述系统所应具有的功能。来描述系统所应具有的功能。v用例视图所描述的系统功能依靠外部用户或者另用例视图所描述的系统功能依靠外部用户或者另一系统来激活,为用户或者另一系统提供服务,一系统来激活,为用户或者另一系统提供服务,从而实现用户或另一系统与糸统的交互。从而实现用户或另一系统与糸统的交互。v系统实现的最终目标是用例视图中描述的功能。系统实现的最终目标是用例视图中描述的功能。v组成:组成:用例图用例图。v使用者:使用者:客户、开发人员、测试人员客户、开发人员、测试人员。59IS

62、 ArchitectureIS Architecture用例视图是核心用例视图是核心v它的内容它的内容驱动其他视图驱动其他视图的开发。系统的最终目标,的开发。系统的最终目标,即系统将提供的功能在用例视图中描述。同时该即系统将提供的功能在用例视图中描述。同时该视图还有其他一些非功能特性的描述,因此,用视图还有其他一些非功能特性的描述,因此,用例视图对所有其他的视图产生影响。例视图对所有其他的视图产生影响。v通过测试用例视图,可检验和最终校验系统。通过测试用例视图,可检验和最终校验系统。v测试来自:测试来自:客户客户( (这是您想要的吗这是您想要的吗?)?)、已完成的已完成的系统系统( (系统是按

63、照要求的方式运作的吗系统是按照要求的方式运作的吗?)?)。 60IS ArchitectureIS Architecture逻辑视图逻辑视图(结构模型结构模型视图视图)v描述组成系统的类、对象以及它们之间的关系等描述组成系统的类、对象以及它们之间的关系等静态结构,用来支持系统的功能需求,即描述系静态结构,用来支持系统的功能需求,即描述系统内部的功能是如何设计的。统内部的功能是如何设计的。v组成组成:类图、对象图。:类图、对象图。v使用者使用者:开发人员、设计人员。:开发人员、设计人员。v它关注系统的内部,既描述系统的静态结构它关注系统的内部,既描述系统的静态结构( (类、类、对象及它们之间的关

64、系对象及它们之间的关系) ),也描述系统内部的动,也描述系统内部的动态协作关系。态协作关系。61IS ArchitectureIS Architecture逻辑视图的图形模型逻辑视图的图形模型v逻辑视图也定义逻辑视图也定义永久性永久性和和并发性并发性的特性,同时还的特性,同时还定义定义类的接口类的接口和和内部结构内部结构。v对逻辑视图的描述在原则上与软件系统的实现平对逻辑视图的描述在原则上与软件系统的实现平台无关。台无关。v图形模型包括:图形模型包括:类图、对象图、状态图、顺序图、协作图及活动图等。类图、对象图、状态图、顺序图、协作图及活动图等。62IS ArchitectureIS Arch

65、itecture组件视图组件视图(行为模型视图行为模型视图)v描述形成系统的并发与同步机制的线程和进程,描述形成系统的并发与同步机制的线程和进程,关注重点是系统的性能、易伸缩性和系统的吞吐关注重点是系统的性能、易伸缩性和系统的吞吐量等非功能性需求。量等非功能性需求。v它利用并发来描述资源的高效实用、并行执行和它利用并发来描述资源的高效实用、并行执行和处理异步事件。处理异步事件。v使用者使用者:开发人员。:开发人员。v组成组成:顺序图、协作图、状态图、活动图:顺序图、协作图、状态图、活动图63IS ArchitectureIS Architecture实现视图实现视图(实现模型视图实现模型视图)

66、v用来描述系统的实现模块、它们之间的依赖关系用来描述系统的实现模块、它们之间的依赖关系以及资源分配情况。以及资源分配情况。v主要用于系统配置管理。主要用于系统配置管理。v使用者使用者:开发人员、系统集成人员。:开发人员、系统集成人员。v组成组成:动态图:动态图( (状态图、协作图、活动图状态图、协作图、活动图) )和实现和实现图图( (组件图、部署图组件图、部署图) )。 64IS ArchitectureIS Architecture部署视图部署视图(环境模型视图环境模型视图)v描述软件系统在计算机硬件系统和网络上的安装、描述软件系统在计算机硬件系统和网络上的安装、分发和分布情况。描述物理系

67、统的拓扑结构。分发和分布情况。描述物理系统的拓扑结构。如如:计算机和设备计算机和设备( (节点节点) ) 及它们之间是如何连接。及它们之间是如何连接。v使用者使用者:开发人员、系统集成人员、测试人员:开发人员、系统集成人员、测试人员v组成组成:部署图:部署图v部署视图也包括一个显示组件如何在物理结构中部署视图也包括一个显示组件如何在物理结构中部署的映射,例如一个程序或对象在哪台计算机部署的映射,例如一个程序或对象在哪台计算机上执行。上执行。 65IS ArchitectureIS Architecture6UML语言的体系结构语言的体系结构v元建模理论是从元建模理论是从8080年代后期发展起来

68、的。到目前年代后期发展起来的。到目前为止,为了不同的目的,已经定义了很多元元模为止,为了不同的目的,已经定义了很多元元模型和元模型型和元模型. .例如例如: :最早由最早由EIAEIA(电子工业协会)定义的(电子工业协会)定义的CIDFCIDF(CASE Data CASE Data Interchange FormatInterchange Format)元元模型,等。)元元模型,等。OMGOMG提出的提出的MOFMOF(Meta Object FacilityMeta Object Facility)是一个标准。)是一个标准。为了描述某一特定的模型,需要描述组成该类模型的为了描述某一特定的

69、模型,需要描述组成该类模型的建模结构集,建模结构集,MOFMOF能对建模结构进行描述。能对建模结构进行描述。MOFMOF的的4 4层元建模架构提供一组建模元素以及使用这些层元建模架构提供一组建模元素以及使用这些元素的规则。元素的规则。v四层元模型是四层元模型是OMGOMG指定的指定的UMLUML的语言体系结构。的语言体系结构。66IS ArchitectureIS Architecture6.1四层元模型体系结构四层元模型体系结构vUMLUML的模型结构具有一个四层的体系结构,每个的模型结构具有一个四层的体系结构,每个层次是根据该层中元素的抽象程度、一般性程度层次是根据该层中元素的抽象程度、一

70、般性程度划分的。划分的。v从一般到具体这四层分别为:从一般到具体这四层分别为:元元模型层(元元模型层( M3 M3层层,meta-meta model,meta-meta model)元模型层(元模型层(M2M2层:层:UMLUML)模型层(模型层(M1M1层:层:User modelUser model)运行时实例层运行时实例层 (M0M0层层 :Run-time instancesRun-time instances)67IS ArchitectureIS Architecture6.1四层元模型体系结构四层元模型体系结构元元模型元元模型 M3元模型元模型 M2模型模型 M1用户模型用户模

71、型 M0 所有元素都是所有元素都是UMLUML模型的例子。该模型的例子。该层中的每个概念都层中的每个概念都是模型层的一个实是模型层的一个实例例( (通过分类通过分类),),也是也是元模型层的一个实元模型层的一个实例。该层的模型通例。该层的模型通常称常称对象模型对象模型或或实实例模型例模型。 组成组成UMLUML的模型,的模型,该层中每个概念都是元该层中每个概念都是元模型层中概念的一个实模型层中概念的一个实例,该层的模型通常叫例,该层的模型通常叫作作类模型类模型或或类型模型类型模型。 是组成是组成UMLUML的基的基本元素,包括本元素,包括OOOO和面和面向组件的概念。该层向组件的概念。该层每个

72、概念都是元元模每个概念都是元元模型中型中“事物事物”概念的概念的实例实例。 是组成是组成UMLUML最基本最基本的元素的元素“事物事物”,代表,代表要定义的所有事物。其要定义的所有事物。其定义了元类、元属性、定义了元类、元属性、元操作等一些概念。元操作等一些概念。 68IS ArchitectureIS ArchitectureM0:实例层:实例层v也叫信息层(也叫信息层(information layerinformation layer),主要责任),主要责任是描述一个特定的信息论域中的详细信息。是描述一个特定的信息论域中的详细信息。v是由我们希望描述的是由我们希望描述的数据数据组成,这些

73、数据通常是组成,这些数据通常是一些一些用户数据用户数据(user data)(user data)。v信息层的数据,即用户数据,是模型层的一个实信息层的数据,即用户数据,是模型层的一个实例。例。例如:例如: 654.56、sell_limit_order。一个学号为一个学号为“2009001”的学生详细纪录的学生详细纪录信息,是一个学生类信息,是一个学生类的实例。的实例。69IS ArchitectureIS ArchitectureM1:模型层模型层v模型层是由元数据组成,元数据是描述信息层的模型层是由元数据组成,元数据是描述信息层的数据,元数据的集合被称作为模型。数据,元数据的集合被称作为

74、模型。v模型层的主要职责是为描述信息层而定义的一种模型层的主要职责是为描述信息层而定义的一种“抽象语言抽象语言”( (即没有具体语法或符号的语言即没有具体语法或符号的语言) )v一个模型是一个元模型的实例,例如:一个模型是一个元模型的实例,例如:StockShareaskPricesellLimitOrderStockQuoteServer。一个学生类的一个学生类的UML表示。表示。70IS ArchitectureIS ArchitectureM2:元模型层:元模型层v元模型层是由元元模型层是由元- -元数据组成,元元数据组成,元- -元数据定义了元数据定义了元数据的结构和语义,元元数据的结

75、构和语义,元- -元数据的集合被称作元数据的集合被称作为元模型。为元模型。v元模型层的主要职责是为了描述模型层而定义的元模型层的主要职责是为了描述模型层而定义的一种一种“抽象语言抽象语言”,是对模型层的进一步抽象。,是对模型层的进一步抽象。v一个元模型是元元模型的一个实例。一般来说,一个元模型是元元模型的一个实例。一般来说,元模型比定义它的元元模型更加精细,例如:元模型比定义它的元元模型更加精细,例如:数据库建模领域里,数据词典中的数据属于元模型,数据库建模领域里,数据词典中的数据属于元模型,是对逻辑数据模型的描述。是对逻辑数据模型的描述。UMLUML的事物,类、属性、操作、对象等都是元模型,

76、是的事物,类、属性、操作、对象等都是元模型,是元元- -元模型中元模型中“事物事物”概念的实例。概念的实例。71IS ArchitectureIS ArchitectureM3:元元模型层:元元模型层v元元模型层由元元数据的结构和语义描述组成。元元模型层由元元数据的结构和语义描述组成。v主要职责是为了描述元模型而定义的一种主要职责是为了描述元模型而定义的一种“抽象抽象语言语言”。v元元模型的定义要比元模型更加抽象、简洁。一元元模型的定义要比元模型更加抽象、简洁。一个元元模型可以定义多个元模型,而每个元模型个元元模型可以定义多个元模型,而每个元模型也可以与多个元元模型相关联。也可以与多个元元模型

77、相关联。v一个元模型是元元模型的一个实例。一个元模型是元元模型的一个实例。例如:例如:“事物事物”是一个是一个“元类元类”的元元模型描述的元元模型描述其中事物概念可代表任何定义的东西其中事物概念可代表任何定义的东西事物事物72IS ArchitectureIS Architecture7.UML与面向对象建模简介与面向对象建模简介vUMLUML能在系统开发的不同阶段建立不同的模型,能在系统开发的不同阶段建立不同的模型,在分析阶段,模型的目的是捕获系统的需求,建立在分析阶段,模型的目的是捕获系统的需求,建立“现实世界现实世界”的类和协作的模型。的类和协作的模型。在设计阶段,模型的目的是在考虑实现

78、环境的情况下,在设计阶段,模型的目的是在考虑实现环境的情况下,将分析模型扩展为可行的技术方案。将分析模型扩展为可行的技术方案。在实现阶段,模型是那些写并编译的实际源代码。在实现阶段,模型是那些写并编译的实际源代码。在部署阶段,模型描述了系统是如何在物理结构中部在部署阶段,模型描述了系统是如何在物理结构中部署的。署的。v系统建立模型的过程就是将任务划分为系统建立模型的过程就是将任务划分为需求分析需求分析阶段、设计阶段、实现阶段、部署阶段阶段、设计阶段、实现阶段、部署阶段等几个阶等几个阶段连续的迭代的过程。段连续的迭代的过程。73IS ArchitectureIS ArchitectureUML对

79、软件开发过程的支持对软件开发过程的支持74IS ArchitectureIS Architecture7.1UML和和OOAv运用运用UMLUML进行面向对象的系统分析时:进行面向对象的系统分析时:首先要对项目进行需求调研,分析项目的业务流程图首先要对项目进行需求调研,分析项目的业务流程图和数据流程图,以及项目中涉及的各级操作人员,识和数据流程图,以及项目中涉及的各级操作人员,识别出系统中的所有用例和角色;别出系统中的所有用例和角色;接着分析系统中各角色和用例间的联系,使用接着分析系统中各角色和用例间的联系,使用UMLUML建模建模工具画出系统的用例图;工具画出系统的用例图;最后,勾画系统的概

80、念层模型,借助最后,勾画系统的概念层模型,借助UMLUML建模工具描述建模工具描述概念层的类图和活动图。概念层的类图和活动图。75IS ArchitectureIS Architecture7.2UML和和OODv设计阶段的任务是设计系统和系统中的类及其行设计阶段的任务是设计系统和系统中的类及其行为。设计阶段由为。设计阶段由结构设计结构设计和和详细设计详细设计组成。组成。结构设计是高层设计,其任务是定义包(子系统),结构设计是高层设计,其任务是定义包(子系统),包括包间的依赖关系和主要通信机制。包有利于描述包括包间的依赖关系和主要通信机制。包有利于描述系统的逻辑组成部分以及各部分之间的依赖关系

81、。系统的逻辑组成部分以及各部分之间的依赖关系。详细设计就是要细化包的内容,清晰描述所有的类,详细设计就是要细化包的内容,清晰描述所有的类,同时使用同时使用UMLUML的动态模型描述在特定环境下这些类的实的动态模型描述在特定环境下这些类的实例的行为。例的行为。76IS ArchitectureIS Architecture7.3UML建模过程的特征建模过程的特征v用例驱动的(用例驱动的(Use case drivenUse case driven )即首先将用户需求转换为系统需求即首先将用户需求转换为系统需求( (即用例即用例),),并根据对并根据对用例的描述和分析,得出系统类,然后进一步描绘出

82、用例的描述和分析,得出系统类,然后进一步描绘出系统类的静态结构和动态行为,继而描述系统类的代系统类的静态结构和动态行为,继而描述系统类的代码结构和物理配置。码结构和物理配置。v以架构为中心的(以架构为中心的(Architecture-centricArchitecture-centric)就是在建模过程中围绕系统架构,对系统进行抽象,就是在建模过程中围绕系统架构,对系统进行抽象,并以用例为中心,构造出简单而又有效的系统架构。并以用例为中心,构造出简单而又有效的系统架构。v迭代的和增量的(迭代的和增量的(Iterative & incrementalIterative & incremental

83、)迭代迭代/ /增量式开发过程使项目开发人员能渐进地开发和增量式开发过程使项目开发人员能渐进地开发和完善系统完善系统, ,使每次迭代都能对原有系统有所改善。使每次迭代都能对原有系统有所改善。77IS ArchitectureIS Architecture7.4静态图和动态图静态图和动态图v在使用在使用UMLUML的的OOADOOAD情况中,模型主要由图组成:情况中,模型主要由图组成:v静态图描述了系统的结构,静态图描述了系统的结构,使用静态图时,可以确保每个组件或类可以访问执行使用静态图时,可以确保每个组件或类可以访问执行它应当负责行为需要的接口和信息,并且可以很容易它应当负责行为需要的接口和

84、信息,并且可以很容易地在模型中进行改变。地在模型中进行改变。v动态图则描述了系统的行为,动态图则描述了系统的行为,使用动态图时,可以跟踪具体的行为,并且分析不同使用动态图时,可以跟踪具体的行为,并且分析不同的情况如何结束。的情况如何结束。78IS ArchitectureIS Architecture图图diagrams类图类图classdiagrams对象图对象图objectdiagrams构件图构件图componentdiagrams部署图部署图deploymentdiagrams用例图用例图usecasediagrams顺序图顺序图sequencediagrams协作图协作图collab

85、orationdiagrams状态图状态图statechartdiagrams活动图活动图activitydiagrams静态模型静态模型(系统结构系统结构)动态模型动态模型(系统行为系统行为)7.4静态图和动态图静态图和动态图79IS ArchitectureIS Architecture7.5UML视图和图视图和图主要的域主要的域视图视图图图主要概念主要概念静静态态结结构构用例视图用例视图用例图用例图用例、参与者、关联、扩展、包括、用例泛化用例、参与者、关联、扩展、包括、用例泛化静态视图静态视图类图、对象图类图、对象图类、关联、泛化、依赖关系、实现、接口类、关联、泛化、依赖关系、实现、接口

86、实现视图实现视图组件图组件图组件、接口、依赖关系、实现组件、接口、依赖关系、实现部署视图部署视图部署图部署图节点、组件、依赖关系、位置节点、组件、依赖关系、位置动动态态行行为为状态视图状态视图状态图状态图状态、事件、转换、动作状态、事件、转换、动作活动视图活动视图活动图活动图状态、活动、完成转换、分叉、结合状态、活动、完成转换、分叉、结合交互视图交互视图顺序图顺序图交互、对象、消息、激活交互、对象、消息、激活协作图协作图协作、交互、协作角色、消息协作、交互、协作角色、消息模型管理模型管理模型管理模型管理视图视图类图类图包、子系统、模型包、子系统、模型可扩展性可扩展性所有所有所有所有约束、构造型

87、、标记值约束、构造型、标记值80IS ArchitectureIS Architecture7.6UML建模框架建模框架v因此因此,UML,UML的主要内容也可以归纳为静态建模机制的主要内容也可以归纳为静态建模机制和动态建模机制两大类。和动态建模机制两大类。81IS ArchitectureIS Architecture8UML建模工具建模工具vUMLUML作为一种模型语言,它使开发人员专注于建作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言立产品的模型和结构,而不是选用什么程序语言和算法实现。当模型建立之后,模型可以被和算法实现。当模型建立之后,模型可以被UM

88、LUML工具转化成指定的程序语言代码。工具转化成指定的程序语言代码。v自从自从19971997年正式发布年正式发布UMLUML以后,大量商用以后,大量商用UMLUML建模建模CASECASE工具粉墨登场。工具粉墨登场。 众所周知众所周知,IBM,IBM的的Rational RoseRational Rose作为最早的作为最早的UMLUML建模工建模工具。与之可以抗衡的是具。与之可以抗衡的是Together。中国也有了自己引以为傲的中文中国也有了自己引以为傲的中文UMLUML建模工具建模工具TrufunTrufun Plato/Plato/kantkant系列,虽然起步晚,但是后来者居上,是系列

89、,虽然起步晚,但是后来者居上,是业界最早实现业界最早实现UML2.1UML2.1标准的标准的umluml建模工具。建模工具。MicroSoftMicroSoft的的VisioVisio也增加也增加UMLUML的功能的功能, ,但是其尽限于绘但是其尽限于绘图而不是真正意义上的建模。图而不是真正意义上的建模。 82IS ArchitectureIS Architecture8.1RationalRosevROSE ROSE 是用是用UMLUML快速开发应用程序的工具之一,它快速开发应用程序的工具之一,它是美国是美国RationalRational(瑞理,创立于(瑞理,创立于19811981年)公司

90、的年)公司的面向对象建模工具面向对象建模工具利用这个工具,我们可以建立用利用这个工具,我们可以建立用UMLUML描述的软件系统的描述的软件系统的模型,而且可以自动生成和维护模型,而且可以自动生成和维护C+C+、JavaJava、VBVB、Oracle Oracle 等语言和系统的代码。等语言和系统的代码。瑞理公司一度网罗了世界级软件大师,包括瑞理公司一度网罗了世界级软件大师,包括GrandyGrandy BoochBooch、James James RumbaughRumbaugh、IvarIvar Jacobson Jacobson以及以及Philippe Philippe Kruchten

91、Kruchten。20022002年年1212月月6 6日,日,IBMIBM宣布以宣布以2121亿美元收购亿美元收购RationalRational。v目前目前IBMIBM发布的最新的版本是发布的最新的版本是Rational Software Rational Software Architect 7.5Architect 7.5,见,见UMLtools.pdfUMLtools.pdf. .83IS ArchitectureIS Architecture8.2TogetherforVisualStudio.NETv美国美国 Borland Borland 软件公司为软件公司为Microsoft

92、 .NETMicrosoft .NET用户用户提供更先进的建模功能。基于角色的提供更先进的建模功能。基于角色的 Together Together 套件提供易用的建模工具,为套件提供易用的建模工具,为微软微软开发环境提供开发环境提供UML2.0UML2.0的支持。的支持。vBorland Together Borland Together http:/ ArchitectureIS Architecture8.3TrufunPlato2008v中国人自己的先进的企业级中国人自己的先进的企业级UMLUML工具。工具。vTrufunTrufun Plato/Cicero/Kant 2008 Pla

93、to/Cicero/Kant 2008是楚凡科是楚凡科技继技继TrufunTrufun 2007 2007系列产品之后为中国广大系列产品之后为中国广大软件开发人员精心缔造的软件开发人员精心缔造的UML2.xUML2.x规范实现产品、规范实现产品、数据库建模产品以及企业级数据库建模产品以及企业级MDAMDA产品。产品。 vTrufunTrufun Plato 2008 Plato 2008为纯绿色软件,无须预安装为纯绿色软件,无须预安装任何其他软件系统。任何其他软件系统。for Windowsfor Windows可运行在任何可运行在任何WindowsWindows系统。系统。vhttp:/ht

94、tp:/ /new/ 85IS ArchitectureIS Architecture86IS ArchitectureIS Architecture8.4StarUMLvStarUMLStarUML是一个运行在是一个运行在Win32Win32上快速,灵活,可扩上快速,灵活,可扩展,功能强大的展,功能强大的UML/MDAUML/MDA平台。平台。v开源项目开源项目StarUMLStarUML的目的是提供一个可以用来代的目的是提供一个可以用来代替知名商业替知名商业UMLUML工具比如工具比如Rose,TogetherRose,Together等的建模等的建模工具和平台。工具和平台。87IS Ar

95、chitectureIS Architecture8.5OTHERSvEnterprise Architect v7.0.816 Enterprise Architect v7.0.816 附注册机附注册机 vJUDE (Java and UML Developers Environment) JUDE (Java and UML Developers Environment) 日本人开发的支持日本人开发的支持JAVAJAVA的的UMLUML建模工具建模工具( (安装语言安装语言是英文的是英文的),),Jude Community 5.4Jude Community 5.4:是免费版。:是免费版。http:/jude.change- v更多更多UMLUML工具,详见工具,详见UMLUML工具一览表(工具一览表(2009.12009.1)88

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号