第4章面向对象方法-UML.ppt

上传人:s****8 文档编号:82783341 上传时间:2023-03-26 格式:PPT 页数:145 大小:1.56MB
返回 下载 相关 举报
第4章面向对象方法-UML.ppt_第1页
第1页 / 共145页
第4章面向对象方法-UML.ppt_第2页
第2页 / 共145页
点击查看更多>>
资源描述

《第4章面向对象方法-UML.ppt》由会员分享,可在线阅读,更多相关《第4章面向对象方法-UML.ppt(145页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第4 4章章 面向对象方法面向对象方法-UML-UML掌握在创建系统中用于表达信息的基本术语;掌握在创建系统中用于表达信息的基本术语;掌握用于表达模型的用况图、类图、顺序图和状态掌握用于表达模型的用况图、类图、顺序图和状态图。图。本章内容及要求:本章内容及要求:1、引言、引言1)面向对象方法发展概述)面向对象方法发展概述一句话概括地说:面向对象方法是一种以对象、对象关系等一句话概括地说:面向对象方法是一种以对象、对象关系等来构造软件系统模型的系统化方法。可见来构造软件系统模型的系统化方法。可见,面向对象方法的世界面向对象方法的世界观是观是:一切系统都是由对象构成的一切系统都是由对象构成的,它

2、们的相互作用、相互影响它们的相互作用、相互影响,构成了大千世界的各式各样系统构成了大千世界的各式各样系统.面向对象方法面向对象方法-一种特定的软件开发方法学一种特定的软件开发方法学其发展主要经历了:其发展主要经历了:(1)支持编程的面向对象语言支持编程的面向对象语言1967:Dahl和和Nygaard在挪威开发了第一个面向对象语言:在挪威开发了第一个面向对象语言:Simula-6720世纪世纪80年代初,年代初,Smallsalk语言得到广泛应用;语言得到广泛应用;随后出现了随后出现了ObjectiveC、C+和和Eiffel等。等。(2)20世纪世纪80年中期以来,面向对象分析和设计方法学得

3、年中期以来,面向对象分析和设计方法学得到了快速发展,相继提出了很多有关的方法学,典型的有:到了快速发展,相继提出了很多有关的方法学,典型的有:1986:G.Booch的的OOD;1990:P.Coad和和E.Yourdon的的OOA,OOD1991:J.Rumbbaugh的的OMT;1994:Embly的的OSA等。等。期间,形成了以下期间,形成了以下2大学派,即:大学派,即:第一种:以第一种:以“方法(方法(method method)”驱动的方法学。驱动的方法学。基本思想:在给出符号体系的基础上,明确规定基本思想:在给出符号体系的基础上,明确规定 进行的进行的“步骤步骤”,并在每一步中给出

4、,并在每一步中给出 “实施策略实施策略”。代表:代表:P.CoadP.Coad的的“OOAOOA(19901990)”,“OODOOD(9191)”优缺点分析:优缺点分析:优点:容易学习和掌握。优点:容易学习和掌握。缺点:不够灵活,可能对出现的新问题就没有缺点:不够灵活,可能对出现的新问题就没有 办法处理。办法处理。第二第二种:以种:以“模型(模型(model model)”驱动的方法学。驱动的方法学。基本思想:给出模型化概念,即符号体系以及目标基本思想:给出模型化概念,即符号体系以及目标 模型;而不明确规定实现目标的模型;而不明确规定实现目标的“步骤步骤”,但给出一些必要的指导。但给出一些必

5、要的指导。代表:代表:RumbaughRumbaugh 的的“OMTOMT(19911991)”等等 优缺点分析:优缺点分析:优点:比较灵活;。优点:比较灵活;。缺点:与缺点:与OOAOOA相比,不易学习和掌握。相比,不易学习和掌握。(3)OMG发布的发布的UML以及以及USDP(统一软件开发过程)(统一软件开发过程)(A A)9595年,年,Grade Grade BoochBooch 、Jim Jim RumbaughRumbaugh在在OOPSAOOPSA会议上会议上 公布了他们的统一方法(公布了他们的统一方法(0.80.8版);版);(B B)9696年,年,G.BoochG.Booc

6、h 、J.RumbaughJ.Rumbaugh以及以及IvarIvar Jacobson Jacobson “三友三友”,将他们的统一建模语言命名为,将他们的统一建模语言命名为UMLUML;(C C)9797年,年,RationalRational公司发布了公司发布了UMLUML文档文档1.01.0版,作为版,作为OMGOMG 的建议方案;的建议方案;(D D)9898年,在合并不同建议的基础上,年,在合并不同建议的基础上,OMGOMG以其结果以其结果1.11.1版作为一个正式的标准。版作为一个正式的标准。(E E)从此以后,于)从此以后,于19991999年,年,RTFRTF发布了发布了1.

7、31.3版,版,20002000年年9 9月,发布了月,发布了1.41.4版,版,20032003年年3 3月,发布了月,发布了2.02.0版。版。受到业界和学术界广泛关注,特别是受到业界和学术界广泛关注,特别是UML以及相应的支持以及相应的支持工具已在软件开发中得到了广泛的应用。工具已在软件开发中得到了广泛的应用。“在建模语言方面在建模语言方面,UML,UML已成为一种绘制面向对象设计图的已成为一种绘制面向对象设计图的标准工具标准工具,并已传播到非面向对象领域并已传播到非面向对象领域.面向对象以前的主要面向对象以前的主要方法已经消逝方法已经消逝.UML.UML登场了登场了,并且稳居宝座并且稳

8、居宝座.”“统一建模语言统一建模语言UMLUML乃软件设计与需求规约语言乃软件设计与需求规约语言.论述语言论述语言之优劣之优劣,有用户有用户,设计设计,实现等观点实现等观点.这些观点既有区别这些观点既有区别,又有联又有联系系.UML.UML问世以来问世以来,褒贬不一褒贬不一,但其应用广泛但其应用广泛,成绩显著成绩显著,实为具实为具有代表性之建模语言有代表性之建模语言.”摘自摘自UNL 序序,徐家福译徐家福译 2 UML2 UML 1)UML 1)UML概述概述 UML是一种可视化语言,用于:是一种可视化语言,用于:(1 1)规约规约系统的制品;系统的制品;(2 2)构造构造系统的制品;系统的制

9、品;(3 3)建立建立系统制品的文档。系统制品的文档。UML应用范围应用范围 UMLUML作为一种一般性的语言:作为一种一般性的语言:(1 1)可用于对象方法和构件方法;)可用于对象方法和构件方法;(2 2)可用于)可用于 所有应用领域所有应用领域 (例如,航空航天、财政、通讯等)(例如,航空航天、财政、通讯等)不同的实现平台不同的实现平台 (例如,例如,J2EE、.NET等等)运行平台运行平台(包括包括VB(VC)、中间件、)、中间件、J2EE、.NET、框架等、框架等)应用系统应用系统祢补两者之间的祢补两者之间的“距离距离”-建立不同抽象层次的术语空建立不同抽象层次的术语空间和模型表示工具

10、间和模型表示工具-支持多视角地建立系统模型支持多视角地建立系统模型这意味着:这意味着:UMLUML是系统分析和设计的工具是系统分析和设计的工具。即就软件开发方法学而言,即就软件开发方法学而言,UMLUML给出了方法学中不同抽象层次的给出了方法学中不同抽象层次的术语以及表达模型的工具。术语以及表达模型的工具。表达模型的工具表达模型的工具-USECASE图图需求获取层需求获取层表达模型的工具表达模型的工具-类图、交互图等类图、交互图等需求分析层需求分析层表达模型的工具表达模型的工具-类图、交互图等类图、交互图等设计层设计层表达模型的工具表达模型的工具2)2)面向对象方法术语面向对象方法术语/符号符

11、号 基于基于面向对象方法的面向对象方法的世界观世界观,即即“大千世界是由对象组成的,大千世界是由对象组成的,对象有其自己的属性和运动规律,对象之间的相互作用构成了对象有其自己的属性和运动规律,对象之间的相互作用构成了客观世界各种各样的系统。客观世界各种各样的系统。”为了支持软件开发为了支持软件开发,面向对象方法面向对象方法主要提供了两类术语主要提供了两类术语:一类是表达结构化事物的术语;一类是表达结构化事物的术语;一类是表达关系的术语。一类是表达关系的术语。注:注:除了这两类术语之外,除了这两类术语之外,为了控制信息组织的复杂性,还引入了用于组织特定对象结构的包。为了控制信息组织的复杂性,还引

12、入了用于组织特定对象结构的包。同样做一类比,一个包相当一个可管理的同样做一类比,一个包相当一个可管理的“预制块预制块”。为了使建造的系统模型容易理解,引入了术语为了使建造的系统模型容易理解,引入了术语-注解,用于对模型增注解,用于对模型增加一些辅助性说明。加一些辅助性说明。4.1 UML4.1 UML术语表术语表 类与对象类与对象 -体现数据抽象体现数据抽象定义与表示:定义与表示:类:一组具有相同属性、操作、关系和语义的对象类:一组具有相同属性、操作、关系和语义的对象的描述。的描述。对象对象 :是类的一个实例是类的一个实例.通通常常把把类类表表示示为为具具有有三三个个栏栏目目的的矩矩形形,每每

13、个个栏栏目目分分别别代代表表类类名名、属性和操作。例如:属性和操作。例如:类的一种表示类的一种表示类的其它种表示类的其它种表示其中,其中,类名使用黑体字,第一个字母通常要大写类名使用黑体字,第一个字母通常要大写,并位于第并位于第 一栏的中央一栏的中央;实践中实践中,类名往往是从正被建模系统的词汇表中提取类名往往是从正被建模系统的词汇表中提取 的简单名词或名词短语的简单名词或名词短语;类可以是抽象类,即没有实例的类类可以是抽象类,即没有实例的类,类名采用斜体字类名采用斜体字.例如:例如:WindowWindowsize:Areavisibility:Booleandisplay()hide()属

14、性(属性(attributeattribute)属性是类的一个命名特性,由该类的所有对象所共享,用于属性是类的一个命名特性,由该类的所有对象所共享,用于表达对象状态的数据。表达对象状态的数据。3 3点说明点说明 一个属性往往具有所属的类型一个属性往往具有所属的类型,用于描述该特性的实例可用于描述该特性的实例可以取值的范围。以取值的范围。类的一个对象对每一个属性应有特定的值。类的一个对象对每一个属性应有特定的值。一个类可以有多个属性,也可以没有属性。一个类可以有多个属性,也可以没有属性。表示表示:操作(操作(operationoperation)操作是服务的一个实现,由该类的任意对象为其行为所操

15、作是服务的一个实现,由该类的任意对象为其行为所要求的。换言之,一个操作抽象了一个对象所要做的事情,要求的。换言之,一个操作抽象了一个对象所要做的事情,并且该类的其它对象也要做这件事情。并且该类的其它对象也要做这件事情。2 2点说明:点说明:调用调用一个对象上的操作可能会改变该对象的数据或状态。一个对象上的操作可能会改变该对象的数据或状态。一个类可以有多个操作,也可以没有操作。一个类可以有多个操作,也可以没有操作。Rectangleadd()grow()move()isEmpty表示:表示:其中:其中:在实际应用中,操作名往往是描述其所在类的行为的动词在实际应用中,操作名往往是描述其所在类的行为

16、的动词或动词短语或动词短语 在操作名中,除第一个词之外,其他每个词的第一个字母在操作名中,除第一个词之外,其他每个词的第一个字母要大写要大写 可以通过给出操作的特征标记进一步描述之,特征标记通可以通过给出操作的特征标记进一步描述之,特征标记通常包括参数名、类型和默认值常包括参数名、类型和默认值;如果该操作是一个函数,那么如果该操作是一个函数,那么其特征标记还包括返回类型。如下所示:其特征标记还包括返回类型。如下所示:TemperatureSensorreset()setAlarm(t:temperature)value():Temperature责任(责任(responsibilityresp

17、onsibility)一个类一个类承诺的任务承诺的任务(contractcontract)或职责)或职责(obligation).(obligation).4 4点说明:点说明:类的责任表达了定义类的责任表达了定义一个类的目的。一个类的目的。例如:例如:wallwall类类 其目的是为了了解墙的高度、宽度和厚度。其目的是为了了解墙的高度、宽度和厚度。给出一个类的责任,是建立该类模型的起始点。给出一个类的责任,是建立该类模型的起始点。实践中,每个结构良好的类至少要有一个职责,但最多实践中,每个结构良好的类至少要有一个职责,但最多 也只能是当时所能考虑到的几个。也只能是当时所能考虑到的几个。例如:

18、例如:一个接口一个接口“调制解调器调制解调器”有四个功能:有四个功能:interfacemodempublicvoiddial(stringpno);publicvoidhangup();publicvoidsend(charc);publicvoidrecv();根据责任的定义,可以认为该接口有两个职责:根据责任的定义,可以认为该接口有两个职责:连接处理(连接处理(publicvoiddial(stringpno);publicvoidhangup();)数据通信(数据通信(publicvoidsend(charc);publicvoidrecv();)显然,以上设计违背了:单一显然,以上设

19、计违背了:单一职责职责原则(原则(SRP),即:),即:就一个类而言,应该仅有一个引起就一个类而言,应该仅有一个引起它变化的原因。它变化的原因。这条原则被称为内聚性原则。这条原则被称为内聚性原则。类的责任是有类中定义的属性和操作实现的。在精化类类的责任是有类中定义的属性和操作实现的。在精化类 的模型时,需将责任转换为一组能够很好地完成责任的的模型时,需将责任转换为一组能够很好地完成责任的 属性和操作。属性和操作。表示:表示:其他特征:其他特征:除了规约以上提到的属性、操作和责任外,有时还需要规除了规约以上提到的属性、操作和责任外,有时还需要规约类的其它特征,例如属性和操作的可见性,操作的多约类

20、的其它特征,例如属性和操作的可见性,操作的多态性等。态性等。属性和操作的可见性属性和操作的可见性 操作的多态性操作的多态性 Rectangleadd()grow()move()isEmptyRectangleadd()grow()move()算法算法isEmptyRectangleadd()grow()move()算法算法isEmpty类在建模中的主要用途类在建模中的主要用途模型化模型化一个系统中的词汇一个系统中的词汇要做以下工作:要做以下工作:针对用户的问题或实现者的解决方案,标识使用针对用户的问题或实现者的解决方案,标识使用UMLUML可可描述其中的概念,作为一个类。描述其中的概念,作为一

21、个类。注:其中可使用注:其中可使用USE CASEUSE CASE分析技术。分析技术。标识其责任集。其中应确保每一个类通过这一责标识其责任集。其中应确保每一个类通过这一责任集予以清晰地定义,并使这些责任在类之间得到了很任集予以清晰地定义,并使这些责任在类之间得到了很好地均衡。好地均衡。为每个类的责任的实现,提供了所需的属性和操作。为每个类的责任的实现,提供了所需的属性和操作。例如:一个零售系统例如:一个零售系统模型化模型化系统中的责任分布系统中的责任分布 其目标是:均衡系统中每一个类的责任,避免类过大或过其目标是:均衡系统中每一个类的责任,避免类过大或过小。过大小。过大-难于复用;过小难于复用

22、;过小-难于理解和管理。难于理解和管理。要做以下工作:要做以下工作:为了完成某些行为,标识一组紧密协同工作的类。为了完成某些行为,标识一组紧密协同工作的类。对以上的每个类,标识它的一组职责。对以上的每个类,标识它的一组职责。从整体上观察这些类,把其中职责过多的类分解为一些从整体上观察这些类,把其中职责过多的类分解为一些教小抽象,而把责任过于锁碎的类合并为一个较大的类,教小抽象,而把责任过于锁碎的类合并为一个较大的类,继之重新分配责任。继之重新分配责任。考虑这些类的相互协作方式,调整它们的责任,使协作考虑这些类的相互协作方式,调整它们的责任,使协作中没有哪个类的职责过多或过少。中没有哪个类的职责

23、过多或过少。例如:例如:模型化模型化基本类型基本类型对简单类型建模,要做以下工作:对简单类型建模,要做以下工作:使用适当衍型的类,模型化所抽象为类型或枚举类型;其使用适当衍型的类,模型化所抽象为类型或枚举类型;其中,若需要详述与该类型相关的值域,可使用约束。中,若需要详述与该类型相关的值域,可使用约束。例如:例如:类在使用中应注意的问题类在使用中应注意的问题每个类都应是某个有形的事物或概念的抽象。一个结构良好的每个类都应是某个有形的事物或概念的抽象。一个结构良好的类,应符合以下条件:类,应符合以下条件:是对问题域或解域中的事物的明确抽象。是对问题域或解域中的事物的明确抽象。嵌入了一个小的、明确

24、定义的责任集,并能很好地实现之。嵌入了一个小的、明确定义的责任集,并能很好地实现之。清晰地分离了抽象的规约和实现。清晰地分离了抽象的规约和实现。接口接口接口(接口(interface)是操作的一个集合,其中每个操作描述了)是操作的一个集合,其中每个操作描述了类或构件的一个服务。类或构件的一个服务。表示:表示:可以用带有分栏和关键字可以用带有分栏和关键字的矩形符号来表的矩形符号来表示接口。其中:示接口。其中:在操作分栏中给出接口支持的操作列表在操作分栏中给出接口支持的操作列表 接口的属性分栏总是空的接口的属性分栏总是空的 也可以用小圆圈来表示接口:也可以用小圆圈来表示接口:注:该图表明,注:该图

25、表明,类类String支支持持接接口口Hashable、Comparable,而而类类HashTable使使 用用 接接口口Hashable、Comparable。其中:其中:接口名放在圆圈的下面,并用实线把圆圈连接到支持它接口名放在圆圈的下面,并用实线把圆圈连接到支持它 的类目上。的类目上。这意味着这个类目要提供在接口中的所有操这意味着这个类目要提供在接口中的所有操 作,其实类目提供的操作可能要更多。作,其实类目提供的操作可能要更多。把从类目到它支持的接口的实现关系显示为带有实把从类目到它支持的接口的实现关系显示为带有实三角箭头的虚线。三角箭头的虚线。用带有用带有useuse标记的虚线箭头表

26、示类目(在箭头标记的虚线箭头表示类目(在箭头尾部)使用或者需要接口提供的操作。尾部)使用或者需要接口提供的操作。显然,要显示接口的操作列表的话,就不能使用圆圈表显然,要显示接口的操作列表的话,就不能使用圆圈表示法,而应该使用矩形表示法。示法,而应该使用矩形表示法。几点说明几点说明(仅以类为例仅以类为例)接口只描述类接口只描述类(构件或子系统构件或子系统)的外部可见操作,并不描述的外部可见操作,并不描述 内部结构。内部结构。通常,接口仅描述一个特定类的有限行为。接口没有实现,通常,接口仅描述一个特定类的有限行为。接口没有实现,接口也没有属性、状态或者关联,接口只有操作。接口也没有属性、状态或者关

27、联,接口只有操作。-接口在形式上等价于一个没有属性、没有方法而只有接口在形式上等价于一个没有属性、没有方法而只有 抽象操作的抽象类。抽象操作的抽象类。接口只可以被其它类目使用,而其本身不能访问其它类目。接口只可以被其它类目使用,而其本身不能访问其它类目。可以对接口使用泛化关系。可以对接口使用泛化关系。关于其它可表达结构化事物的术语符号关于其它可表达结构化事物的术语符号协作协作(collaboration):定义了一个交互,其中由一组角):定义了一个交互,其中由一组角色和其它元素构成的,它们的共同工作提供了某种协作行为。色和其它元素构成的,它们的共同工作提供了某种协作行为。表示:表示:点说明:点

28、说明:协作具有结构、行为和维度。协作具有结构、行为和维度。由于由于一个给定的类或对象可以参与多个协作,因此协一个给定的类或对象可以参与多个协作,因此协作表现了系统细化的构成模式。作表现了系统细化的构成模式。用况(用况(usecase)是对一组动作序列的描述,系统执行这些动作应产生对特是对一组动作序列的描述,系统执行这些动作应产生对特定的参与者有值的、可观察的结果。定的参与者有值的、可观察的结果。表示:表示:点说明:点说明:用况用于构造模型中的行为。用况用于构造模型中的行为。用况是通过协作予以细化的。用况是通过协作予以细化的。主动类(主动类(activeclass)是一种至少具有一个进程或线程的

29、类,因此它能够启动控制是一种至少具有一个进程或线程的类,因此它能够启动控制活动。活动。表示:表示:主要特性:主要特性:主动类对象的行为通常与其他元素的行为是并发的。主动类对象的行为通常与其他元素的行为是并发的。构件(构件(component)是系统设计的模块化部件,通过外部接口隐藏了它的内部实是系统设计的模块化部件,通过外部接口隐藏了它的内部实现。现。表示:表示:3点说明;点说明;在一个系统中,共享相同接口的构件可以相互替代,但其在一个系统中,共享相同接口的构件可以相互替代,但其中要保持相同的逻辑行为。中要保持相同的逻辑行为。可以结合连接件来表示构件的实现。可以结合连接件来表示构件的实现。构件

30、可以包含更小的构件。构件可以包含更小的构件。制品(制品(artifact)是系统中物理的、可替代的部件,其中包含物理信息是系统中物理的、可替代的部件,其中包含物理信息(比特比特).表示:表示:2点说明点说明在一个系统中,可能会存在不同类型的部署制品,例如源在一个系统中,可能会存在不同类型的部署制品,例如源代码文件代码文件、可执行程序和脚本等。可执行程序和脚本等。制品通常代表对源代码信息或运行时信息的一个物理打包制品通常代表对源代码信息或运行时信息的一个物理打包artifactWindow.dll注:以上个术语:主动类、构件和结点,都和类是相似的,注:以上个术语:主动类、构件和结点,都和类是相似

31、的,即它们描述了一组具有相同属性、操作和相同语义的实体。即它们描述了一组具有相同属性、操作和相同语义的实体。节点(节点(node)是在运行时存在的物理元素,通常它表示一种具有记忆能是在运行时存在的物理元素,通常它表示一种具有记忆能力和处理能力的计算机资源。力和处理能力的计算机资源。表示:表示:1点说明:点说明:一个构件可以驻留在一个节点中,也可以从一个一个构件可以驻留在一个节点中,也可以从一个节点移到另一个节点。节点移到另一个节点。Server小结小结 以上八个术语以上八个术语(模型化概念模型化概念)-类、接口、协作、用况、主动类、构件、制品、节点,类、接口、协作、用况、主动类、构件、制品、节

32、点,是可包含在一个是可包含在一个UML模型中的基本模型化元素,用于抽象模型中的基本模型化元素,用于抽象客观世界中的任何实体对象客观世界中的任何实体对象 它们存在一些变体,例如:它们存在一些变体,例如:类的变体类的变体-参与者、信号、实用程序参与者、信号、实用程序;主动类的变体主动类的变体-进程和线程;进程和线程;制品的变体制品的变体-应用、文档、库、页和表等。应用、文档、库、页和表等。在在UML中,把以上结构化概念统称为类目(中,把以上结构化概念统称为类目(classifier)为为了了组组织织类类目目,控控制制信信息息组组织织和和文文档档组组织织的的复复杂杂性性,UML,UML引引入入了术语

33、了术语-包。包。-语义语义 包包是是模模型型元元素素的的一一个个分分组组。一一个个包包本本身身可可以以被被嵌嵌套套在在其其它它包包中,并且可以含有子包和其它种类的模型元素。中,并且可以含有子包和其它种类的模型元素。一个包元素对外的可见性,可以通过在该元素名字前加上可一个包元素对外的可见性,可以通过在该元素名字前加上可见性符号(见性符号(+:公共的,:公共的,-:私有的,:私有的,#:受保护的)来指示。:受保护的)来指示。-表示表示 通通常常,在在大大矩矩形形中中描描述述包包的的内内容容,而而把把该该包包的的名名字字放放在在左上角的小矩形中。左上角的小矩形中。-包之间的关系包之间的关系 标准依赖

34、标准依赖:访问依赖和引入依赖。作用:使一个包可以访问:访问依赖和引入依赖。作用:使一个包可以访问和引入其它包。和引入其它包。注注:包间的依赖包间的依赖通常隐含了各包中元素之间存在着的一个或通常隐含了各包中元素之间存在着的一个或 多个依赖。多个依赖。可可以以把把所所包包含含的的元元素素画画在在包包的的外外面面,通通过过符符号号,将将这这些些元素与该包相连。元素与该包相连。这时可把该包的名字放在大矩形中。这时可把该包的名字放在大矩形中。引入引入:import获得访问并将目标名字空间中的那些具有可见性的名字获得访问并将目标名字空间中的那些具有可见性的名字 引入到客户包(即对它们的引用可不需要一个路径

35、名)引入到客户包(即对它们的引用可不需要一个路径名)访问访问:accessaccess 目标包中具有可见性的内容可以被客户包引用,或被嵌目标包中具有可见性的内容可以被客户包引用,或被嵌套在客户包中的其它包引用。套在客户包中的其它包引用。注意,一个访问注意,一个访问:不修改客户的名字空间不修改客户的名字空间;不不以任何其它方式自动创建一些引用以任何其它方式自动创建一些引用 访问仅准予建立一些引用。访问仅准予建立一些引用。注注:如果在提出访如果在提出访问的那个包中还问的那个包中还存在包,那么嵌存在包,那么嵌套在其中的套在其中的包能得到与外层包能得到与外层包同样的访问。包同样的访问。(2)(2)、表

36、达关系的术语、表达关系的术语 在在UMLUML中,有以下中,有以下4 4种关系:种关系:关联关联(association)泛化(泛化(generalization)实现(实现(realization)依赖依赖(dependency)这这4 4种关系是种关系是UMLUML的基本关系构造块,用于表达类目的基本关系构造块,用于表达类目 之间的关系,以构造一个结构良好的之间的关系,以构造一个结构良好的UMLUML模型。模型。关联关联(association)定义:定义:关联是类目之间的结构关系,描述了一组链(关联是类目之间的结构关系,描述了一组链(linkslinks),链是对象之间的连接(链是对象之

37、间的连接(connectionconnection)。例如:)。例如:注:如一个关联只连接两个类目,称为二元关联;注:如一个关联只连接两个类目,称为二元关联;如一个关联连接如一个关联连接n n个类目,称为个类目,称为n n元关联元关联.关联的语义表达(关联的语义表达(6点):点):u关联名关联名(name):(name):关联可以有一个名字,用于描述该关联的关联可以有一个名字,用于描述该关联的“涵涵义义”,为了避免该关联,为了避免该关联涵义涵义上的歧义性,可给出其关联方向。上的歧义性,可给出其关联方向。如上图所示。如上图所示。角色(角色(rolerole):当一个类参与一个关联时,有一个特定角

38、色。当一个类参与一个关联时,有一个特定角色。在类的一个关联中,可以显式地命名该角色在类的一个关联中,可以显式地命名该角色,如下所示:如下所示:注:注:在明确给出关联端点名的情况下,通常可以不给出该关联在明确给出关联端点名的情况下,通常可以不给出该关联名但若一个类有多个关联,可使用关联名或端点名来区分名但若一个类有多个关联,可使用关联名或端点名来区分它们若一个类有多个端点,可使用端点名来区分它们它们若一个类有多个端点,可使用端点名来区分它们 同一个类可以在其它关联中扮演相同或不同的角色同一个类可以在其它关联中扮演相同或不同的角色多重性(多重性(multiplicitymultiplicity):

39、类中对象参与一个关联的数目,类中对象参与一个关联的数目,称为该关联角色的多重性。例如:称为该关联角色的多重性。例如:c1c2c3c4c5c6c7p1p3p2p4p5拥有关系拥有关系:,,模型化为模型化为1.20.1拥有拥有多重性的表达:多重性的表达:聚合(聚合(aggregationaggregation):一种特殊形式的关联,表达一种一种特殊形式的关联,表达一种“整体整体 /部分部分”关系。即一个类表示了一个大的事物,它是有一些小关系。即一个类表示了一个大的事物,它是有一些小的事物(部分)组成的。的事物(部分)组成的。注意:不论是整体类还是部分类,它们在概念上是处于同一注意:不论是整体类还是

40、部分类,它们在概念上是处于同一个层次的。个层次的。-在建模实践中在建模实践中,这是区分是否把一类事物标识为一个部分类这是区分是否把一类事物标识为一个部分类还是把它标识为一个类的属性的基本准则还是把它标识为一个类的属性的基本准则.组合(组合(compositioncomposition)定义:定义:A A form form of of aggregation aggregation which which requires requires that that a a part part instance instance be be included included in in at at

41、 most most one one composite composite at at a a time,andtime,and that that the the composite composite object object is is responsible responsible for for the the creation creation and and destruction destruction of of the the parts.parts.Composition Composition may be recursive.may be recursive.Sy

42、nonym:composite aggregation.Synonym:composite aggregation.Composite:AComposite:A class class that that is is related related to to one one or or more more classes by a composition relationship.classes by a composition relationship.点说明:点说明:组合是聚合的一种形式。部分和整体之间具有很强的组合是聚合的一种形式。部分和整体之间具有很强的“属属 于于”关系,具有一致的

43、生存期关系,具有一致的生存期;组合的末端,其多重性显然不能超过组合的末端,其多重性显然不能超过1 1;在一个组合中,由一个链所连接的对象而构成的任何在一个组合中,由一个链所连接的对象而构成的任何 元组,必须都属于同一个容器对象元组,必须都属于同一个容器对象;在一个组合中,其部分可以包含一些类和关联;根据需在一个组合中,其部分可以包含一些类和关联;根据需 要,也可以把它们规约为关联类。要,也可以把它们规约为关联类。该例给出了三种表示组合的方法。该例给出了三种表示组合的方法。其其中中,类类WindowWindow由由类类SilderSilder(角角色色为为ScrollbarScrollbar)、

44、HeaderHeader(角色为(角色为titletitle)和和PanelPanel(角色为(角色为bodybody)组成。)组成。表示:表示:表表示示组组合合的的不同方法不同方法 限定符:限定符:一一个个限限定定符符是是一一个个关关联联的的属属性性或或属属性性表表,这这些些属属性性的的值值将将对该关联相关的对象集做了一个划分。对该关联相关的对象集做了一个划分。例如:例如:左图的限定符有一个属性左图的限定符有一个属性account#account#,表明:在一个银行中,表明:在一个银行中,一个帐户对应一个用户,或没有对应人员。一个帐户对应一个用户,或没有对应人员。右图的限定符有两个属性,它们

45、与右图的限定符有两个属性,它们与ChessboardChessboard一起确定了一起确定了 SquareSquare,且,且 SquareSquare是其组成部分。是其组成部分。关联类关联类一一种种模模型型元元素素,它它有有关关联联和和类类的的特特性性。一一个个关关联联类类,可可以以被被看看作作是是一一个个关关联联,但但还还有有类类的的特特性性;或或被被看看作作是是一一个个类类,但但有关联的特性。例如:有关联的特性。例如:companyperson0.1*Jobsalaryemployeremployee*Job 1.*bossmanagesworker注意:注意:如果关联类只有属性而没有操

46、作或其他关联,名字可以显示如果关联类只有属性而没有操作或其他关联,名字可以显示在在关关联联路路径径上上,从从关关联联类类符符号号中中省省去去,以以强强调调其其“关关联联性性质质”。如果它有操作和其他的关联,那么可以省略路径中的名字,如果它有操作和其他的关联,那么可以省略路径中的名字,并将他们放在类的矩形中,以强调其并将他们放在类的矩形中,以强调其“类性质类性质”。在关联路径的两端可能都具有通常的附属信息,类符号也可在关联路径的两端可能都具有通常的附属信息,类符号也可以具有通常的内容,但在虚线上没有附属信息。以具有通常的内容,但在虚线上没有附属信息。尽管把一个关联类画成一个关联和一个类,但它仍然

47、是一个尽管把一个关联类画成一个关联和一个类,但它仍然是一个单一的模型元素。单一的模型元素。泛化(泛化(generalization)定义:定义:泛化是一般性事物(称为超类或父类)和它的较为特殊种类泛化是一般性事物(称为超类或父类)和它的较为特殊种类(称为子类)之间的一种关系,有时称为(称为子类)之间的一种关系,有时称为“is-a-kind-ofis-a-kind-of”关关系。系。4点说明:点说明:子类可继承父类的属性和操作,并可有更多的属性和操作;子类可继承父类的属性和操作,并可有更多的属性和操作;子类可以替换父类的声明;子类可以替换父类的声明;若子类的一个操作的实现覆盖了父类同一个操作的实

48、现,若子类的一个操作的实现覆盖了父类同一个操作的实现,这种情况被成为多态性,但两个操作必须具有相同的名字这种情况被成为多态性,但两个操作必须具有相同的名字 和参数。和参数。一个类可以有一个类可以有0 0个、个、1 1个或多个父类。没有父类且最少有一个个或多个父类。没有父类且最少有一个子类的类被称为根类或基类;没有子类的类称为叶子类。如果子类的类被称为根类或基类;没有子类的类称为叶子类。如果一个类只有一个父类,则说它使用了单继承;如果一个类有多一个类只有一个父类,则说它使用了单继承;如果一个类有多个父类,则说它使用了多继承。个父类,则说它使用了多继承。注:在大多数情况中,用类和接口之间的泛化来表

49、明继承关系。在注:在大多数情况中,用类和接口之间的泛化来表明继承关系。在UML中,也可在其他类目之间创建泛化,例如在结点之间。中,也可在其他类目之间创建泛化,例如在结点之间。表示:表示:分离表示法分离表示法共享表示法共享表示法细化(细化(realization)定义:定义:细化是类目之间的一种语义关系,其中一个类目规细化是类目之间的一种语义关系,其中一个类目规约了保证另一个类目执行的契约。约了保证另一个类目执行的契约。说明:说明:在以下在以下2 2个地方会使用实现关系:个地方会使用实现关系:接口与实现它们的类和构件之间;接口与实现它们的类和构件之间;用况与实现它们的协作之间。用况与实现它们的协

50、作之间。表示:表示:依赖依赖定义;定义;依赖是一种使用关系,用于描述一个事物(如类依赖是一种使用关系,用于描述一个事物(如类WindowWindow)使用另一事物(如类)使用另一事物(如类EventEvent)的信息和服务。)的信息和服务。3点说明:点说明:在大多数情况里,使用依赖来描述一个类使用另一个的操在大多数情况里,使用依赖来描述一个类使用另一个的操 作;作;如果被使用的类发生变化,那么另一个类的操作也会受到如果被使用的类发生变化,那么另一个类的操作也会受到 影响;影响;依赖可用于其它事物之间,例如注解之间和包之间。依赖可用于其它事物之间,例如注解之间和包之间。表示:一条有向虚线。例如:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁