面向对象分析与设计 .ppt
《面向对象分析与设计 .ppt》由会员分享,可在线阅读,更多相关《面向对象分析与设计 .ppt(87页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向面向面向面向对对象分析与象分析与象分析与象分析与设计设计 现在学习的是第1页,共87页本章重点本章重点面向对象方法产生和发展面向对象方法产生和发展面向对象方法产生和发展面向对象方法产生和发展 1面向对象方法的基本概念面向对象方法的基本概念面向对象方法的基本概念面向对象方法的基本概念 2统一建模语言统一建模语言统一建模语言统一建模语言 3面向对象设计面向对象设计面向对象设计面向对象设计 5面向对象分析和设计案例面向对象分析和设计案例面向对象分析和设计案例面向对象分析和设计案例6面向对象分析面向对象分析面向对象分析面向对象分析 4现在学习的是第2页,共87页11.1面向对象方法的形成与发展面向
2、对象方法的形成与发展 11.1.111.1.1面向对象方法的发展史面向对象方法的发展史l2020世纪世纪6060年代末,年代末,Simula67Simula67语言。语言。l7070年代到年代到8080年代,年代,SmalltalkSmalltalk语言。语言。l8080年代中期到年代中期到9090年代,年代,C+C+,Object PascalObject Pascal、JavaJava等。等。l8080年代后年代后 ,BoochBooch提出的提出的BoochBooch方法;方法;JacobsonJacobson提出的提出的OOSEOOSE方法方法 ;RumbaughRumbaugh提出的
3、提出的OMTOMT方法。方法。l9090年代中期年代中期 ,统一建模语言(,统一建模语言(Unified Modeling LanguageUnified Modeling Language,UMLUML)现在学习的是第3页,共87页11.1面向对象方法的形成与发展(续)面向对象方法的形成与发展(续)11.1.211.1.2面向对象方法的基本原理面向对象方法的基本原理 OOOO方法强调从方法强调从“问题域问题域”到到“实现域实现域”的映射应采用一种直接的映射应采用一种直接和自然的映射方法,使实现域保持了问题域的本来面目,没有和自然的映射方法,使实现域保持了问题域的本来面目,没有对问题域造成扭曲
4、。这是对问题域造成扭曲。这是OOOO方法最突出的优点。方法最突出的优点。OOOO方法以对象为中心,强调对象是对客观事物的正确抽象,方法以对象为中心,强调对象是对客观事物的正确抽象,是构成软件系统的基本单位。对象是由属性和服务组成的。将是构成软件系统的基本单位。对象是由属性和服务组成的。将具有相同属性和服务的对象归为一类,类是这些对象的抽象描具有相同属性和服务的对象归为一类,类是这些对象的抽象描述。通过继承机制简化了对系统的构造和描述。通过消息实现述。通过继承机制简化了对系统的构造和描述。通过消息实现了对象的动态联系。通过关联实现对象的静态联系。了对象的动态联系。通过关联实现对象的静态联系。现在
5、学习的是第4页,共87页11.2面向对象方法的主要概念面向对象方法的主要概念11.2.111.2.1对象对象1 1、对象、对象 对象是系统中用来描述客观事物的一个实体,一个对象对象是系统中用来描述客观事物的一个实体,一个对象由一组属性和对这组属性进行操作的一组服务构成。由一组属性和对这组属性进行操作的一组服务构成。2 2、属性、属性 属性是用来描述对象静态特征的一个数据项。属性是用来描述对象静态特征的一个数据项。3 3、服务、服务 服务是用来描述对象动态特征的一个操作序列。服务是用来描述对象动态特征的一个操作序列。现在学习的是第5页,共87页11.2面向对象方法的主要概念(续)面向对象方法的主
6、要概念(续)11.2.211.2.2类类 类是指具有相同属性和服务的一组相似对象的集合。类是指具有相同属性和服务的一组相似对象的集合。11.2.311.2.3封装封装 封装(封装(EncapsulationEncapsulation)是指通过对象将属性和服务组合)是指通过对象将属性和服务组合起来,构成一个不可分割的独立的系统单位,并尽可能隐蔽起来,构成一个不可分割的独立的系统单位,并尽可能隐蔽其内部细节。其内部细节。11.2.411.2.4继承继承 继承(继承(InheritanceInheritance)是指特殊类的对象可自动地拥有其一)是指特殊类的对象可自动地拥有其一般类定义的全部属性与服
7、务。般类定义的全部属性与服务。现在学习的是第6页,共87页11.2面向对象方法的主要概念(续)面向对象方法的主要概念(续)11.2.511.2.5消息消息 消息(消息(MessageMessage)是指向对象发出的服务请求。)是指向对象发出的服务请求。11.2.611.2.6关系关系u一般特殊关系一般特殊关系 又称作继承关系或又称作继承关系或“is-a-kind-ofis-a-kind-of”关系。关系。u关联关系关联关系 关联(关联(AssociationAssociation)表示一个对象了解其它对象的程度。)表示一个对象了解其它对象的程度。现在学习的是第7页,共87页11.2面向对象方法
8、的主要概念(续)面向对象方法的主要概念(续)u整体部分关系整体部分关系 整体部分关系又称作组合关系或整体部分关系又称作组合关系或“is-a-part-ofis-a-part-of”关系。关系。u行为依赖关系行为依赖关系 行为依赖关系描述对象之间的动态联系,即:若一个对象在执行行为依赖关系描述对象之间的动态联系,即:若一个对象在执行自己的服务时,需要向另外的一个对象发送消息请求它的某种服务,自己的服务时,需要向另外的一个对象发送消息请求它的某种服务,则称这两个对象之间存在着行为依赖关系。则称这两个对象之间存在着行为依赖关系。11.2.711.2.7多态性多态性 对象的多态性(对象的多态性(Pol
9、ymorphismPolymorphism)是指在一般类中定义的属性或服务)是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。现在学习的是第8页,共87页11.2面向对象方法的主要概念(续)面向对象方法的主要概念(续)11.2.811.2.8永久对象永久对象 永久对象(永久对象(Persistent ObjectPersistent Object),就是其生存期可以,就是其生存期可以超越程序的执行时间而长期存在的对象。超越程序的执行时间而长期存在的对象。11.2.911.2.9主动对象主动对象1
10、 1、被动对象、被动对象 对象的每一个服务只有在一条消息的驱动下才被执行,对象的每一个服务只有在一条消息的驱动下才被执行,这样的对象称为被动对象(这样的对象称为被动对象(Passive ObjectPassive Object)。)。2 2、主动对象、主动对象 主动对象(主动对象(Active ObjectActive Object)就是至少有一个服务不需要接收)就是至少有一个服务不需要接收消息就能主动执行(称为主动服务)的对象。消息就能主动执行(称为主动服务)的对象。现在学习的是第9页,共87页11.3统一建模语言统一建模语言UMLUML11.3.1UML11.3.1UML的发展与作用的发展
11、与作用 (一)(一)UMLUML发展史发展史n19951995年年1010月同在美国月同在美国RationalRational软件公司工作的软件公司工作的G.BoochG.Booch和和J.RumbaughJ.Rumbaugh把他们各自提出的把他们各自提出的BoochBooch方法和方法和OMTOMT方法结合起来,形成一方法结合起来,形成一种统一方法,即种统一方法,即UMUM(Unified MethodUnified Method)0.80.8。nOOSEOOSE的提出者的提出者I.JacobsonI.Jacobson也加入了这一行列,经过三人的密切合作,也加入了这一行列,经过三人的密切合作
12、,于于19961996年年6 6月和月和1010月先后发布了二义性较少的月先后发布了二义性较少的UML0.9UML0.9和和0.910.91版本。版本。n19971997年年1 1月,他们推出了月,他们推出了UML1.0UML1.0版,并提交到对象管理组织(版,并提交到对象管理组织(Object Object Management GroupManagement Group,OMGOMG)作为初步的提案申请。)作为初步的提案申请。现在学习的是第10页,共87页11.3统一建模语言统一建模语言UMLUML(续)(续)n19971997年年9 9月月1 1日提出了日提出了UML1.1UML1.1,
13、并作为最终提案提交到,并作为最终提案提交到OMGOMG,该,该提案在提案在19971997年年1111月被月被OMGOMG正式采纳为正式采纳为OOOO建模的标准语言。建模的标准语言。nOMGOMG平台技术委员会批准成立平台技术委员会批准成立UMLUML修订任务组,先后制定改进修订任务组,先后制定改进版本版本,包括包括:UML 1.2:UML 1.2、UML1.3 UML1.3、UML1.4 UML1.4。并将。并将UMLl.3UMLl.3作为其最作为其最终草案,于终草案,于19991999年年6 6月提交给月提交给OMGOMG组织委员会和平台技术委员会,并组织委员会和平台技术委员会,并获得批准
14、。获得批准。n目前最高版本是目前最高版本是UML2.0 UML2.0 现在学习的是第11页,共87页11.3统一建模语言统一建模语言UMLUML(续)(续)(二)(二)UMLUML的主要作用的主要作用u作为一种建模语言,作为一种建模语言,UMLUML定义了建立系统模型所需的概念及其标准定义了建立系统模型所需的概念及其标准的可视化图形表示符号。但是它并不介绍如何进行系统建模。因此,的可视化图形表示符号。但是它并不介绍如何进行系统建模。因此,UMLUML并不是一种面向对象建模方法和过程。并不是一种面向对象建模方法和过程。uUMLUML是一种建模语言,而不是一种程序设计语言。是一种建模语言,而不是一
15、种程序设计语言。uUMLUML是一个可扩展的建模语言。是一个可扩展的建模语言。现在学习的是第12页,共87页11.3统一建模语言统一建模语言UMLUML(续)(续)11.3.211.3.2面向对象分析和设计的面向对象分析和设计的UMLUML模型结构模型结构 UML UML将将OOA&DOOA&D要建立的系统模型划分为系统功能视图、系统静态要建立的系统模型划分为系统功能视图、系统静态视图和系统动态视图。视图和系统动态视图。现在学习的是第13页,共87页11.3统一建模语言统一建模语言UMLUML(续)(续)(一)功能视图(一)功能视图 功能视图用于展现一个系统应具有的功能集合。功能视图用于展现一
16、个系统应具有的功能集合。UMLUML用例图(用例图(Use Use Case DiagramCase Diagram)来描述。)来描述。(二)静态视图(二)静态视图 静态视图也成为逻辑视图,用于展现系统的静态结构,揭示系统内静态视图也成为逻辑视图,用于展现系统的静态结构,揭示系统内部的组成元素及其它们之间的关系。部的组成元素及其它们之间的关系。UMLUML用用“类图类图”和和“对象图对象图”来描来描述。述。(三)动态视图(三)动态视图 动态视图用于展现系统的动态行为特征。动态视图用于展现系统的动态行为特征。UMLUML用序列图用序列图(Sequence DiagramSequence Diag
17、ram)、状态图()、状态图(State DiagramState Diagram)、协作图)、协作图(Collaboration DiagramCollaboration Diagram)和活动图()和活动图(Activity DiagramActivity Diagram)来描述。)来描述。现在学习的是第14页,共87页11.3统一建模语言统一建模语言UMLUML(续)(续)11.3.311.3.3功能视图的概念和表示方法功能视图的概念和表示方法 用例图基本的模型元素包括用例(用例图基本的模型元素包括用例(Use CaseUse Case)、角色)、角色(ActorActor)和用例关系。
18、)和用例关系。用例图中的主要模型元素及其表示符号用例图中的主要模型元素及其表示符号 现在学习的是第15页,共87页11.3统一建模语言统一建模语言UMLUML(续)(续)(一)角色(一)角色 “角色角色”是指在系统边界以外与系统进行信息交互的有关是指在系统边界以外与系统进行信息交互的有关事物。事物。(二)用例(二)用例 “用例用例”是指从系统外部各个角色的角度观察,系统应支持哪是指从系统外部各个角色的角度观察,系统应支持哪些功能,一个用例提供对应系统对外部提供的一项功能,它是对系些功能,一个用例提供对应系统对外部提供的一项功能,它是对系统功能的宏观描述。统功能的宏观描述。(三)用例关系(三)用
19、例关系扩展(扩展(ExtendsExtends)关系)关系使用(使用(UsesUses)关系)关系 现在学习的是第16页,共87页11.3统一建模语言统一建模语言UMLUML(续)(续)(四)用例图示例(四)用例图示例 现在学习的是第17页,共87页11.3统一建模语言统一建模语言UMLUML(续)(续)11.3.411.3.4静态视图的概念和表示方法静态视图的概念和表示方法(一)类和对象的表示(一)类和对象的表示1 1、类和对象表示的符号、类和对象表示的符号 类和对象都用长方形表示,长方形分成上、中、下三个区域类和对象都用长方形表示,长方形分成上、中、下三个区域来分别表示类和对象的名字、类的
20、属性和服务。来分别表示类和对象的名字、类的属性和服务。现在学习的是第18页,共87页11.3统一建模语言统一建模语言UMLUML(续)(续)2 2、属性、属性 类的属性用来描述该类的所有对象所具有的静态特征,对类的属性用来描述该类的所有对象所具有的静态特征,对象的属性用来描述该对象所有的属性值。象的属性用来描述该对象所有的属性值。UMLUML描述属性的语法格描述属性的语法格式为:式为:可见性可见性 属性名:属性类型名属性名:属性类型名 初值初值 性质串性质串3 3、服务、服务 类的服务说明了该类能做些什么。每种服务定义的标准语法格式类的服务说明了该类能做些什么。每种服务定义的标准语法格式为:为
21、:可见性可见性 服务名(参数表):返回值类型服务名(参数表):返回值类型性质串性质串现在学习的是第19页,共87页11.3统一建模语言统一建模语言UMLUML(续)(续)4 4、类定义示例、类定义示例 现在学习的是第20页,共87页11.3统一建模语言统一建模语言UMLUML(续)(续)(二)继承关系的表示(二)继承关系的表示1 1、继承关系表示的符号、继承关系表示的符号 继承关系用一条带空心三角形的直线表示,空心三角形紧挨继承关系用一条带空心三角形的直线表示,空心三角形紧挨父类。父类。现在学习的是第21页,共87页11.3统一建模语言统一建模语言UMLUML(续)(续)2 2多态多态 子类也
22、可以把本来在父类中定义的属性和服务重新进行定义,来子类也可以把本来在父类中定义的属性和服务重新进行定义,来达到达到“名字相同,语义不同名字相同,语义不同”的目的。的目的。“多态多态”是在属性或服是在属性或服务的务的“性质串性质串”中来说明的。中来说明的。3 3抽象类抽象类 所谓所谓“抽象类抽象类”是指没有具体对象的类。抽象类一般只作是指没有具体对象的类。抽象类一般只作为父类,用于描述其子类的公共属性和服务。抽象类通常都具为父类,用于描述其子类的公共属性和服务。抽象类通常都具有抽象服务。抽象服务仅仅用来指定某个类的所有子类应具有有抽象服务。抽象服务仅仅用来指定某个类的所有子类应具有哪些行为,但并
23、不指定具体的实现方式。抽象服务的表示方法哪些行为,但并不指定具体的实现方式。抽象服务的表示方法是在抽象服务标记后跟随一个性质串抽象性是在抽象服务标记后跟随一个性质串抽象性AbstractAbstract。现在学习的是第22页,共87页11.3统一建模语言统一建模语言UMLUML(续)(续)4 4、多继承及其抽象类表示法示例、多继承及其抽象类表示法示例 现在学习的是第23页,共87页11.3统一建模语言统一建模语言UMLUML(续)(续)(三)关联关系表示(三)关联关系表示1 1、关联关系表示的符号、关联关系表示的符号 一般的关联关系采用一条直线来表示,该直线连接了具有一般的关联关系采用一条直线
24、来表示,该直线连接了具有关联关系的两个类或对象。关联关系的两个类或对象。现在学习的是第24页,共87页11.3统一建模语言统一建模语言UMLUML(续)(续)2 2、关联名称、关联名称 使用关联名称可更清晰地说明该关联关系的含义和目的。使用关联名称可更清晰地说明该关联关系的含义和目的。3 3、角色名、角色名 角色名用于规定某个类在关联关系中所起的作用。角色名用于规定某个类在关联关系中所起的作用。4 4、多重性、多重性 多重性用于说明关联关系中某类对象的数量关系,即该类的多多重性用于说明关联关系中某类对象的数量关系,即该类的多少个对象可以与另一个类的一个对象相关联。少个对象可以与另一个类的一个对
25、象相关联。5 5、导向性、导向性 导向性用于说明两个类的关联是单向的,导向性采用实线箭头导向性用于说明两个类的关联是单向的,导向性采用实线箭头表示,即只有箭头所指方向上才有这种关联关系。表示,即只有箭头所指方向上才有这种关联关系。现在学习的是第25页,共87页11.3统一建模语言统一建模语言UMLUML(续)(续)6 6、关联类、关联类 “关联类关联类”用来表示关联关系本身所拥有的特征。用来表示关联关系本身所拥有的特征。7 7、多元关联、多元关联 客观世界中,有时多个事物之间存在某种联系。客观世界中,有时多个事物之间存在某种联系。现在学习的是第26页,共87页11.3统一建模语言统一建模语言U
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象分析与设计 面向 对象 分析 设计
限制150内