面向对象方法学引论6ppt课件

上传人:aa****6 文档编号:57369050 上传时间:2018-10-21 格式:PPT 页数:124 大小:1.86MB
返回 下载 相关 举报
面向对象方法学引论6ppt课件_第1页
第1页 / 共124页
面向对象方法学引论6ppt课件_第2页
第2页 / 共124页
面向对象方法学引论6ppt课件_第3页
第3页 / 共124页
面向对象方法学引论6ppt课件_第4页
第4页 / 共124页
面向对象方法学引论6ppt课件_第5页
第5页 / 共124页
点击查看更多>>
资源描述

《面向对象方法学引论6ppt课件》由会员分享,可在线阅读,更多相关《面向对象方法学引论6ppt课件(124页珍藏版)》请在金锄头文库上搜索。

1、2018/10/21,1,面向对象方法学引论,第九章,2018/10/21,2,主要内容,面向对象方法学概述 面向对象的概念 面向对象建模 对象模型 动态模型 功能模型 3种模型之间的关系,2018/10/21,3,“面向对象方法学概述”主要内容,面向对象方法学的要点 面向对象方法学的优点,2018/10/21,4,面向对象的基本思想,面向对象的开发方法OOSD(Object-Oriented Software Development)是一种新的软件工程方法。 面向对象的基本思想就是尽可能按照人类认识世界的方法和思维方式来分析和解决问题,这种方法能够提供更加清晰的需求分析和设计。,2018/1

2、0/21,5,面向对象方法学的出发点和基本原则,面向对象方法学的出发点和基本原则,是尽可能使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。,2018/10/21,6,面向对象开发过程,需求分析,设计,实现,测试,需求分析,建立需求模型: 分析的典型活动: 1、获取领域知识; 2、定义系统功能(用例图) 3、确定合适的类; 4、建立类的静态模型(类图); 5、描述对象的动态行为(状态图、协作图、时序图、活动图); 6、验证(专家对模型做静态验证); 7、给出基本的用户界面原型(整体结构的原型:主窗口的内容、窗口之间的导航等),2018/10/21,7,面

3、向对象开发过程,需求分析,设计,实现,测试,设计的典型活动: 1、将分析所得到的类划分为功能包,并从技术层面(用户界面、数据库处理、通信等)增加新包,建立包之间的通信联系。 2、标识并发需求并建模; 3、指出系统输出的详细格式:如用户界面,报告,向其他系统发送的事务等; 4、数据管理(建立类与表单的对应关系,对数据库的访问机制); 5、异常处理; 6、分配类的构件(构件图,配置图),2018/10/21,8,面向对象开发过程,需求分析,设计,实现,测试,实现活动实际上就是编写程序代码,包括范虎的编译、连结、排错等。 并应遵循传统的编程准则,2018/10/21,9,面向对象方法学的对象,客观世

4、界的问题都是由实体及实体间的关系构成的。 把客观世界中的实体抽象为问题域中的对象。 对象是不固定的。 公司中的一个雇员可以作为一个对象; 一家由多名雇员组成的公司也可以作为一个对象。 应该把什么抽象为对象,由所要解决的问题决定。,2018/10/21,10,不同程序设计语言所提供的对象,人们把计算机中的实体称为解空间对象。 解空间对象取决于所使用的程序设计语言: 汇编语言提供的对象是存储单元; 面向过程的高级语言提供的对象是各种预定义的变量、数组、记录和文件等; 面向对象的高级语言 一旦提供了某种解空间对象,就隐含规定了允许对该类对象施加的操作。,2018/10/21,11,问题空间和解空间的

5、对象,从动态的观点看,对对象施加的操作就是该对象的行为。 问题空间对象和解空间对象的不同: 问题空间中,对象的行为是极其丰富多彩的; 解空间中,对象的行为却非常简单呆板。 只有借助于十分复杂的算法,才能操纵解空间对象从而得到解。,2018/10/21,12,传统方法与面向对象方法比较,2018/10/21,13,面向对象方法学的4个要点,1、“对象性”分解取代功能分解 2、将对象组成“对象类”类的使用 3、类的继承、类形成层次结构 4、消息传递、封装,2018/10/21,14,要点1-“对象性”,客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象组合而成。 面向对象

6、的软件系统是由对象组成的,软件中的任何元素都是对象,复杂的软件对象由比较简单的对象组合而成。 面向对象方法用对象分解取代了传统方法的功能分解。,2018/10/21,15,要点2-将对象组成“对象类”,把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法。 类中定义的方法,是允许施加于该类对象上的操作,是该类所有对象共享的,并不需要为每个对象都复制操作的代码。,2018/10/21,16,要点2-将对象组成“对象类”,数据用于表示对象的静态属性,是对象的状态信息。 每当建立该对象类的一个新实例时,就按照类中对数据的定义为这个新对象生成一组专用的数据,以便描

7、述该对象独特的属性值。,例如:一个班的多个学生,虽然都是student类的对象,但是,各自都有自己专用的数据,以便记录各自的姓名,学号等。,2018/10/21,17,要点3-类的继承、类形成层次结构,按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。 在这种层次结构中,通常下层的派生类具有和上层的基类相同的特性(包括数据和方法),这种现象称为继承 但是,如果在派生类中对某些特性又做了重新描述,则在派生类中的这些特性将以新描述为准。也就是说,低层的特性将屏蔽高层的同名特性。,2018/10/21,18,要点4-消息传递、封装,对象彼此之间

8、仅能通过传递消息互相联系。 对象是进行处理的主体,必须发消息请求它执行它的某个操作,处理它的私有数据,而不能从外界直接对它的私有数据进行操作。 一切局部于该对象的私有信息,都被封装在该对象类的定义中,就好像装在一个不透明的黑盒子中一样,在外界是看不见的,都不能直接使用,这就是“封装性”。,2018/10/21,19,面向对象方法学的概括,面向对象的方法学可以用下列方程来概括:面向对象 (OO)= 对象(objects)+ 类(classes)+ 继承(inheritance)+ 通过消息的通信(communication with messages) 面向对象就是既使用对象又使用类和继承等机制

9、,而且对象之间仅能通过传递消息实现彼此通信。,2018/10/21,20,与“对象”相关的方法学,与“对象”相关的方法学: 如果仅使用对象和消息,则这种方法称为基于对象的(object-based)方法; 如果把所有对象都划分为类,则这种方法称为基于类的(class-based)方法; 同时使用对象、类、继承和消息的方法,才是面向对象的方法。,2018/10/21,21,“面向对象方法学概述”主要内容,面向对象方法学的要点 面向对象方法学的优点,2018/10/21,22,面向对象方法学的优点,与人类习惯的思维方法一致 稳定性好 可重用性好 较易开发大型软件产品 可维护性好,2018/10/2

10、1,23,面向对象方法学以对象为核心,面向对象的软件技术以对象(object)为核心 对象 : 数据+操作 对象之间通过传递消息互相联系,2018/10/21,24,面向对象方法学的基本原理,面向对象的基本原理:使用现实世界的概念抽象地思考问题从而自然地解决问题。 在面向对象的软件开发过程从始至终都围绕着建立问题领域的对象模型来进行: 对问题领域进行自然的分解,确定需要使用的对象和类,建立适当的类等级; 在对象之间传递消息实现必要的联系。 从而按照人们习惯的思维方式建立起问题领域的模型,模拟客观世界。,2018/10/21,25,瀑布模型无法完整反映人们解决问题的过程,瀑布模型强调自顶向下地完

11、成软件开发工作。 人们认识客观世界解决现实问题的过程,是一个渐进的过程,人的认识需要在继承以前的有关知识的基础上,经过多次反复才能逐步深化。 在人的认识深化过程中,即包括从一般到特殊的演绎思维过程,也包括了从特殊到一般的归纳思维过程。 人在认识和解决复杂问题时使用的最强有力的思维工具是抽象,也就是在处理复杂对象时,为了达到某个分析目的集中研究对象的与此目的有关的实质,忽略该对象的那些与此无目的无关的部分。,2018/10/21,26,面向对象方法学的优点,与人类习惯的思维方法一致 稳定性好 可重用性好 较易开发大型软件产品 可维护性好,2018/10/21,27,传统方法开发的系统稳定性差,传

12、统的软件开发方法以算法为核心,开发过程基于功能分析和功能分解。 用传统方法所建立起来的软件系统的结构紧密依赖于系统所要完成的功能,当功能需求发生变化时将引起软件结构的整体修改。 事实上,用户需求变化大部分是针对功能的,因此,这样的软件系统是不稳定的。,2018/10/21,28,面向对象方法开发的系统稳定性好,面向对象方法以对象为中心构造软件系统。 因为面向对象软件系统的结构是根据问题领域的模型建立起来的,而不是基于对系统应完成的功能的分解: 所以,当对系统的功能需求变化时并不会引起软件结构的整体变化,往往仅需要作一些局部性的修改。 例如,从已有类派生出一些新的子类以实现功能扩充或修改,增加或

13、删除某些对象等。 由于现实世界中的实体是相对稳定的,因此,以对象为中心构造的软件系统也是比较稳定的。,2018/10/21,29,面向对象方法学的优点,与人类习惯的思维方法一致 稳定性好 可重用性好 较易开发大型软件产品 可维护性好,2018/10/21,30,重用技术的含义,用已有零部件装配新的产品,是典型的重用技术。 重用是提高生产率的最主要的方法。,2018/10/21,31,传统软件方法学的重用技术,传统的软件重用技术是利用标准函数库来造新的软件系统。 标准函数缺乏必要的“柔性”,不能适应不同应用场合的不同需要,并不是理想的可重用的软件成分。 实际的库函数往往仅提供最基本、最常用的功能

14、,在开发一个新的软件系统时,通常多数函数是开发者自己编写的,甚至绝大多数函数都是新编的。,2018/10/21,32,传统方法学在“重用”方面的缺陷,使用传统方法学开发软件时,人们认为具有功能内聚的模块是理想的模块,也就是说,如果一个模块完成一个且只完成一个相对独立的子功能,那么这个模块就是理想的可重用模块。 基于上述认识,通常尽量把标准函数库中的函数做成功能内聚的。但是,即使具有功能内聚性的模块也不是自含的和独立的,它必须运行在相应的数据结构上。如果要重用这样的模块,则相应的数据也必须重用。 因此,如果新产品中的数据与最初产品中的数据不同,则要么修改数据要么修改这个模块。,2018/10/2

15、1,33,重用技术应将数据与操作一同考虑,人们应该对数据和操作同样重视。 对象具有很强的自含性和独立性: 在OO方法所使用的对象中,数据和操作正是作为平等伙伴出现的,因此,对象具有很强的自含性; 此外,对象固有的封装性和信息隐藏机制,使得对象的内部实现与外界隔离,具有较强的独立性。 由此可见,对象是比较理想的模块和可重用的软件成份。,2018/10/21,34,继承性机制中的重用技术,有两种方法可以重复使用一个对象类: 一种方法是创建该类的实例,从而直接使用它; 另一种方法是从它派生出一个满足当前需要的新类。 继承性机制使得子类不仅可以重用其父类的数据结构和程序代码,而且可以在父类代码的基础上

16、方便地修改和扩充,这种修改并不影响对原有类的使用。,2018/10/21,35,面向对象方法学的优点,与人类习惯的思维方法一致 稳定性好 可重用性好 较易开发大型软件产品 可维护性好,2018/10/21,36,面向对象方法使组织问题变得简单,用面向对象方法学开发软件时,构成软件系统的每个对象就像一个微型程序,有自己的数据、操作、功能和用途。 因此可以把一个大型程序分解成一系列本质上相互独立的小产品来处理。既降低了技术难度,也降低了管理难度。 因此在大型软件产品开发中,面向对象范型优于结构化范型。,2018/10/21,37,面向对象方法学的优点,与人类习惯的思维方法一致 稳定性好 可重用性好 较易开发大型软件产品 可维护性好,2018/10/21,38,可维护性好,面向对象的软件稳定性比较好。 面向对象的软件比较容易修改。 面向对象的软件比较容易理解。 易于测试和调试。,当对软件的的功能或性能的 要求发生变化时,通常不会 引起软件的整体变化,往往 只需对局部作一些修改。由 于对软件所需做的改动较小 且限于局部,自然比较容易 实现。,2018/10/21,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号