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