第七章面向对象方法学引论优秀PPT.ppt
《第七章面向对象方法学引论优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第七章面向对象方法学引论优秀PPT.ppt(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第七章面向对象方法第七章面向对象方法学引论学引论现在学习的是第1页,共65页第七章第七章 面向对象方法学引论面向对象方法学引论&71 传统方法学的缺点传统方法学的缺点&72 快速原型法简介快速原型法简介&73 面向对象方法学概述面向对象方法学概述&74 面向对象的基本概念面向对象的基本概念&75 面向对象建模面向对象建模&76 对象模型对象模型&77 动态模型动态模型&78 功能模型功能模型&79 本章重点本章重点现在学习的是第2页,共65页71 传统方法学的缺点传统方法学的缺点 传统的生命周期方法学的本质,是传统的生命周期方法学的本质,是通过需求通过需求分析预定义软件需求,然后一个阶段接着一
2、个阶分析预定义软件需求,然后一个阶段接着一个阶段有条不紊的开发用户所要求的软件,实现预定段有条不紊的开发用户所要求的软件,实现预定义的软件需求义的软件需求。虽然生命周期方法较之传统的软件开发方法更虽然生命周期方法较之传统的软件开发方法更为规范化,对实现软件开发工程化起到了重要的促为规范化,对实现软件开发工程化起到了重要的促进作用,部分缓解了软件危机,引起了软件开发原进作用,部分缓解了软件危机,引起了软件开发原理的一次重大变革。理的一次重大变革。但是,对于那些大的复杂的软件系统而言,但是,对于那些大的复杂的软件系统而言,这种方法仍然显得力不从心这种方法仍然显得力不从心。现在学习的是第3页,共65
3、页一、瀑布模型的缺点:僵化一、瀑布模型的缺点:僵化生命周期各阶段间存在严格的顺序性与依赖生命周期各阶段间存在严格的顺序性与依赖性,因此其特别强调预先定义需求的重要性性,因此其特别强调预先定义需求的重要性。要求预先定义并要求预先定义并“冻结冻结”软件需求。软件需求。实践表明:在系统建立起来很难仅仅依靠分析就实践表明:在系统建立起来很难仅仅依靠分析就能确定一套完整、准确、一致、有效的应用需求,能确定一套完整、准确、一致、有效的应用需求,而且该方法不适用与用户需求不断变化的情况:而且该方法不适用与用户需求不断变化的情况:(1)某些类型的系统需求是模糊的。)某些类型的系统需求是模糊的。(2)项目参与者
4、之间存在通讯鸿沟。)项目参与者之间存在通讯鸿沟。(3)预先定义的需求可能是过时的。)预先定义的需求可能是过时的。现在学习的是第4页,共65页二、二、SA-SD-SP SA-SD-SP 技术的缺点技术的缺点 本质上是功能分解,以实现功能的本质上是功能分解,以实现功能的过程过程为中心,为中心,而用户的需求变化主要是针对而用户的需求变化主要是针对功能功能的。这就使基的。这就使基于过程的设计于过程的设计不易被理解不易被理解;且;且功能功能变化往往引起变化往往引起结构变化较大,结构变化较大,稳定性不好稳定性不好。系统有明确的边界定义,且系统结构依赖于系统系统有明确的边界定义,且系统结构依赖于系统边界的定
5、义,系统边界的定义,系统不易扩充和修改不易扩充和修改。数据与操作分开处理,可造成软构件对具体应用环数据与操作分开处理,可造成软构件对具体应用环境的依赖,境的依赖,可重用性可重用性(reusability)较差较差.现在学习的是第5页,共65页72 快速原型法简介快速原型法简介快速原型法适用于用户需求模糊或随时间变化快速原型法适用于用户需求模糊或随时间变化的系统。以原型的系统。以原型(软件产品的样品软件产品的样品)为共同语言,为共同语言,实现用户与开发者双向沟通,来解决用户与开发者实现用户与开发者双向沟通,来解决用户与开发者之间的鸿沟。之间的鸿沟。原型是一个可实地运行的模型原型是一个可实地运行的
6、模型,有正式产品有正式产品的主要特征,但不是全部特征的主要特征,但不是全部特征。软件原型是软件系统的最初版本,以最少的软件原型是软件系统的最初版本,以最少的费用,最短的时间开发出的、以反映最后软件的费用,最短的时间开发出的、以反映最后软件的主要特征的系统。主要特征的系统。现在学习的是第6页,共65页一、原型模型一、原型模型(快速成型模型快速成型模型)建造建造/修改修改 原型原型用户测试用户测试运行原型运行原型 听取用听取用 户意见户意见原型范型原型范型现在学习的是第7页,共65页二、原型的特性二、原型的特性n 是一个可实际工作的系统;是一个可实际工作的系统;n 没没有有固固定定的的生生存存期期
7、,结结局局可可能能是是用用后后立立即即被被抛抛弃弃,或可能成为最终系统或可能成为最终系统;n 可可服服务务于于不不同同的的目目的的,从从需需求求分分析析到到最最终终产产品品都可做原型都可做原型;n 建立必须快建立必须快,便宜便宜;n 是包含修改、评价在内的完整重复过程。是包含修改、评价在内的完整重复过程。原型指“快速软件原型”现在学习的是第8页,共65页三、原型化开发的应用领域三、原型化开发的应用领域n 需求分析和定义规格说明;需求分析和定义规格说明;n 作为软件设计的一种工具;作为软件设计的一种工具;n 作为一种解决不确定性的工具作为一种解决不确定性的工具n 作为一种实验工具作为一种实验工具
8、n 系统开发同时系统开发同时,作为同步培训工具作为同步培训工具n 作为开发方法,利用原型演化为最终系统作为开发方法,利用原型演化为最终系统n 作为软件维护的辅助工具作为软件维护的辅助工具现在学习的是第9页,共65页四、原型开发的分类四、原型开发的分类原型化随建立原型目的不同分为:原型化随建立原型目的不同分为:(1)抛弃式原型开发:抛弃式原型开发:辅助于瀑布模型,建立目标辅助于瀑布模型,建立目标是评价目标系统的某个是评价目标系统的某个(些些)特性,以便准确了解特性,以便准确了解需求,或严格验证方案。特点用完就抛弃,然需求,或严格验证方案。特点用完就抛弃,然后重新建立正式的目标系统。后重新建立正式
9、的目标系统。(2)演化式原型开发:演化式原型开发:采用高度迭代的动态方法,采用高度迭代的动态方法,每次都要再次确定需求、分析设计、开发测试、每次都要再次确定需求、分析设计、开发测试、,多次迭代直到用户满意为止。特点是,多次迭代直到用户满意为止。特点是系系统的初始版本很早交付用户试用,而且开发的统的初始版本很早交付用户试用,而且开发的成败取决于需要双方的耐心成败取决于需要双方的耐心。现在学习的是第10页,共65页四、原型开发的分类四、原型开发的分类(续续)(3)递增式原型开发:递增式原型开发:融合了瀑布模型与原型迭代融合了瀑布模型与原型迭代的特征。特点是采用随日程时间的进展而交错的的特征。特点是
10、采用随日程时间的进展而交错的线性序列,每一个线性序列产生一个可发布线性序列,每一个线性序列产生一个可发布“增增量量”。如使用此方法开发一个字处理软件,线如使用此方法开发一个字处理软件,线性序列安排如下:性序列安排如下:S1:发布基本的文件管理、编辑和文档生成:发布基本的文件管理、编辑和文档生成功能;功能;S2:增量实现完善的编辑和文档生成功能;:增量实现完善的编辑和文档生成功能;S3:增量实现拼写和语法检查功能;:增量实现拼写和语法检查功能;S4:增量完成高级的页面布局功能。:增量完成高级的页面布局功能。现在学习的是第11页,共65页五、原型开发的优点五、原型开发的优点F保证产品有较好的可维护
11、性保证产品有较好的可维护性F改善用户与开发人员的信息交流和思想沟通,给用改善用户与开发人员的信息交流和思想沟通,给用户修改的机会户修改的机会F减少或消灭下游返工的可能,改进了瀑布模型减少或消灭下游返工的可能,改进了瀑布模型的弊病的弊病F原型系统可作为培训环境原型系统可作为培训环境,有利于用户培训和开有利于用户培训和开发同步。发同步。F开发成本降低,周期缩短。开发成本降低,周期缩短。现在学习的是第12页,共65页73 面向对象方法学概述面向对象方法学概述一、传统的软件开发方法的缺点:一、传统的软件开发方法的缺点:特点是特点是把软件视为处理流,并定义成由一系列把软件视为处理流,并定义成由一系列步骤
12、构成的算法步骤构成的算法。每一步骤都是带有预定输入和特定输出。每一步骤都是带有预定输入和特定输出的一个过程,把这些步骤串联在一起可产生合理的稳定的的一个过程,把这些步骤串联在一起可产生合理的稳定的贯通于整个程序的控制流,最终产生一个简单的具有静态贯通于整个程序的控制流,最终产生一个简单的具有静态结构的体系结构。结构的体系结构。&过程性开发模式过程性开发模式侧重建立构成问题解决的处理流侧重建立构成问题解决的处理流。&数据抽象、数据结构数据抽象、数据结构根据算法步骤的要求开发,它贯穿根据算法步骤的要求开发,它贯穿于过程,提供过程所要求操作的信息。于过程,提供过程所要求操作的信息。&系统的状态是一组
13、全局变量系统的状态是一组全局变量,这组全局变量保存状态,这组全局变量保存状态的值,把它们从一个过程传送到另一个过程。的值,把它们从一个过程传送到另一个过程。现在学习的是第13页,共65页二、面向对象思想的由来二、面向对象思想的由来 传统的软件开发方法 没有直接而全面地反映问题的本质 直接面对问题域中客观存在的事物来进行软件开发 面向对象希望希望现在学习的是第14页,共65页二、面向对象思想的由来二、面向对象思想的由来(续续)对象对象 表示现实世界中某个具体的事物。表示现实世界中某个具体的事物。事事物可分为两大部分物可分为两大部分:v物质物质:表达具体的事物表达具体的事物v意识意识:描述抽象的概
14、念描述抽象的概念解决问题方法解决问题方法:(OO Object-Oriented)现实问题空间现实问题空间 面向对象解空间面向对象解空间 物质物质 对象对象(客观存在的客观存在的)意识意识 类类 (抽象的概念抽象的概念)现在学习的是第15页,共65页三、对象、实体与类关系图三、对象、实体与类关系图对象对象实体实体类类抽象数据类抽象数据类计算机世界计算机世界现实世界现实世界计算机逻计算机逻辑的实现辑的实现影射抽抽象象实实例例化化抽抽象象现在学习的是第16页,共65页四、面向对象方法四、面向对象方法(OOM)(OOM)特点特点 尽可能模拟人类习惯的思维方式,即问题域尽可能模拟人类习惯的思维方式,即
15、问题域与求解域在结构上尽可能一致。与传统方法相反,与求解域在结构上尽可能一致。与传统方法相反,OOM以数据或信息为主线,把以数据或信息为主线,把数据和处理结数据和处理结合合构成统一体构成统一体 对象。这时程序不再是一对象。这时程序不再是一系列工作在数据上的函数集合,而是相互协作系列工作在数据上的函数集合,而是相互协作又彼此独立的又彼此独立的对象对象的集合。的集合。现在学习的是第17页,共65页OOMOOM举例:举例:邮局业务管理邮局业务管理杭杭 州州北北 京京Post-officeMessageSend by method对象对象ObjectObject=数据数据AttributeAttrib
16、utes:location;employee;+操作操作MethodMethods:send;sell;注意:注意:Object内部的内部的attributes不允许外部用户直接改动,只有当它提供了相不允许外部用户直接改动,只有当它提供了相应的服务应的服务method时,用户才能通过发送时,用户才能通过发送message来提请它执行。来提请它执行。我想把邮局搬到我想把邮局搬到我家门口,多加几个我家门口,多加几个邮递员,邮递员,24小时都开门小时都开门对不起,对不起,本邮局不提供本邮局不提供此类服务此类服务唉,那就先送束花吧唉,那就先送束花吧 Post_office.Send(request,p
17、ayment)现在学习的是第18页,共65页五、面向对象的定义五、面向对象的定义面向对象=对象+类+继承+通信n如果一个软件系统是使用这样如果一个软件系统是使用这样 4 4 个概念设计个概念设计和实现的,则我们认为这个软件系统是面向对和实现的,则我们认为这个软件系统是面向对象的。象的。n一个面向对象的程序的每一成份应是一个面向对象的程序的每一成份应是对象对象,计,计算是通过算是通过新的对象的建立新的对象的建立和和对象之间的通信对象之间的通信来来执行的。执行的。面向对象四要素:面向对象四要素:(1 1)对象)对象 (2 2)类)类 (3 3)继承)继承 (4 4)消息)消息现在学习的是第19页,
18、共65页六、面向对象四要素六、面向对象四要素对象对象n对象对象(Object)Object)是面向对象的是面向对象的基本成份基本成份。n每个对象可用每个对象可用它本身的一组属性它本身的一组属性和和它可它可以执行的一组操作以执行的一组操作来定义。来定义。n属性属性一般只能一般只能通过执行对象的操作来改通过执行对象的操作来改变变。n操作操作又称为方法或服务,它又称为方法或服务,它描述了对象执描述了对象执行的功能行的功能,若通过消息传递,还可以为其它,若通过消息传递,还可以为其它对象使用。对象使用。现在学习的是第20页,共65页六、面向对象四要素六、面向对象四要素类类n类(类(ClassClass)
19、是一组具有)是一组具有相同数据结构相同数据结构和和相同操相同操作作的对象的集合。的对象的集合。n类的定义包括类的定义包括一组数据属性一组数据属性和和在数据上的一组在数据上的一组合法操作合法操作。n类定义可以视为一个具有类似特性与共同行为的类定义可以视为一个具有类似特性与共同行为的对象的对象的模板模板,可用来产生对象。,可用来产生对象。n在一个类中,每个在一个类中,每个对象对象都是都是类的实例类的实例 (Instance)Instance),它们都可使用类中提供的函数。,它们都可使用类中提供的函数。n对象的状态则包含在它的实例变量,即实例对象的状态则包含在它的实例变量,即实例的属性中。的属性中。
20、现在学习的是第21页,共65页六、面向对象四要素六、面向对象四要素消息消息n消息(消息(MessageMessage)是一个对象与另一个对象的通)是一个对象与另一个对象的通信单元,是要求某个对象执行类中定义的某个操信单元,是要求某个对象执行类中定义的某个操作的规格说明。作的规格说明。发送给一个对象的消息定义了一发送给一个对象的消息定义了一个个方法名方法名和一个和一个参数表参数表(可能是空的),并(可能是空的),并指定指定某一个某一个对象对象。n一个对象接收的消息则调用消息中指定的一个对象接收的消息则调用消息中指定的方方法法,并将,并将形式参数与参数表中相应的值结合起形式参数与参数表中相应的值结
21、合起来来。现在学习的是第22页,共65页class Post_office /定义类定义类 private:loc_type location;emp_type employee;public:void send(req_type request,money_type payment);void sell(int goods,money_type payment);main()Post_office My_PO;/声明类的示例:对象声明类的示例:对象 req_type My_request;money_type My_payment;My_PO.Send(My_request,My_payme
22、nt);/通讯通讯 OOMOOM举例:举例:邮局业务管理邮局业务管理现在学习的是第23页,共65页六、面向对象四要素六、面向对象四要素继承继承n继继承承(Inheritance)是是使使用用已已存存在在的的定定义义做做为为基基础建立新定义础建立新定义的技术。的技术。n新新类类的的定定义义可可以以是是既既存存类类所所声声明明的的数数据据和和新新类类所所增增加加的的声声明明的的组组合合。新新类类复复用用既既存存的的定定义义,而而不要求修改既存类不要求修改既存类。n既既存存类类可可当当做做基基类类来来引引用用,则则新新类类相相应应地地可可当当做做派生类派生类来引用。来引用。n例例如如,从从一一个个既
23、既存存的的车车辆辆类类派派生生的的四四轮轮驱驱动动车车类类可可能能不不仅仅是是车车辆辆类类子子集集合合定定义义的的特特殊殊化化,而而且且还还可可能在新类的界面中引入新的能力。能在新类的界面中引入新的能力。现在学习的是第24页,共65页七、面向对象与传统方法比较七、面向对象与传统方法比较 传统方法:面向过程设计,以计算为核心,数据传统方法:面向过程设计,以计算为核心,数据与操作分离,不易理解。与操作分离,不易理解。OOM:以:以object 为核心,强调对现实概念的模拟而为核心,强调对现实概念的模拟而不强调算法。不强调算法。“面向对象方法学的基本原则,是按面向对象方法学的基本原则,是按照人们习惯
24、的思维方式建立问题域的模型,开发出照人们习惯的思维方式建立问题域的模型,开发出尽可能直观、自然地表现求解方法的软件系统尽可能直观、自然地表现求解方法的软件系统”。Class:由特殊到一般的归纳由特殊到一般的归纳(induction)Inheritance:由一般到特殊的演绎:由一般到特殊的演绎(deduction)现在学习的是第25页,共65页七、面向对象与传统方法比较七、面向对象与传统方法比较(续续)传统方法:结构依赖于功能,不稳定。传统方法:结构依赖于功能,不稳定。OOM:以:以object模拟实体,需求变化不会引起结模拟实体,需求变化不会引起结构的整体变化,因为实体相对稳定,故系统也相构
25、的整体变化,因为实体相对稳定,故系统也相应稳定。应稳定。传统方法:通过建立标准函数库来重用软构件。传统方法:通过建立标准函数库来重用软构件。但标准函数缺少必要的但标准函数缺少必要的“柔性柔性”,难以适应不同场,难以适应不同场合的不同需要。合的不同需要。OOM:一个:一个class所有的所有的 instances 都可重用它都可重用它的代码;由的代码;由 inheritance 派生出的新的派生出的新的class 可可重用其父类的代码,并且可以修改、扩充而不影响其重用其父类的代码,并且可以修改、扩充而不影响其父类的使用。父类的使用。现在学习的是第26页,共65页七、面向对象与传统方法比较七、面向
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 面向 对象 方法 引论 优秀 PPT
限制150内