第4章面向对象方法-UML.ppt
《第4章面向对象方法-UML.ppt》由会员分享,可在线阅读,更多相关《第4章面向对象方法-UML.ppt(145页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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标记的虚线箭头表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 方法 UML
限制150内