面向对象开发方法_第1页
面向对象开发方法_第2页
面向对象开发方法_第3页
面向对象开发方法_第4页
面向对象开发方法_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、梁昌勇梁昌勇信息系统分析、设计与开发方法第第3 3章章 面向对象开发方法面向对象开发方法2/353.1 3.1 面向对象方法的基本含义面向对象方法的基本含义 3.2 3.2 面向对象的基本概念面向对象的基本概念 3.3 3.3 面向对象方法的特点面向对象方法的特点 3.4 3.4 面向对象方法的优点面向对象方法的优点3.5 3.5 典型的面向对象开发方法典型的面向对象开发方法 目录目录3/35 面向对象方法(面向对象方法(Object Oriented MethodObject Oriented Method)是一种把面向)是一种把面向对象的思想应用于软件开发法过程,指导开发活动的系统对象的思

2、想应用于软件开发法过程,指导开发活动的系统方法,是建立在方法,是建立在“对象对象”概念基础上的方法学。概念基础上的方法学。 定义一:定义一:面向对象方法是一种运用对象、类、封装、继承、面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。多态和消息等概念来构造、测试、重构软件的方法。 定义二:定义二: 面向对象方法是以认识论为基础,用对象来理面向对象方法是以认识论为基础,用对象来理解和分析问题空间,并设计和开发出由对象构成的软件系解和分析问题空间,并设计和开发出由对象构成的软件系统(系统责任)的方法。统(系统责任)的方法。 面向对象的分析过程就是认识客观世界

3、的过程。面向对象的分析过程就是认识客观世界的过程。3.1.1 面向对象方法的基本含义面向对象方法的基本含义3.1 面向对象方法的基本含义面向对象方法的基本含义4/353.1.1 面向对象方法的基本含义面向对象方法的基本含义l面向对象本质内涵面向对象本质内涵u面向对象的思想以对象为基础,辩证唯物主义以物质为基面向对象的思想以对象为基础,辩证唯物主义以物质为基础。让我们通过对两者基本思想的类比来加深对面向对象础。让我们通过对两者基本思想的类比来加深对面向对象本质内涵的理解。本质内涵的理解。u辩证唯物主义认为辩证唯物主义认为世界是世界是物质物质的,物质是的,物质是运动运动的,物质是的,物质是普遍普遍

4、联系联系的,物质具有的,物质具有特殊性特殊性和和普遍性普遍性。物质既有。物质既有静态静态的的一面又有一面又有动态动态的一面,的一面,外因外因通过通过内因内因作用于物质。作用于物质。3.1 面向对象方法的基本含义面向对象方法的基本含义5/35 面向对象的思想面向对象的思想 问题域是由问题域是由对象对象构成的,每个对象拥有各自的构成的,每个对象拥有各自的属性属性和和方方法法,属性用于描述对象的物理特征,而方法用于描述对,属性用于描述对象的物理特征,而方法用于描述对象的行为,象的行为,对象是属性和行为的统一体对象是属性和行为的统一体。 从对象出发构造软件系统。强调直接以问题域中的对象从对象出发构造软

5、件系统。强调直接以问题域中的对象为中心来认识问题和解决问题,软件系统对象是问题域为中心来认识问题和解决问题,软件系统对象是问题域对象的抽象。对象的抽象。3.1.1 面向对象方法的基本含义面向对象方法的基本含义3.1 面向对象方法的基本含义面向对象方法的基本含义6/35 软件系统处理的基本单元是软件系统处理的基本单元是类类,类是具有相同属性和方,类是具有相同属性和方法的对象集合。从软件系统对象到类是一个抽象的过程,法的对象集合。从软件系统对象到类是一个抽象的过程,符合人们通常的思维方式。符合人们通常的思维方式。 软件系统中类的实例化对象可以直接映射到问题域中的软件系统中类的实例化对象可以直接映射

6、到问题域中的对象对象1. 面向对象的本质内涵及基本概念面向对象的本质内涵及基本概念3.1.1 面向对象方法的基本含义面向对象方法的基本含义3.1 面向对象方法的基本含义面向对象方法的基本含义7/351.1 面向对象的本质内涵面向对象的本质内涵(4)1. 面向对象的本质内涵及基本概念面向对象的本质内涵及基本概念问题域对象系统责任对象对象类抽象抽象抽象抽象软件系统类的实例化 抽象与实例化抽象与实例化3.1.1 面向对象方法的基本含义面向对象方法的基本含义3.1 面向对象方法的基本含义面向对象方法的基本含义8/35 消息、接口、对象消息、接口、对象1.1 面向对象的本质内涵面向对象的本质内涵(5)1

7、. 面向对象的本质内涵及基本概念面向对象的本质内涵及基本概念接口消 息 方 法 属 性对 象3.1.1 面向对象方法的基本含义面向对象方法的基本含义3.1 面向对象方法的基本含义面向对象方法的基本含义9/35辩证唯物主义面向对象思想世界是由物质组成的问题域是由对象组成的物质是静止和运动统一体 对象是属性和行为的统一体物质是普遍联系对象间相互联系一般和特殊父类和子类内因和外因消息、接口、对象1. 面向对象的本质内涵及基本概念面向对象的本质内涵及基本概念3.1.1 面向对象方法的基本含义面向对象方法的基本含义3.1 面向对象方法的基本含义面向对象方法的基本含义10/35 面向对象方法的基本思想面向

8、对象方法的基本思想 尽可能地运用人类的自然思维方式来建立问题空间的模型,构造尽可能直观、自然地表达求解方法的软件系统。现实世界的问题是由客观实体和实体之间的联系构成的,对象(Object)就是客观实体的抽象。面向对象方法将属性和方法放在一起,作为一个相互依存、不可分割的整体来处理。 3.1.1 面向对象方法的基本含义面向对象方法的基本含义3.1 面向对象方法的基本含义面向对象方法的基本含义11/35u面向对象方法的基本观点如下:客观世界是由各种各样的对象组成的。任何客观的事物或实体都是对象,每种对象有自己的内部状态和运动规律,复杂的对象可以由简单的对象组成。可以用对象和消息来表示事物及事物之间

9、的相互联系。具有相同的内部状态和运动规律的对象可以抽象为一个类(Class),对象是类的一个实例。从一个类可以产生许多对象。类可以派生出子类,子类继承父类的全部特征,又可以有自己的新特征。类和继承作为描述人类一般思维方式的范式,继承可以表达类与类之间的层次关系。对象之间通过消息传递互相联系。类具有封装性,它的状态和操作等对于外界是不可见的,外界只能通过消息请求进行某些操作,或请求提供所需的服务。3.1.1 面向对象方法的基本含义面向对象方法的基本含义3.1 面向对象方法的基本含义面向对象方法的基本含义12/35 特点特点 特点特点1 1:认为客观世界是由各种:认为客观世界是由各种“对象对象”所

10、组成的,任所组成的,任何事物都是对象,每一个对象都有自已的运动规律和内何事物都是对象,每一个对象都有自已的运动规律和内部状态,每一个对象都属于某个对象部状态,每一个对象都属于某个对象“类类”。复杂的对。复杂的对象可以是由相对比较简单的对象以某种方式而构成的。象可以是由相对比较简单的对象以某种方式而构成的。 3.1.1 面向对象方法的基本含义面向对象方法的基本含义3.1 面向对象方法的基本含义面向对象方法的基本含义13/35 特点特点2 2:通过类比,发现对象间的相似性,即对象间的:通过类比,发现对象间的相似性,即对象间的共同属性和行为,这就是构成对象类的依据共同属性和行为,这就是构成对象类的依

11、据 特点特点3 3:对象间的相互联系是通过传递:对象间的相互联系是通过传递“消息消息”来完成来完成的,消息就是通知对象去完成一个允许作用于该对象的的,消息就是通知对象去完成一个允许作用于该对象的操作。操作。面向对象面向对象 = = 对象对象 + + 类类 + + 继承继承 + + 消息消息3.1.1 面向对象方法的基本含义面向对象方法的基本含义3.1 面向对象方法的基本含义面向对象方法的基本含义14/35 方法方法内容内容面向对象方法面向对象方法结构化生命周期法结构化生命周期法分析工具分析工具用例图、类图、交互图用例图、类图、交互图、活动图等、活动图等 业务流程图、数据流图、业务流程图、数据流

12、图、E-RE-R图、数据字典等图、数据字典等关注角度关注角度对象(属性、行为、结对象(属性、行为、结构、连接方式)构、连接方式)功能、模块功能、模块与数据库关系与数据库关系实体类与数据库中表有实体类与数据库中表有对应关系对应关系功能模块与数据库结构相功能模块与数据库结构相互独立,无映射互独立,无映射问题处理单位问题处理单位类类模块模块数据处理方式数据处理方式通过接口依靠对象自身通过接口依靠对象自身的成员函数处理的成员函数处理直接通过函数处理直接通过函数处理控制程序方式控制程序方式事件驱动事件驱动模块调用、控制模块调用、控制3.1.1 面向对象方法的基本含义面向对象方法的基本含义3.1 面向对象

13、方法的基本含义面向对象方法的基本含义15/35面向对象方法面向对象方法结构化方法结构化方法原型法原型法优优点点1.1.分析、设计中的对分析、设计中的对象和软件中的对象一象和软件中的对象一致;致;2.2.实现软件复用,增实现软件复用,增强了系统的适应性,强了系统的适应性,简化程序设计;简化程序设计;3.3.系统稳定性、可重系统稳定性、可重用性及可维护性好;用性及可维护性好;4. 4. 开发周期短开发周期短1.1.“自上而下自上而下”地分析地分析和设计,保证了系统和设计,保证了系统的整体性和目标的一的整体性和目标的一致性;致性;2.2.面向用户,遵循用面向用户,遵循用户至上的原则;户至上的原则;3

14、.3.严格区分系统开发严格区分系统开发的阶段性;每一阶段的阶段性;每一阶段的工作成果是下一阶的工作成果是下一阶段的依据,便于系统段的依据,便于系统开发的管理和控制;开发的管理和控制;4. 4. 按工程标准建立标按工程标准建立标准化的文档资料。准化的文档资料。1.1.充分利用最新软件工具,充分利用最新软件工具,系统开发周期短,费用相对系统开发周期短,费用相对少;少;2.2.用户参与开发过程,系统用户参与开发过程,系统更加贴近实际,易学易用,更加贴近实际,易学易用,减少用户的培训时间;减少用户的培训时间;3.3.系统开发过程循序渐进,系统开发过程循序渐进,符合人们认识事物的规律,符合人们认识事物的

15、规律,信息反馈及时性强,确保了信息反馈及时性强,确保了较好的用户满意度;较好的用户满意度;4. 4. 构造出用户构造出用户“看得见,看得见,摸得着摸得着”的系统原型,缩小的系统原型,缩小了理解和认识上存在的差距了理解和认识上存在的差距。3.1.1 面向对象方法的基本含义面向对象方法的基本含义3.1 面向对象方法的基本含义面向对象方法的基本含义16/35面向对象方法面向对象方法结构化方法结构化方法原型法原型法缺缺点点1.1.系统在分析阶系统在分析阶段对对象的抽象段对对象的抽象困难;困难;2.2.需要一定的软需要一定的软件基础支持才能件基础支持才能应用;应用;3.3.结构化程度不结构化程度不高高1

16、.1.用户素质、系统分用户素质、系统分析员和管理者之间的析员和管理者之间的沟通要求高;沟通要求高;2.2.开发周期长,文档开发周期长,文档过多,难于适应环境过多,难于适应环境变化;变化;3.3.结构化程度较低的结构化程度较低的系统,在开发初期难系统,在开发初期难以锁定功能要求;以锁定功能要求;4.4.各阶段的审批工作各阶段的审批工作困难;所使用的工具困难;所使用的工具落后。落后。1.1.不适合大规模系统开发;不适合大规模系统开发;2.2.开发过程管理要求高,要经过开发过程管理要求高,要经过“修改修改评价评价再修改再修改”的多次的多次反复;反复;3.3.用户过早看到系统原型,误认用户过早看到系统

17、原型,误认为最终系统就是原型模样,易使为最终系统就是原型模样,易使用户失去信心;用户失去信心;4.4.开发人员易将原型取代系统分开发人员易将原型取代系统分析;缺乏规范化的文档资料;析;缺乏规范化的文档资料;5.5.需要较高的系统开发环境支持需要较高的系统开发环境支持,如系统开发工具、软硬件、开,如系统开发工具、软硬件、开发环境、开发人员及用户素质等发环境、开发人员及用户素质等3.1.1 面向对象方法的基本含义面向对象方法的基本含义3.1 面向对象方法的基本含义面向对象方法的基本含义17/35 对象的基本概念对象的基本概念u对象是建立面向对象系统所依赖的基本单元。在现实世界中,可以将任何客观存在

18、的事物看作一个对象,如一个人、一辆汽车、一张光盘,一台电脑,甚至一个星球。 现实世界中的对象3.2.1对象的基本概念对象的基本概念3.2 面向对象的基本概念面向对象的基本概念18/35u对象的属性部分又称为数据部分,用来描述它的某些特征,对象的方法部分又称为程序部分,通常是一段程序代码,定义了一个操作,每个操作决定对象的一种功能或行为。 3.2.1 对象的基本概念对象的基本概念3.2 面向对象的基本概念面向对象的基本概念汽车对象的属性和方法19/35 类的基本概念u类是一组具有相同属性和相同操作的对象的集合。u类看作是对象的模板(Template),抽象地描述了属于该类的全部对象共有的属性和方

19、法。类与对象的关系是抽象与具体的关系,类是多个对象的综合抽象对象是类的个体实例。学生类3.2.2 类的基本概念类的基本概念3.2 面向对象的基本概念面向对象的基本概念20/35 消息传递消息传递u对象与对象之间并不是彼此孤立的,它们之间存在联系,在面向对象的系统中,对象之间的联系是通过消息传递进行的。u消息是对象之间相互请求和相互协作的途径,是要求某个对象执行其中某个功能操作的规格说明。对象内有属性和方法,外部的对象向该对象提出服务请求,可以称为向该对象发送信息。通过发送消息实现对对象的操纵。 3.2.3 消息传递消息传递3.2 面向对象的基本概念面向对象的基本概念21/35 面向对象的方法特

20、点面向对象的方法特点3.3 面向对象方法的特点面向对象方法的特点面向对象基本特征面向对象基本特征继承继承封装封装多态多态继承继承(泛化泛化)组合组合(聚合聚合)覆盖覆盖重载重载22/35 抽象抽象u抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。u抽象包括两个方面,一是过程抽象,二是数据抽象过程抽象是指任何一个明确定义功能的操作都可被使用者看作单个的实体。 数据抽象定义了数据类型和施加于该类型对象上的操作,并限定了对象的值只能通过这些操作来访问和修改。 3.3.1 抽象抽象3.3 面向对象方法的特点面向对象方法的特点23/35 封装封装u封装是面向对象的特

21、征之一。封装是面向对象的特征之一。u封装是指把对象的属性和方法包围起来,避免外界的干封装是指把对象的属性和方法包围起来,避免外界的干扰和不确定性,对数据的访问只能通过接口进行。扰和不确定性,对数据的访问只能通过接口进行。u封装保证模块具有良好的独立性,便于系统维护,对系封装保证模块具有良好的独立性,便于系统维护,对系统的修改仅限于类的内部。统的修改仅限于类的内部。 封装是继承的前提,没有封装就没有继承。封装是继承的前提,没有封装就没有继承。3.3.2 封装封装3.3 面向对象方法的特点面向对象方法的特点24/35 继承是面向对象的特征之一。继承是面向对象的特征之一。 广义地说,继承是指能够直接

22、获得已有的性质和特征,广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。在面向对象的软件技术中,继承而不必重复定义它们。在面向对象的软件技术中,继承是子类自动地共享基类中已定义的属性和方法。是子类自动地共享基类中已定义的属性和方法。 通过继承创建的新类称为通过继承创建的新类称为“子类子类”或或“派生类派生类”。 被继承的类称为被继承的类称为“基类基类”、“父类父类”或或“超类超类”。 继承是多态的前提,没有继承就没有多态。继承是多态的前提,没有继承就没有多态。3.3.3 继承继承 3.3 面向对象方法的特点面向对象方法的特点25/353.3 面向对象方法的特点面向对象方法的特

23、点类的继承关系 3.3.3 继承继承 26/35 多态性是面向对象的特征之一。多态性是面向对象的特征之一。 多态是指允许不同类的对象对同一消息作出不同的响应。多态是指允许不同类的对象对同一消息作出不同的响应。 实现多态,有二种方式:覆盖,重载。实现多态,有二种方式:覆盖,重载。 覆盖:是指子类重新定义父类的函数;覆盖:是指子类重新定义父类的函数; 重载:是指允许存在多个同名函数,而这些函数的参数表重载:是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。都不同)。4 多态多态 3.3 面向对象

24、方法的特点面向对象方法的特点27/35 从认知学的角度来看,面向对象方法符合人们对客观世界的认识规律。 面向对象方法开发的系统易于维护,其体系结构易于理解、扩充和修改。面向对象方法开发的软件系统有对象类组成,对象的封装性很好地体现了抽象和信息隐蔽的特征。当对象的接口确定以后,实现细节的修改不会影响其他对象,易于维护。 面向对象方法中的继承机制有力支持软件的复用。在同一应用领域的不同应用系统中,往往会涉及到许多相同或相似的实体,这些实体在不同的应用系统中存在许多相同的属性和操作,也存在着一些不同的应用系统所特有的属性和操作。可以通过继承来复用公共的属性和操作。3.4 面相对象方法的优点面相对象方

25、法的优点28/35 OMT方法由James Rambough建立,它采用三种模型来描述分析与设计,分别是对象模型、动态模型和功能模型。 对象模型的描述手段是对象图。它用来刻画对象的静态结构及相互间的关系。用对象模型来建模就是确定问题域的类和相关的属性。 动态模型主要采用状态转换图(Statecharts)来描述,它用来刻画对象的动态行为,并定义和识别对象的行为。 功能模型主要表达系统内部数据流的传递和处理的过程。数据流图适用于描述系统的功能模型。 3.5 典型的面相对象开发方法典型的面相对象开发方法3.5.1 OMT 方法面向对象建模方法面向对象建模29/35 Booch最先描述了面向对象的软

26、件开发方法的基础问题,指出面向对象开发是一种根本不同于传统的功能分解的设计方法。 Booch方法在许多领域取得实际应用。它的最大特点是将几类不同的图表有机结合起来,以反映系统的各个方面是如何相互联系又相互影响的。 Booch方法可分为逻辑设计和物理设计 u在逻辑设计中包括类图和对象图,着重于类和对象的定义 u物理设计部分包括模块图和进程图,着重于对软件系统的结构描 3.5 典型的面相对象开发方法典型的面相对象开发方法3.5.2 Booch 面向对象方法面向对象方法30/35 Booch认为软件开发是一个螺旋上升的过程,在螺旋上升的每个周期中,有以下几个步骤: 发现类和对象。主要包括两项活动,即

27、在问题域空间内发现最关键的抽象和提出能使对象协同工作以完成某些功能的机制。对象的类是待选的,随着认识的加深,可以灵活地改变问题空间的边界。这一步的主要工作就是找出重要的对象和类。 确定类和对象的含义。设计者以公正的局外人身份从类的界面角度仔细观察,反复讨论给出类、对象之间协作的协议,可以为每个对象创建场景脚本(Scenario),描述其生存期和具有特征性的行为。 确认类和对象之间的关系。 实现类和对象。3.5 典型的面相对象开发方法典型的面相对象开发方法3.5.2 Booch 面向对象方法面向对象方法31/35 Coad-Yourdon方法严格区分了面向对象分析OOA (OO Analysis)与面向对象设计OOD (OO Design)。 3.5 典型的面相对象开发方法典型的面相对象开发方法3.5.3 Coad-Yourdon面向对象开发方法面向对象开发方法 32/35 Jacobson提出的面向对象软件工程(OOSE,Object Oriented Software Engineering)将面向对象的思想贯穿到软件工程中,目的是为了得到一个能适应变化、健壮性好和维护性强的系统。OOSE采用五个模型来完成其实现目标系统的过程:u需求模型(RM)。用来捕捉用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论