版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上节课重点面向对象的软件工程方法,它包括:面向对象的分析(OOA—ObjectOrientedAnalysis)面向对象的设计(OOD—ObjectOrientedDesign)面向对象的编程(OOI—ObjectOrientedImplementation)面向对象的测试(OOT—ObjectOrientedTesting)面向对象的维护(OOSM—ObjectOrientedSoftwareMaintenance)1上节课重点面向对象的软件工程方法,它包括:1上节课重点面向对象方法的优点:(1)按照人类的自然思维方式,面对客观世界建立软件系统模型,有利于对问题领域和系统责任的理解,有利于人员交流。(2)对需求变化的适应性。(3)支持软件复用。(4)可维护性好。2上节课重点面向对象方法的优点:2上节课重点面向对象的分析的基本过程如下:(1)问题领域分析(2)发现和定义对象与类(3)识别对象的外部联系(4)建立系统的静态结构模型(5)建立系统的动态行为模型3上节课重点面向对象的分析的基本过程如下:3上节课重点面向对象的设计基本过程如下:(1)设计对象与类(2)设计系统结构(3)设计问题领域子系统(4)设计人机交互子系统(5)设计数据管理子系统(6)设计任务管理子系统(7)设计优化,提高系统的性能4上节课重点面向对象的设计基本过程如下:4本章内容1.什么是UML2.UML是一种语言3.UML的主要特点4.UML的构成5.UML模型的体系结构6.UML语言的体系结构7.UML与面向对象建模简介5本章内容1.什么是UML5基本要求对面向对象的基本概念和技术有概括的本质的认识了解面向对象的分析方法了解面向对象的设计过程了解学习UML的目的、UML的历史、特点与构成,理解UML的应用领域、支持UML的工具。了解基于UML的分析、设计过程。6基本要求对面向对象的基本概念和技术有概括的本质的认识6background软件工程领域在1995年至1997年取得了前所未有的进展,其成果超过软件工程领域1995年之前15年的成就总和。其中最重要的、具有划时代重大意义的成果之一就是统一建模语言—UML(UnifiedModelingLanguage)的出现。在世界范围内,至少在近10年内,UML将是面向对象技术领域内占主导地位的标准建模语言。7background软件工程领域在1995年至1997年取得1.什么是UML?统一建模语言(UnifiedModelingLanguage)UML是一种对软件密集(software-intensive)型系统的制品进行可视化(Visualizing)、详述(Specifying)、构造(Constructing)、文档化(Documenting)的语言。UML是一种绘制软件系统蓝图的可视化的标准建模语言。UML有助于表达和设计软件系统,特别是采用面向对象方法构造的软件系统。支持面向对象系统的分析、设计、实现和交付等环节。81.什么是UML?统一建模语言(UnifiedMode1.1UML的产生背景20世纪70年代出现了面向对象的程序设计语言。20世纪80年代,出现了面向对象的建模语言。在1989年到1994年期间,面向对象的方法从不到十种增加到了五十多种;一些方法脱颖而出,包括Booch方法、OMT和OOSE等方法;其他的方法还有Fusion方法、Shlaer-Mellor方法和Coad-Yourdon方法经过Booch、Rumbaugh和Jacobson三人的共同努力,于1996年发布了UML(UnifiedModelingLanguage)。91.1UML的产生背景20世纪70年代出现了面向对象的程1.2UML的标准化1997年11月14日,UML1.1版本被OMG(对象管理组织)采纳为标准,并陆续修订颁布了1.3、1.4和1.5等版本。2000年-2003年,UML2.0版本问世。2005年,UML2.0标准版本被OMG采纳。BoochRumbaughJacobson101.2UML的标准化1997年11月14日,UML1.11.3ThreeamigosUML的三位主要奠基人,被称为“三友”(threeamigos),UnifiedG.Booch布奇Booch方法J.Rumbaugh兰博OMT方法I.Jacobson雅格布森OOSE111.3ThreeamigosUML的三位主要奠基人,被1.4UML的历史121.4UML的历史122.UML是一种语言UML定义了一系列的图形符号来描述软件系统。它们有严格的语义和清晰的语法。图形符号及其背后的语义和语法组成了一个标准。作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分UML语义:描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外UML还支持对元模型的扩展定义。UML表示法:定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。132.UML是一种语言UML定义了一系列的图形符号来描述软2.1UML是一种可视化的语言UML的每一个符号都具有明确的语义。使用UML语言可以构建清晰的模型。UML模型使得开发人员更好的理解系统的细节,而这是文字和代码做不到的。UML模型有利于开发人员之间的交流。142.1UML是一种可视化的语言UML的每一个符号都具有明UML的定义UML的定义包括UML语义和UML表示法两个部分。(1)UML语义描述基于UML的精确元模型(meta-model)定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的表达方法所造成的影响。此外UML还支持对元模型的扩展定义。UML支持各种类型的语义。如布尔、表达式、列表、阶、名字、坐标、字符串和时间等,还允许用户自定义类型。(2)UML表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。15UML的定义UML的定义包括UML语义和UML表示法两个部分2.2UML是一种可用于详细描述的语言详细描述意味着所建立的模型是精确的、无歧义的和完整的。UML贯穿软件开发的生命期,使得软件开发的所有相关人员都能用它来对软件系统的各个侧面进行描述。UML对所有重要的分析、设计和实现决策进行详细描述。162.2UML是一种可用于详细描述的语言详细描述意味着所建2.3UML是一种用于构造的语言UML不是可视化的编程语言,但是用UML描述的模型可以与各种编程语言甚至数据库里的对象进行关联转换。正向工程(forwardengineering):直接从系统模型生成初始软件或数据库代码。逆向工程(reverseengineering):直接从软件或数据库代码生成初始的系统模型。双向工程:把正向工程和逆向工程结合起来172.3UML是一种用于构造的语言UML不是可视化的编程语2.4UML是一种文档化的语言UML适于建立系统体系结构以及所有细节的文档。UML还提供用于表达需求和用于测试的语言。UML也提供对项目计划活动和发布、管理活动进行建模的语言182.4UML是一种文档化的语言UML适于建立系统体系结构3.UML的主要特点统一的标准UML是被OMG接受为标准,越来越多的开发人员使用UML进行软件开发,越来越多的厂商支持UML。面向对象是支持OO软件开发的建模语言。概念明确建模表示法简洁,图形结构清晰,可视化、表示能力强大,容易掌握和使用。独立于过程UML不依赖于特定的软件开发过程。193.UML的主要特点统一的标准194.UML的构成为了理解UML,需要形成该语言的概念模型,这要求学习语言的三个要素。UML的基本构造块(BuildingBlocks),也叫建模元素。UML的构造块包括三种事物(Things)关系(Relationships)图(Diagrams)支配构造块如何放在一起的规则(therules)UML的公共机制(commonmechanisms)掌握了这些思想,就能读懂UML,并能构建一些基本的UML模型。UML的上述三个要素的关系如下列图示:204.UML的构成为了理解UML,需要形成该语言的概念模型4.1UML的构成图UML构成规则公共机制命名范围执行完整性可见性扩展机制通用划分详述修饰构造型约束标记值基本构造块214.1UML的构成图UML构成规则公共机制命名范围执行完整4.2UML基本构造块UML基本构造块事物关系图结构事物行为事物分组事物辅助事物关联关系依赖关系泛化关系实现关系静态图动态图用例图类图对象图组件图配置图时序图协作图状态图活动图用例类接口协作主动类组件节点状态机交互机包注释224.2UML基本构造块UML基本构造块事物关系图结构事物行4.3事物(Thing)事物是对模型中最具有代表性的成分的抽象。结构事物:UML中的名词,它是模型基本物理元素。类、接口、协作(它是一个交互,它是由一组共同工作以提供某协作行为的角色和其它元素构成的一个群体。)、用例、主动类(至少拥有一个进程或者线程,其元素的行为可以和其它元素的行为并发)、构件(如COM+和JavaBean)、节点。行为事物:UML中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为。交互、状态机(描述了一个对象或者一个交互在生命期内响应事件所经历的状态序列)。分组事物:UML中的容器,用来组织模型,使模型更加的结构化。例如:包。辅助事物:UML中的解释部分,和代码中的注释语句一样,是用来描述模型的。例如:注释。234.3事物(Thing)事物是对模型中最具有代表性的成分的①结构事物(Structural
things)
结构事物是模型中的静态部分,用以呈现概念或实体的表现元素,是软件建模中最常见的元素,共有以下七种:类(class):用矩形表示,写有类的名称,属性和操作。接口(interface)用带有名称的圆表示。
协作(collaboration)用含有名称的虚线椭圆表示。
用例(Usecase)用含有名称的实线椭圆表示。
主动类(Activeclass):与类相似,不同点就是对象至少拥有一个进程或线程,因此能够启动控制活动.外框是粗线,包括名称,属性和操作。
构件(Component):是类,接口和协作的物理包.用带有小方框的矩形表示,只写构件的名称。结点(node):与类相似,通常用只包括名称的立方体表示.表示可计算的一种资源。24①结构事物(Structuralthings)结构事物结构事物部分图符25结构事物部分图符25结构事物部分图符26结构事物部分图符26②行为事物(Behavioral
things)行为事物描述跨越时间和空间的行为.行为事物指的是UML模型中的动态部分,代表语句里的“动词”,表示模型里随着时空不断变化的部分,包含两类:交互(interaction):包括消息,动作序列和链.用一条有向直线表示。状态机(statemachine):包括状态,转换,事件和活动.用圆角矩形表示.27②行为事物(Behavioralthings)行为事物描述③分组事物(Grouping
things)分组事物可以看成是一个“盒子”,模型可以在其中被分解。目前只有一种分组事物,即包。结构事物、动作事物甚至分组事物都有可能放在一个包中。包纯粹是概念上的,只存在于开发阶段,而组件在运行时存在。包(package):是把元素组成组的机制.结构事物,行为事物甚至其它事物组成一个包.由左上角有一个小矩形的大矩形来表示.28③分组事物(Groupingthings)分组事物可以看成④注释事物(Annotational
things)注释事物是UML模型的解释部分。注解(note):依附于一个元素或一组元素之上,对它进行约束或解释的简单的符号。用右上角是折角的矩形来表示。
29④注释事物(Annotationalthings)注释事物4.4关系(Relationships)关系是将事物联系在一起的方式,UML中定义了四种关系:304.4关系(Relationships)关系是将事物联系①关联(Association)关联是类之间的结构关系,它描述了一组链,链是对象(类的实例)之间的连接。聚合与合成是特殊类型的关联,描述了整体和部分间的结构关系。在图形上,把关联画成一条实线,它可能有方向,偶尔在其上还带有一个标记,而且它还经常含有诸如多重性和端名这样的修饰,如图所示。31①关联(Association)关联是类之间的结构关系②依赖(Dependencies)依赖是两个模型元素间的语义关系,其中一个元素(独立元素)发生变化会影响另一个元素(依赖元素)的语义。在图形上,把依赖画成一条可能有方向的虚线,偶尔在其上还带有一个标记,如图所示:32②依赖(Dependencies)依赖是两个模型元素间的语义③泛化(Generalization)泛化是一种特殊/一般关系,在其中特殊元素(子元素)基于一般元素(父元素)而建立。用这种方法,子元素共享了父元素的结构和行为在图形上,把泛化关系画成一条带有空心箭头的实线,该实线指向父元素,如图示:33③泛化(Generalization)泛化是一种特殊/一般④实现(Realization)
实现(realization)是类目之间的语义关系,其中的一个类目指定了由另一个类目保证执行的合约。在两种地方会遇到实现关系:一种是在接口和实现它们的类或构件之间;另一种是在用况和实现它们的协作之间。在图形上,把实现关系画成一条带有空心箭头的虚线,它是泛化和依赖关系两种图形的结合,如图所示。34④实现(Realization)实现(realizatio4.5图(Diagram)图,又叫模型图,是事物集合的分类,UML中包含多种图:用例图(UsecaseDiagram):用例图从用户的角度出发描述系统的功能、需求,展示系统外部的各类角色与系统内部的各种用例之间的关系类图(ClassDiagram):类图描述系统所包含的类、类的内部结构及类之间的关系对象图(ObjectDiagram):对象图是类图的一个具体实例包图(PackageDiagram):包图表明包及其之间的依赖类图组件图(CompomentDiagram,也称构件图):组件图描述代码部件的物理结构以及各部件之间的依赖关系354.5图(Diagram)图,又叫模型图,是事物集合的4.5图(Diagram)部署图(DeploymentDiagram):部署图定义系统中软硬件的物理体系结构顺序图(SequenceDiagram):顺序图表示对象之间动态合作的关系协作图(CollaborationDiagram):合作图描述对象之间的协作关系状态图(StatechartDiagram):状态图描述一类对象的所有可能的状态以及事件发生时状态的转移条件活动图(ActivityDiagram):活动图描述系统中各种活动的执行顺序。364.5图(Diagram)部署图(Deployment用例图、类图、包图、构件和部署图37用例图、类图、包图、构件和部署图37时序图、状态图、协作图、活动图38时序图、状态图、协作图、活动图384.5图(Diagram)上述十种模型图可归纳为五种类型静态图:类图、对象图、包图行为图:状态图、活动图用例图:用例图
交互图:顺序图、协作图
实现图:组件图、部署图
394.5图(Diagram)上述十种模型图可归纳为五种类型4040上节课重点结构事物类(class):接口(interface)协作(collaboration)用例(Usecase)主动类(Activeclass):构件(Component):结点(node):行为事物交互(interaction):状态机(statemachine):分组事物包(package):41上节课重点结构事物41上节课重点关系关联(Association)依赖(Dependencies)泛化(Generalization)实现(Realization)42上节课重点关系424.6规则(RulesoftheUML)UML的规则描述了一个结构良好(well-formed)的模型看起来应该像什么。而不至于出现不太规范的使用。UML的有自己的语法和语义上的规则,用于:名字(Names):为事物、关系、图起的名字范围(Scope):使名字具有特定含义的语境可见性(Visibility):如何让其他成分看到和使用这些名字完整性(Integrity):事物如何正确、一致的相互联系执行(Execution):运行或者模拟动态模型意味着什么434.6规则(RulesoftheUML)UML的规4.7公共机制UML具有四种贯穿整个语言且一致应用的公共机制,使得UML较为简单,他们分别是:详述(Specifications)修饰(Adornments)通用划分(Commondivisions)扩展机制(Extensibilitymechanisms)444.7公共机制UML具有四种贯穿整个语言且一致应用的公共机①详述(Specifications)在UML中,每个模型元素的图形表示法之后都存在一个详述(规范说明),它以文字的形式描述基本模型元素的语法和语义。例如,在类的图符背后有一个详述,它提供了对该类所拥有的属性、操作(包括完整的特征标记)和行为的全面描述;在视觉上,类的图符可能仅展示了这个详述的一小部分。此外,可能存在着该类的另一个视图,其中提供了一个完全不同的部件集合,但是它仍然与该类的基本详述相一致。UML的图形表示法用来对系统进行可视化;UML的详述用来说明系统的细节。45①详述(Specifications)在UML中,每个模型元②修饰(Adornments)对类的详述可以包含其他细节,例如,它是否是抽象类,或它的属性和操作是否可见。可以把很多这样的细节表示为图形或文字修饰,放到类的基本矩形符号上。例如,下图是一个带有修饰的类,图中表明这个类是一个抽象类,有两个公共操作、一个受保护操作和一个私有操作。UML表示法中的每一个元素都有一个基本符号,可以把各种修饰细节加到这个符号上。46②修饰(Adornments)对类的详述可以包含其他细节,例修饰举例在UML众多的修饰符中,注释是一种最重要的并且能单独存在的修饰符,它是附加在模型元素或元素集上用来表示约束或注解信息的图形符号。图中注释的作用是指出priority()的算法细节在文档exe.doc中。47修饰举例在UML众多的修饰符中,注释是一种最重要的并且能单独③通用划分(Common
divisions)UML提供了事物的抽象的描绘和具体的实例两种两分法表达,被称为公共划分。通常:第一种方法是对类和对象的划分。类是一种抽象,对象是这种抽象的一个具体表现。在UML中,可以对类和对象建立模型,如图所示。在图形上,UML是这样辨别对象的:用与类同样的图形符号来表示对象,并且在对象名的下面画一道线。
在这个图中,有一个名称为Customer的类,它有3个对象,分别为Jan(它被明确地标记为Customer的对象),:Customer(匿名的Customer对象)和Elyse(它在详述中被说明为是一种Customer对象,尽管在这里没有明确地表示出来)。
48③通用划分(Commondivisions)UML提供了事③通用划分(Common
divisions)第二种方法是接口和实现的分离。接口声明了一个合约,而实现则表示了对该合约的具体实施,它负责如实地实现接口的完整语义。在UML中,既可以对接口建模又可以对它们的实现建模,如图所示。在这个图中,有一个名称为SpellingWizard.dll的构件,它实现了接口IUnknown和接口ISpelling,并且还需要一个由其他构件提供的名为IDictionary的接口。49③通用划分(Commondivisions)第二种方法是接③通用划分(Common
divisions)第三种方法是类型和角色的分离。类型声明了实体的种类(如对象、属性或参数),角色描述了实体在语境中的含义(如类、构件或协作等)。任何作为其他实体结构中的一部分的实体(例如属性)都具有两个特性:从它固有的类型派生出一些含义,从它在语境中的角色派生出一些含义。50③通用划分(Commondivisions)第三种方法是类④扩展机制UML提供了一种绘制软件蓝图的标准语言,但是一种闭合的语言即使表达能力再丰富,也难以表示出各种领域中的各种模型在不同时刻所有可能的细微差别。由于这个原因,UML是目标开放的,使人们能够以受控的方式来扩展该语言。UML的扩展机制包括:衍型(Stereotypes)标记值(Taggedvalues)约束(Constraints)51④扩展机制UML提供了一种绘制软件蓝图的标准语言,但是一种④扩展机制⑴衍型(构造型
):对UML的词汇的扩展,用于创建与已有的模型元素相似且针对特定问题的新种类的模型元素。用书名号括起来的名字表示,其位置在其他元素之上。⑵标记值:对UML元素的特性的扩展,用于在模型元素的规约中创建新的信息。用花括号括起来的字符串表示,其位置在其他元素之下。⑶约束:对UML元素的语义的扩展,用于增加新规则或修改已有规则。用花括号括起来的字符串表示,且放在所关联的元素附近或通过依赖关系连接相应元素。52④扩展机制⑴衍型(构造型):对UML的词汇的扩展,用于创建④扩展机制实例衍型exception使得Overflow成为一个模型元素EventQueue中版本和作者是标记值add上的约束{ordered}使得EvenrQueue中的事件按序排列53④扩展机制实例衍型exception使得Overflo5UML模型的体系结构可视化、详述、构造和文档化一个系统,要求从几个角度去观察系统。从一个角度观察到的系统称为一个视图(view)。UML用视图来表示被建模系统的各个方面,它是在某一个抽象层次上对系统的抽象表示。系统开发相关的各种人员会在不同日程、不同阶段、不同方式看待系统。UML用“4+1”视图来描述系统的体系结构:每一个视图代表完整系统描述的投影,显示系统的一个特定方面。每一个视图又由一种或多种模型图构成。545UML模型的体系结构可视化、详述、构造和文档化一个系统,5.1UML的“4+1”视图设计(逻辑)视图实现视图部署视图交互(进程)视图用例(用户)视图性能、稳定性、吞吐率系统拓扑、分布、安装设计词汇、功能描述系统组装、配置管理555.1UML的“4+1”视图设计(逻辑)视图实现视图部署5.1UML的“4+1”视图565.1UML的“4+1”视图565.1UML的“4+1”视图575.1UML的“4+1”视图575.1UML的“4+1”视图用例视图(usecaseview):从用户角度描述系统功能,并指出各功能的操作者;设计视图(DesignView)或逻辑视图(LogicalView)包含了类、接口和协作,它们形成了问题及其对问题解决方案的术语词汇;进程视图(processview):该视图主要用于描述系统性能、可伸缩性和吞吐量的设计,包含了形成系统并发与同步机制的线程和进程;实现视图(implementationview):该视图用于描述系统组装和配置管理、表达软件成分的组织结构;部署视图(deploymentview):该视图用于描述物理系统的部件的分布、交付和安装,包含形成系统硬件拓扑结构的节点;585.1UML的“4+1”视图用例视图(usecase①用例视图(用户模型视图)由专门描述系统行为的用例组成,是从用户角度来描述系统所应具有的功能。用例视图所描述的系统功能依靠外部用户或者另一系统来激活,为用户或者另一系统提供服务,从而实现用户或另一系统与糸统的交互。系统实现的最终目标是用例视图中描述的功能。组成:用例图。使用者:客户、开发人员、测试人员。59①用例视图(用户模型视图)由专门描述系统行为的用例组成,是从用例视图是核心它的内容驱动其他视图的开发。系统的最终目标,即系统将提供的功能在用例视图中描述。同时该视图还有其他一些非功能特性的描述,因此,用例视图对所有其他的视图产生影响。通过测试用例视图,可检验和最终校验系统。测试来自:客户(这是您想要的吗?)、已完成的系统(系统是按照要求的方式运作的吗?)。60用例视图是核心它的内容驱动其他视图的开发。系统的最终目标,即②逻辑视图(结构模型视图)描述组成系统的类、对象以及它们之间的关系等静态结构,用来支持系统的功能需求,即描述系统内部的功能是如何设计的。组成:类图、对象图。使用者:开发人员、设计人员。它关注系统的内部,既描述系统的静态结构(类、对象及它们之间的关系),也描述系统内部的动态协作关系。61②逻辑视图(结构模型视图)描述组成系统的类、对象以及它们之间逻辑视图的图形模型逻辑视图也定义永久性和并发性的特性,同时还定义类的接口和内部结构。对逻辑视图的描述在原则上与软件系统的实现平台无关。图形模型包括:类图、对象图、状态图、顺序图、协作图及活动图等。62逻辑视图的图形模型逻辑视图也定义永久性和并发性的特性,同时还③组件视图(行为模型视图)描述形成系统的并发与同步机制的线程和进程,关注重点是系统的性能、易伸缩性和系统的吞吐量等非功能性需求。它利用并发来描述资源的高效实用、并行执行和处理异步事件。使用者:开发人员。组成:顺序图、协作图、状态图、活动图63③组件视图(行为模型视图)描述形成系统的并发与同步机制的线程④实现视图(实现模型视图)用来描述系统的实现模块、它们之间的依赖关系以及资源分配情况。主要用于系统配置管理。使用者:开发人员、系统集成人员。组成:动态图(状态图、协作图、活动图)和实现图(组件图、部署图)。64④实现视图(实现模型视图)用来描述系统的实现模块、它们之间的⑤部署视图(环境模型视图)描述软件系统在计算机硬件系统和网络上的安装、分发和分布情况。描述物理系统的拓扑结构。如:计算机和设备(节点)及它们之间是如何连接。使用者:开发人员、系统集成人员、测试人员组成:部署图部署视图也包括一个显示组件如何在物理结构中部署的映射,例如一个程序或对象在哪台计算机上执行。65⑤部署视图(环境模型视图)描述软件系统在计算机硬件系统和网络6UML语言的体系结构元建模理论是从80年代后期发展起来的。到目前为止,为了不同的目的,已经定义了很多元元模型和元模型.例如:最早由EIA(电子工业协会)定义的CIDF(CASEDataInterchangeFormat)元元模型,等。OMG提出的MOF(MetaObjectFacility)是一个标准。为了描述某一特定的模型,需要描述组成该类模型的建模结构集,MOF能对建模结构进行描述。MOF的4层元建模架构提供一组建模元素以及使用这些元素的规则。四层元模型是OMG指定的UML的语言体系结构。666UML语言的体系结构元建模理论是从80年代后期发展起来6.1四层元模型体系结构UML的模型结构具有一个四层的体系结构,每个层次是根据该层中元素的抽象程度、一般性程度划分的。从一般到具体这四层分别为:元元模型层(M3层,meta-metamodel)元模型层(M2层:UML)模型层(M1层:Usermodel)运行时实例层(M0层:Run-timeinstances)
676.1四层元模型体系结构UML的模型结构具有一个四层的体系6.1四层元模型体系结构元元模型M3元模型M2模型M1用户模型M0所有元素都是UML模型的例子。该层中的每个概念都是模型层的一个实例(通过分类),也是元模型层的一个实例。该层的模型通常称对象模型或实例模型。组成UML的模型,该层中每个概念都是元模型层中概念的一个实例,该层的模型通常叫作类模型或类型模型。是组成UML的基本元素,包括OO和面向组件的概念。该层每个概念都是元元模型中“事物”概念的实例。是组成UML最基本的元素“事物”,代表要定义的所有事物。其定义了元类、元属性、元操作等一些概念。686.1四层元模型体系结构元元模型M3元模型M2模型M0:实例层也叫信息层(informationlayer),主要责任是描述一个特定的信息论域中的详细信息。是由我们希望描述的数据组成,这些数据通常是一些用户数据(userdata)。信息层的数据,即用户数据,是模型层的一个实例。例如:<Acme_Software_Share98789>654.56、sell_limit_order<Stock_Quote_Svr32123>。一个学号为“2009001”的学生详细纪录信息,是一个学生类的实例。69M0:实例层也叫信息层(informationlayer)M1:模型层模型层是由元数据组成,元数据是描述信息层的数据,元数据的集合被称作为模型。模型层的主要职责是为描述信息层而定义的一种“抽象语言”(即没有具体语法或符号的语言)一个模型是一个元模型的实例,例如:StockShareaskPricesellLimitOrderStockQuoteServer。一个学生类的UML表示。70M1:模型层模型层是由元数据组成,元数据是描述信息层的数据,M2:元模型层元模型层是由元-元数据组成,元-元数据定义了元数据的结构和语义,元-元数据的集合被称作为元模型。元模型层的主要职责是为了描述模型层而定义的一种“抽象语言”,是对模型层的进一步抽象。一个元模型是元元模型的一个实例。一般来说,元模型比定义它的元元模型更加精细,例如:数据库建模领域里,数据词典中的数据属于元模型,是对逻辑数据模型的描述。UML的事物,类、属性、操作、对象等都是元模型,是元-元模型中“事物”概念的实例。71M2:元模型层元模型层是由元-元数据组成,元-元数据定义了元M3:元元模型层元元模型层由元元数据的结构和语义描述组成。主要职责是为了描述元模型而定义的一种“抽象语言”。元元模型的定义要比元模型更加抽象、简洁。一个元元模型可以定义多个元模型,而每个元模型也可以与多个元元模型相关联。一个元模型是元元模型的一个实例。例如:“事物”是一个“元类”的元元模型描述其中事物概念可代表任何定义的东西事物72M3:元元模型层元元模型层由元元数据的结构和语义描述组成。事7.UML与面向对象建模简介UML能在系统开发的不同阶段建立不同的模型,在分析阶段,模型的目的是捕获系统的需求,建立“现实世界”的类和协作的模型。在设计阶段,模型的目的是在考虑实现环境的情况下,将分析模型扩展为可行的技术方案。在实现阶段,模型是那些写并编译的实际源代码。在部署阶段,模型描述了系统是如何在物理结构中部署的。系统建立模型的过程就是将任务划分为需求分析阶段、设计阶段、实现阶段、部署阶段等几个阶段连续的迭代的过程。737.UML与面向对象建模简介UML能在系统开发的不同阶段UML对软件开发过程的支持74UML对软件开发过程的支持747.1UML和OOA运用UML进行面向对象的系统分析时:首先要对项目进行需求调研,分析项目的业务流程图和数据流程图,以及项目中涉及的各级操作人员,识别出系统中的所有用例和角色;接着分析系统中各角色和用例间的联系,使用UML建模工具画出系统的用例图;最后,勾画系统的概念层模型,借助UML建模工具描述概念层的类图和活动图。757.1UML和OOA运用UML进行面向对象的系统分析时:77.2UML和OOD设计阶段的任务是设计系统和系统中的类及其行为。设计阶段由结构设计和详细设计组成。结构设计是高层设计,其任务是定义包(子系统),包括包间的依赖关系和主要通信机制。包有利于描述系统的逻辑组成部分以及各部分之间的依赖关系。详细设计就是要细化包的内容,清晰描述所有的类,同时使用UML的动态模型描述在特定环境下这些类的实例的行为。767.2UML和OOD设计阶段的任务是设计系统和系统中的类及7.3UML建模过程的特征用例驱动的(Usecasedriven)即首先将用户需求转换为系统需求(即用例),并根据对用例的描述和分析,得出系统类,然后进一步描绘出系统类的静态结构和动态行为,继而描述系统类的代码结构和物理配置。以架构为中心的(Architecture-centric)就是在建模过程中围绕系统架构,对系统进行抽象,并以用例为中心,构造出简单而又有效的系统架构。迭代的和增量的(Iterative&incremental)迭代/增量式开发过程使项目开发人员能渐进地开发和完善系统,使每次迭代都能对原有系统有所改善。777.3UML建模过程的特征用例驱动的(Usecased7.4静态图和动态图在使用UML的OOAD情况中,模型主要由图组成:静态图描述了系统的结构,使用静态图时,可以确保每个组件或类可以访问执行它应当负责行为需要的接口和信息,并且可以很容易地在模型中进行改变。动态图则描述了系统的行为,使用动态图时,可以跟踪具体的行为,并且分析不同的情况如何结束。787.4静态图和动态图在使用UML的OOAD情况中,模型主要图diagrams类图classdiagrams对象图objectdiagrams构件图componentdiagrams部署图deploymentdiagrams用例图usecasediagrams顺序图sequence`diagrams协作图collaborationdiagrams状态图statechartdiagrams活动图activitydiagrams静态模型
(系统结构)动态模型
(系统行为)7.4静态图和动态图79图类图对象图构件图部署图用例图顺序图协作图状态图活动图静态模7.5UML视图和图主要的域视图图主要概念静态结构用例视图用例图用例、参与者、关联、扩展、包括、用例泛化静态视图类图、对象图类、关联、泛化、依赖关系、实现、接口实现视图组件图组件、接口、依赖关系、实现部署视图部署图节点、组件、依赖关系、位置动态行为状态视图状态图状态、事件、转换、动作活动视图活动图状态、活动、完成转换、分叉、结合交互视图顺序图交互、对象、消息、激活协作图协作、交互、协作角色、消息模型管理模型管理视图类图包、子系统、模型可扩展性所有所有约束、构造型、标记值807.5UML视图和图主要的域视图图主要概念静态结构用例视7.6UML建模框架因此,UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类。817.6UML建模框架因此,UML的主要内容也可以归纳为静态8UML建模工具UML作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现。当模型建立之后,模型可以被UML工具转化成指定的程序语言代码。自从1997年正式发布UML以后,大量商用UML建模CASE工具粉墨登场。众所周知,IBM的RationalRose作为最早的UML建模工具。与之可以抗衡的是Together。中国也有了自己引以为傲的中文UML建模工具TrufunPlato/kant系列,虽然起步晚,但是后来者居上,是业界最早实现UML2.1标准的uml建模工具。MicroSoft的Visio也增加UML的功能,但是其尽限于绘图而不是真正意义上的建模。828UML建模工具UML作为一种模型语言,它使开发人员专注于8.1RationalRoseROSE是用UML快速开发应用程序的工具之一,它是美国Rational(瑞理,创立于1981年)公司的面向对象建模工具利用这个工具,我们可以建立用UML描述的软件系统的模型,而且可以自动生成和维护C++、Java、VB、Oracle等语言和系统的代码。瑞理公司一度网罗了世界级软件大师,包括GrandyBooch、JamesRumbaugh、IvarJacobson以及PhilippeKruchten。2002年12月6日,IBM宣布以21亿美元收购Rational。目前IBM发布的最新的版本是RationalSoftwareArchitect7.5,见UMLtools.pdf.838.1RationalRoseROSE是用UML快速开8.2TogetherforVisualStudio.NET美国Borland软件公司为Microsoft.NET用户提供更先进的建模功能。基于角色的Together套件提供易用的建模工具,为微软开发环境提供UML2.0的支持。Borland®Together®/together/index.html848.2TogetherforVisualStudi8.3TrufunPlato2008中国人自己的先进的企业级UML工具。《TrufunPlato/Cicero/Kant2008》是楚凡科技继《Trufun2007》系列产品之后为中国广大软件开发人员精心缔造的UML2.x规范实现产品、数据库建模产品以及企业级MDA产品。TrufunPlato2008为纯绿色软件,无须预安装任何其他软件系统。forWindows可运行在任何Windows系统。/new/
858.3TrufunPlato2008中国人自己的先进的86868.4StarUML
StarUML是一个运行在Win32上快速,灵活,可扩展,功能强大的UML/MDA平台。开源项目StarUML的目的是提供一个可以用来代替知名商业UML工具比如Rose,Together等的建模工具和平台。878.4StarUML
StarUML是一个运行在Win328.5OTHERSEnterpriseArchitectv7.0.816附注册机
JUDE(JavaandUMLDevelopersEnvironment)日本人开发的支持JAVA的UML建模工具(安装语言是英文的),JudeCommunity5.4
:是免费版。/jude-web/index.htmlArgoUML:使用java编写的开源UML产品,功能比较全。最受欢迎的UML建模工具。更多UML工具,详见UML工具一览表(2009.1)888.5OTHERSEnterpriseArchitec上节课重点面向对象的软件工程方法,它包括:面向对象的分析(OOA—ObjectOrientedAnalysis)面向对象的设计(OOD—ObjectOrientedDesign)面向对象的编程(OOI—ObjectOrientedImplementation)面向对象的测试(OOT—ObjectOrientedTesting)面向对象的维护(OOSM—ObjectOrientedSoftwareMaintenance)89上节课重点面向对象的软件工程方法,它包括:1上节课重点面向对象方法的优点:(1)按照人类的自然思维方式,面对客观世界建立软件系统模型,有利于对问题领域和系统责任的理解,有利于人员交流。(2)对需求变化的适应性。(3)支持软件复用。(4)可维护性好。90上节课重点面向对象方法的优点:2上节课重点面向对象的分析的基本过程如下:(1)问题领域分析(2)发现和定义对象与类(3)识别对象的外部联系(4)建立系统的静态结构模型(5)建立系统的动态行为模型91上节课重点面向对象的分析的基本过程如下:3上节课重点面向对象的设计基本过程如下:(1)设计对象与类(2)设计系统结构(3)设计问题领域子系统(4)设计人机交互子系统(5)设计数据管理子系统(6)设计任务管理子系统(7)设计优化,提高系统的性能92上节课重点面向对象的设计基本过程如下:4本章内容1.什么是UML2.UML是一种语言3.UML的主要特点4.UML的构成5.UML模型的体系结构6.UML语言的体系结构7.UML与面向对象建模简介93本章内容1.什么是UML5基本要求对面向对象的基本概念和技术有概括的本质的认识了解面向对象的分析方法了解面向对象的设计过程了解学习UML的目的、UML的历史、特点与构成,理解UML的应用领域、支持UML的工具。了解基于UML的分析、设计过程。94基本要求对面向对象的基本概念和技术有概括的本质的认识6background软件工程领域在1995年至1997年取得了前所未有的进展,其成果超过软件工程领域1995年之前15年的成就总和。其中最重要的、具有划时代重大意义的成果之一就是统一建模语言—UML(UnifiedModelingLanguage)的出现。在世界范围内,至少在近10年内,UML将是面向对象技术领域内占主导地位的标准建模语言。95background软件工程领域在1995年至1997年取得1.什么是UML?统一建模语言(UnifiedModelingLanguage)UML是一种对软件密集(software-intensive)型系统的制品进行可视化(Visualizing)、详述(Specifying)、构造(Constructing)、文档化(Documenting)的语言。UML是一种绘制软件系统蓝图的可视化的标准建模语言。UML有助于表达和设计软件系统,特别是采用面向对象方法构造的软件系统。支持面向对象系统的分析、设计、实现和交付等环节。961.什么是UML?统一建模语言(UnifiedMode1.1UML的产生背景20世纪70年代出现了面向对象的程序设计语言。20世纪80年代,出现了面向对象的建模语言。在1989年到1994年期间,面向对象的方法从不到十种增加到了五十多种;一些方法脱颖而出,包括Booch方法、OMT和OOSE等方法;其他的方法还有Fusion方法、Shlaer-Mellor方法和Coad-Yourdon方法经过Booch、Rumbaugh和Jacobson三人的共同努力,于1996年发布了UML(UnifiedModelingLanguage)。971.1UML的产生背景20世纪70年代出现了面向对象的程1.2UML的标准化1997年11月14日,UML1.1版本被OMG(对象管理组织)采纳为标准,并陆续修订颁布了1.3、1.4和1.5等版本。2000年-2003年,UML2.0版本问世。2005年,UML2.0标准版本被OMG采纳。BoochRumbaughJacobson981.2UML的标准化1997年11月14日,UML1.11.3ThreeamigosUML的三位主要奠基人,被称为“三友”(threeamigos),UnifiedG.Booch布奇Booch方法J.Rumbaugh兰博OMT方法I.Jacobson雅格布森OOSE991.3ThreeamigosUML的三位主要奠基人,被1.4UML的历史1001.4UML的历史122.UML是一种语言UML定义了一系列的图形符号来描述软件系统。它们有严格的语义和清晰的语法。图形符号及其背后的语义和语法组成了一个标准。作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分UML语义:描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外UML还支持对元模型的扩展定义。UML表示法:定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。1012.UML是一种语言UML定义了一系列的图形符号来描述软2.1UML是一种可视化的语言UML的每一个符号都具有明确的语义。使用UML语言可以构建清晰的模型。UML模型使得开发人员更好的理解系统的细节,而这是文字和代码做不到的。UML模型有利于开发人员之间的交流。1022.1UML是一种可视化的语言UML的每一个符号都具有明UML的定义UML的定义包括UML语义和UML表示法两个部分。(1)UML语义描述基于UML的精确元模型(meta-model)定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的表达方法所造成的影响。此外UML还支持对元模型的扩展定义。UML支持各种类型的语义。如布尔、表达式、列表、阶、名字、坐标、字符串和时间等,还允许用户自定义类型。(2)UML表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。103UML的定义UML的定义包括UML语义和UML表示法两个部分2.2UML是一种可用于详细描述的语言详细描述意味着所建立的模型是精确的、无歧义的和完整的。UML贯穿软件开发的生命期,使得软件开发的所有相关人员都能用它来对软件系统的各个侧面进行描述。UML对所有重要的分析、设计和实现决策进行详细描述。1042.2UML是一种可用于详细描述的语言详细描述意味着所建2.3UML是一种用于构造的语言UML不是可视化的编程语言,但是用UML描述的模型可以与各种编程语言甚至数据库里的对象进行关联转换。正向工程(forwardengineering):直接从系统模型生成初始软件或数据库代码。逆向工程(reverseengineering):直接从软件或数据库代码生成初始的系统模型。双向工程:把正向工程和逆向工程结合起来1052.3UML是一种用于构造的语言UML不是可视化的编程语2.4UML是一种文档化的语言UML适于建立系统体系结构以及所有细节的文档。UML还提供用于表达需求和用于测试的语言。UML也提供对项目计划活动和发布、管理活动进行建模的语言1062.4UML是一种文档化的语言UML适于建立系统体系结构3.UML的主要特点统一的标准UML是被OMG接受为标准,越来越多的开发人员使用UML进行软件开发,越来越多的厂商支持UML。面向对象是支持OO软件开发的建模语言。概念明确建模表示法简洁,图形结构清晰,可视化、表示能力强大,容易掌握和使用。独立于过程UML不依赖于特定的软件开发过程。1073.UML的主要特点统一的标准194.UML的构成为了理解UML,需要形成该语言的概念模型,这要求学习语言的三个要素。UML的基本构造块(BuildingBlocks),也叫建模元素。UML的构造块包括三种事物(Things)关系(Relationships)图(Diagrams)支配构造块如何放在一起的规则(therules)UML的公共机制(commonmechanisms)掌握了这些思想,就能读懂UML,并能构建一些基本的UML模型。UML的上述三个要素的关系如下列图示:1084.UML的构成为了理解UML,需要形成该语言的概念模型4.1UML的构成图UML构成规则公共机制命名范围执行完整性可见性扩展机制通用划分详述修饰构造型约束标记值基本构造块1094.1UML的构成图UML构成规则公共机制命名范围执行完整4.2UML基本构造块UML基本构造块事物关系图结构事物行为事物分组事物辅助事物关联关系依赖关系泛化关系实现关系静态图动态图用例图类图对象图组件图配置图时序图协作图状态图活动图用例类接口协作主动类组件节点状态机交互机包注释1104.2UML基本构造块UML基本构造块事物关系图结构事物行4.3事物(Thing)事物是对模型中最具有代表性的成分的抽象。结构事物:UML中的名词,它是模型基本物理元素。类、接口、协作(它是一个交互,它是由一组共同工作以提供某协作行为的角色和其它元素构成的一个群体。)、用例、主动类(至少拥有一个进程或者线程,其元素的行为可以和其它元素的行为并发)、构件(如COM+和JavaBean)、节点。行为事物:UML中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为。交互、状态机(描述了一个对象或者一个交互在生命期内响应事件所经历的状态序列)。分组事物:UML中的容器,用来组织模型,使模型更加的结构化。例如:包。辅助事物:UML中的解释部分,和代码中的注释语句一样,是用来描述模型的。例如:注释。1114.3事物(Thing)事物是对模型中最具有代表性的成分的①结构事物(Structural
things)
结构事物是模型中的静态部分,用以呈现概念或实体的表现元素,是软件建模中最常见的元素,共有以下七种:类(class):用矩形表示,写有类的名称,属性和操作。接口(interface)用带有名称的圆表示。
协作(collaboration)用含有名称的虚线椭圆表示。
用例(Usecase)用含有名称的实线椭圆表示。
主动类(Activeclass):与类相似,不同点就是对象至少拥有一个进程或线程,因此能够启动控制活动.外框是粗线,包括名称,属性和操作。
构件(Component):是类,接口和协作的物理包.用带有小方框的矩形表示,只写构件的名称。结点(node):与类相似,通常用只包括名称的立方体表示.表示可计算的一种资源。112①结构事物(Structuralthings)结构事物结构事物部分图符113结构事物部分图符25结构事物部分图符114结构事物部分图符26②行为事物(Behavioral
things)行为事物描述跨越时间和空间的行为.行为事物指的是UML模型中的动态部分,代表语句里的“动词”,表示模型里随着时空不断变化的部分,包含两类:交互(interaction):包括消息,动作序列和链.用一条有向直线表示。状态机(statemachine):包括状态,转换,事件和活动.用圆角矩形表示.115②行为事物(Behavioralthings)行为事物描述③分组事物(Grouping
things)分组事物可以看成是一个“盒子”,模型可以在其中被分解。目前只有一种分组事物,即包。结构事物、动作事物甚至分组事物都有可能放在一个包中。包纯粹是概念上的,只存在于开发阶段,而组件在运行时存在。包(package):是把元素组成组的机制.结构事物,行为事物甚至其它事物组成一个包.由左上角有一个小矩形的大矩形来表示.116③分组事物(Groupingthings)分组事物可以看成④注释事物(Annotational
things)注释事物是UML模型的解释部分。注解(note):依附于一个元素或一组元素之上,对它进行约束或解释的简单的符号。用右上角是折角的矩形来表示。
117④注释事物(Annotationalthings)注释事物4.4关系(Relationships)关系是将事物联系在一起的方式,UML中定义了四种关系:1184.4关系(Relationships)关系是将事物联系①关联(Association)关联是类之间的结构关系,它描述了一组链,链是对象(类的实例)之间的连接。聚合与合成是特殊类型的关联,描述了整体和部分间的结构关系。在图形上,把关联画成一条实线,它可能有方向,偶尔在其上还带有一个标记,而且它还经常含有诸如多重性和端名这样的修饰,如图所示。119①关联(Association)关联是类之间的结构关系②依赖(Dependencies)依赖是两个模型元素间的语义关系,其中一个元素(独立元素)发生变化会影响另一个元素(依赖元素)的语义。在图形上,把依赖画成一条可能有方向的虚线,偶尔在其上还带有一个标记,如图所示:120②依赖(Dependencies)依赖是两个模型元素间的语义③泛化(Generalization)泛化是一种特殊/一般关系,在其中特殊元素(子元素)基于一般元素(父元素)而建立。用这种方法,子元素共享了父元素的结构和行为在图形上,把泛化关系画成一条带有空心箭头的实线,该实线指向父元素,如图示:121③泛化(Generalization)泛化是一种特殊/一般④实现(Realization)
实现(realization)是类目之间的语义关系,其中的一个类目指定了由另一个类目保证执行的合约。在两种地方会遇到实现关系:一种是在接口和实现它们的类或构件之间;另一种是在用况和实现它们的协作之间。在图形上,把实现关系画成一条带有空心箭头的虚线,它是泛化和依赖关系两种图形的结合,如图所示。122④实现(Realization)实现(realizatio4.5图(Diagram)图,又叫模型图,是事物集合的分类,UML中包含多种图:用例图(UsecaseDiagram):用例图从用户的角度出发描述系统的功能、需求,展示系统外部的各类角色与系统内部的各种用例之间的关系类图(ClassDiagram):类图描述系统所包含的类、类的内部结构及类之间的关系对象图(ObjectDiagram):对象图是类图的一个具体实例包图(PackageDiagram):包图表明包及其之间的依赖类图组件图(CompomentDiagram,也称构件图):组件图描述代码部件的物理结构以及各部件之间的依赖关系1234.5图(Diagram)图,又叫模型图,是事物集合的4.5图(Diagram)部署图(DeploymentDiagram):部署图定义系统中软硬件的物理体系结构顺序图(SequenceDiagram):顺序图表示对象之间动态合作的关系协作图(CollaborationDiagram):合作图描述对象之间的协作关系状态图(StatechartDiagram):状态图描述一类对象的所有可能的状态以及事件发生时状态的转移条件活动图(ActivityDiagram):活动图描述系统中各种活动的执行顺序。1244.5图(Diagram)部署图(Deployment用例图、类图、包图、构件和部署图125用例图、类图、包图、构件和部署图37时序图、状态图、协作图、活动图126时序图、状态图、协作图、活动图384.5图(Diagram)上述十种模型图可归纳为五种类型静态图:类图、对象图、包图行为图:状态图、活动图用例图:用例图
交互图:顺序图、协作图
实现图:组件图、部署图
1274.5图(Diagram)上述十种模型图可归纳为五种类型12840上节课重点结构事物类(class):接口(interface)协作(collaboration)用例(Usecase)主动类(Activeclass):构件(Component):结点(node):行为事物交互(interaction):状态机(statemachine):分组事物包(package):129上节课重点结构事物41上节课重点关系关联(Association)依赖(Dependencies)泛化(Generalization)实现(Realization)130上节课重点关系424.6规则(RulesoftheUML)UML的规则描述了一个结构良好(well-formed)的模型看起来应该像什么。而不至于出现不太规范的使用。UML的有自己的语法和语义上的规则,用于:名字(Names):为事物、关系、图起的名字范围(Scope):使名字具有特定含义的语境可见性(Visibility):如何让其他成分看到和使用这些名字完整性(Integrity):事物如何正确、一致的相互联系执行(Execution):运行或者模拟动态模型意味着什么1314.6规则(RulesoftheUML)UML的规4.7公共机制UML具有四种贯穿整个语言且一致应用的公共机制,使得UML较为简单,他们分别是:详述(Specifications)修饰(Adornments)通用划分(Commondivisions)扩展机制(Extensibilitymechanisms)1324.7公共机制UML具有四种贯穿整个语言且一致应用的公共机①详述(Specifications)在UML中,每个模型元素的图形表示法之后都存在一个详述(规范说明),它以文字的形式描述基本模型元素的语法和语义。例如,在类的图符背后有一个详述,它提供了对该类所拥有的属性、操作(包括完整的特征标记)和行为的全面描述;在视觉上,类的图符可能仅展示了这个详述的一小部分。此外,可能存在着该类的另一个视图,其中提供了一个完全不同的部件集合,但是它仍然与该类的基本详述相一致。UML的图形表示法用来对系统进行可视化;UML的详述用来说明系统的细节。133①详述(Specifications)在UML中,每个模型元②修饰(Adornments)对类的详述可以包含其他细节,例如,它是否是抽象类,或它的属性和操作是否可见。可以把很多这样的细节表示为图形或文字修饰,放到类的基本矩形符号上。例如,下图是一个带有修饰的类,图中表明这个类是一个抽象类,有两个公共操作、一个受保护操作和一个私有操作。UML表示法中的每一个元素都有一个基本符号,可以把各种修饰细节加到这个符号上。134②修饰(Adornments)对类的详述可以包含其他细节,例修饰举例在UML众多的修饰符中,注释是一种最重要的并且能单独存在的修饰符,它是附加在模型元素或元素集上用来表示约束或注解信息的图形符号。图中注释的作用是指出priority()的算法细节在文档exe.doc中。135修饰举例在UML众多的修饰符中,注释是一种最重要的并且能单独③通用划分(Common
divisions)UML提供了事物的抽象的描绘和具体的实例两种两分法表达,被称为公共划分。通常:第一种方法是对类和对象的划分。类是一种抽象,对象是这种抽象的一个具体表现。在UML中,可以对类和对象建立模型,如图所示。在图形上,UML是这样辨别对象的:用与类同样的图形符号来表示对象,并且在对象名的下面画一道线。
在这个图中,有一个名称为Customer的类,它有3个对象,分别为Jan(它被明确地标记为Customer的对象),:Customer(匿名的Customer对象)和Elyse(它在详述中被说明为是一种Customer对象,尽管在这里没有明确地表示出来)。
136③通用划分(Commondivisions)UML提供了事③通用划分(Common
divisions)第二种方法是接口和实现的分离。接口声明了一个合约,而实现则表示了对该合约的具体实施,它负责如实地实现接口的完整语义。在UML中,既可以对接口建模又可以对它们的实现建模,如图所示。在这个图中,有一个名称为SpellingWizard.dll的构件,它实现了接口IUnknown和接口ISpelling,并且还需要一个由其他构件提供的名为IDictionary的接口。137③通用划分(Commondivisions)第二种方法是接③通用划分(Common
divisions)第三种方法是类型和角色的分离。类型声明了实体的种类(如对象、属性或参数),角色描述了实体在语境中的含义(如类、构件或协作等)。任何作为其他实体结构中的一部分的实体(例如属性)都具有两个特性:从它固有的类型派生出一些含义,从它在语境中的角色派生出一些含义。138③通用划分(Commondivisions)第三种方法是类④扩展机制UML提供了一种绘制软件蓝图的标准语言,但是一种闭合的语言即使表达能力再丰富,也难以表示出各种领域中的各种模型在不同时刻所有可能的细微差别。由于这个原因,UML是目标开放的,使人们能够以受控的方式来扩展该语言。UML的扩展机制包括:衍型(Stereotypes)标记值(Taggedvalues)约束(Constraints
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 做护栏合同范例
- 2024年宁波市土地使用权买卖合同
- 分期购买材料付款合同范例
- 2024年加工贸易设备进口合同
- 二手水电安装合同范例
- 个人汽车销售合同范例
- 2024互联网医院医疗服务合作合同
- 2024年度货车司机劳动合同
- 企业做账合同模板
- 单证合同范例
- 建筑施工电动运输车辆进场验收表
- 移动认证考试题库-动环20180418
- 船舶触碰桥梁应急预案
- 江苏省盐城市盐都区实验初中2023-2024学年九年级上学期12月月考数学试题
- 护理礼仪演示课件
- 蒸汽特性数据表
- 《高级会计学(第9版)》习题答案
- 职业生涯规划-软件测试工程师
- 家长会课件:初二上期家长会课件
- Unit1第1课时(SectionA1a2d)(教学设计)九年级英语全一册(人教版)
- 血液透析患者水分控制的健康宣教
评论
0/150
提交评论