计算机教学 实验中心 第17单元 面向对象方法 计算机软件基础 The software basic of compute 主讲:赵英良
主讲:赵英良 计算机教学 实验中心 第17单元 面向对象方法 计算机软件基础 The software basic of computer
n几Ln 教学目标、内容 CTEC 了解面向对象程序设计的基本概念 了解面向对象程序设计的特点 第2页
第 2 页 教学目标、内容 了解面向对象程序设计的基本概念 了解面向对象程序设计的特点
n几Ln 本单元涉及内容 CTEC 第11章面向对象的软件开发方法 11.1面向对象方法概述 P325P333 第3页
第 3 页 本单元涉及内容 第11章 面向对象的软件开发方法 11.1 面向对象方法概述 P325 ~ P333
n几Ln 、面向对象的基本概念 CTEC “面向对象(0 bject Orented) “简称为“OO”。这是目前计算 机业界使用的高频词 “OO代表着一种新的思维方式 代表着一种新的程序设计方法的 潮流。 第4页
第 4 页 一、面向对象的基本概念 “面 向对象( Object Orented ) “简称为“OO”。这是目前计算 机业界使用的高频词 “OO”代表着一种新的思维方式 代表着一种新的程序设计方法的 潮流
n几Ln 1.什么是面向对象方法(思想) CTEC 传统的程序设计方法,不论是需求分析,还是系统设计, 都是针对数学模型的,出发点是“怎样做(How)?“, 即用讣算机求解这个实际问题应该”怎样做?“。从实 问题到求解模型(数学模型)的抽象都是围绕”怎样 做?“去进行的。 现实世界是由物质组成的,物体的形式是多样化的,这 就是问题域( Domain)。人认识事物的规律:首先是认 识这个问题域,它”是什么?“。当物体反映到头脑中 后,变成意识,得到抽象的概念,及所谓逻辑世界。 逻辑世界是由对象组成的。对象在具体的逻辑世界中担 当一定的角色,并完成一定的功能(动作);对象有自 己的属性和动作。”对象“表现现实世界中的某个具体 的事物。 第5页
第 5 页 1.什么是面向对象方法(思想) 传统的程序设计方法,不论是需求分析,还是系统设计, 都是针对数学模型的,出发点是“怎样做(How)?“ , 即用计算机求解这个实际问题应该”怎样做?“。从实 际问题到求解模型(数学模型)的抽象都是围绕”怎样 做?“去进行的。 现实世界是由物质组成的,物体的形式是多样化的,这 就是问题域(Domain)。人认识事物的规律:首先是认 识这个问题域,它”是什么?“。当物体反映到头脑中 后,变成意识,得到抽象的概念,及所谓逻辑世界。 逻辑世界是由对象组成的。对象在具体的逻辑世界中担 当一定的角色,并完成一定的功能(动作);对象有自 己的属性和动作。”对象“表现现实世界中的某个具体 的事物
n几Ln CTEC 面向对象(00)方法的出发点是:“是什么 (What)?”,即要求解的实际问题,它到 底》是什么?。 “面向对象”技术追求的是软件系统对现实 世界的直接模拟,尽量实现将现实世界中的 事物直接映射到软件系统的解空间。 面向对象的程序设计技术是以对象为基础, 以消息驱动对象实现操作的一种全新的程序 设计方法。 第6页
第 6 页 面向对象(OO)方法的出发点是:“是什么 (What)?”,即要求解的实际问题,它到 底”是什么?。 “面向对象”技术追求的是软件系统对现实 世界的直接模拟,尽量实现将现实世界中的 事物直接映射到软件系统的解空间。 面向对象的程序设计技术是以对象为基础, 以消息驱动对象实现操作的一种全新的程序 设计方法
n几Ln 面向对象程序设计 gramming CTEC QOP是软件系统设计与实现的新方法。 0将数据及对数据的操作放在一起,作为一个相互依 存、不可分割的整体来处理。 00P采用数据抽象和信息隐藏技术,它将对象和对对象 的操作抽象成一种新的数据类型—一类。拓宽了描述复 杂现实问题的能力。 00P方法是通过增加软件的可扩充性和可重用性来改善 并提高软件的生产率的。 0OP的特点 继承了sP的优点(任务分解、模块化) 抽象数据类型ADT 继承性、封装性、可重用性 第7页
第 7 页 面向对象程序设计 OOP—OOProgramming OOP是软件系统设计与实现的新方法。 OOP将数据及对数据的操作放在一起,作为一个相互依 存、不可分割的整体来处理。 OOP采用数据抽象和信息隐藏技术,它将对象和对对象 的操作抽象成一种新的数据类型——类。拓宽了描述复 杂现实问题的能力。 OOP方法是通过增加软件的可扩充性和可重用性来改善 并提高软件的生产率的。 OOP的特点: 继承了SP的优点(任务分解、模块化) 抽象数据类型ADT 继承性、封装性、可重用性
n几Ln 2.面向对象方法产生的背景 CTEC 件的巨大作用计算机技术的发屐,极大推动了社会 的发展。而社会的发展又给计算机科学提出了新的要求 计算机科学只有不断进行自身提高和完善,才能适应不 断进步的社会生产力的需要。 传统方法的历史功绩传统的程序设计方法对“软件生 产工程化”曾起过重要的促进作用,部分缓解了软件危 机,用传统方法成功地指导软件开发的范例也很多。 软件危机但是,传统的方法学并不能完全消除软件危 机,用传统方法开发软件的生产率已远远不能满足要求 成为计算机科学发展的阻力。 面向对象方法(00)就是在这种背景下诞生的,它使 业界看到了成功的希望。同时也促使00方法和技术的研 究得到迅速发展。 第8页
第 8 页 2.面向对象方法产生的背景 软件的巨大作用 计算机技术的发展,极大推动了社会 的发展。而社会的发展又给计算机科学提出了新的要求。 计算机科学只有不断进行自身提高和完善,才能适应不 断进步的社会生产力的需要。 传统方法的历史功绩 传统的程序设计方法对“软件生 产工程化”曾起过重要的促进作用,部分缓解了软件危 机,用传统方法成功地指导软件开发的范例也很多。 软件危机 但是,传统的方法学并不能完全消除软件危 机,用传统方法开发软件的生产率已远远不能满足要求, 成为计算机科学发展的阻力。 面向对象方法(OO) 就是在这种背景下诞生的,它使 业界看到了成功的希望。同时也促使OO方法和技术的研 究得到迅速发展
n几Ln 3.传统程序设计方法存在的问题 CTEC 生产率提高的幅度远不能满足需要 软件重用程度很低 软件维护困难 软件不能真正满足用户的需要 第9页
第 9 页 3.传统程序设计方法存在的问题 生产率提高的幅度远不能满足需要 软件重用程度很低 软件维护困难 软件不能真正满足用户的需要
n几Ln (1)生产率提高的幅度远不能满足需要 CTEC 生命周期方法学强调需求分析的重要性,强调 每个阶段结束之前必须进行严格的评审和质量 把关,这确实加快了软件开发的速度。但所产 生的开发率的提高,远远赶不上对软件产品需 求率的增长。 据统计资料表明,从50年代到80年代的30年间 美国的软件生产率翻了两翻。但社会对软件的 需求每年以两位数字的百分比在增长。软件的 开发,已成为影响计算机应用的巨大桎梏和瓶 颈。 第10页
第 10 页 (1)生产率提高的幅度远不能满足需要 生命周期方法学强调需求分析的重要性,强调 每个阶段结束之前必须进行严格的评审和质量 把关,这确实加快了软件开发的速度。但所产 生的开发率的提高,远远赶不上对软件产品需 求率的增长。 据统计资料表明,从50年代到80年代的30年间, 美国的软件生产率翻了两翻。但社会对软件的 需求每年以两位数字的百分比在增长。软件的 开发,已成为影响计算机应用的巨大桎梏和瓶 颈