软件维护困难 按生命周期方法学开发出的软件,维护成本很 高,据统计数据表明,软件维护的生产率比软 件开发的生产率低几十倍。 80年代,美国一年花费的软件维护费用高达 300多亿美元。 90年代,软件维护费用占系统研制、开发总费 用的70%-80%。 第11页
第 11 页 软件维护困难 按生命周期方法学开发出的软件,维护成本很 高,据统计数据表明,软件维护的生产率比软 件开发的生产率低几十倍。 80年代,美国一年花费的软件维护费用高达 300多亿美元。 90年代,软件维护费用占系统研制、开发总费 用的70%-80%
软件不能真正满足用户的需要 实践表明,用传统方法开发的大型应用系统往往不能 真正满足用户的需要。在美国,开发出的系统中: 符合用户需要并顺利投入使用的系统仅占总数 的1/4; 中途天折的系统占1/4; 将近1/2的系统,虽然完成了开发过程,但并未 被用户采用或并未被长期使用。 还表现在: 开发人员不能完全获得或不能彻底理解用户的要求, 以致开发出的软件系统与用户预期的系统不一致, 不能满足用户的需要。 所开发出的系统不能适应用户经常变化的情况,系 统的稳定性和可扩充性不能满足要求。 第12页
第 12 页 软件不能真正满足用户的需要 实践表明,用传统方法开发的大型应用系统往往不能 真正满足用户的需要。在美国,开发出的系统中: 符合用户需要并顺利投入使用的系统仅占总数 的1/4; 中途夭折的系统占1/4; 将近1/2的系统,虽然完成了开发过程,但并未 被用户采用或并未被长期使用。 还表现在: 开发人员不能完全获得或不能彻底理解用户的要求, 以致开发出的软件系统与用户预期的系统不一致, 不能满足用户的需要。 所开发出的系统不能适应用户经常变化的情况,系 统的稳定性和可扩充性不能满足要求
现实世界与00系统的对应关系 oO方法是将现实世界抽象为”对象是什么?“,所以说,OO方 法是更高一级的抽象。它和人认识现实世界的方法是一致的。 现实问题空间 面向对象解空间 物质: 具体事物: 辆白色的自行车 一个对象—自行车的实例 意识: 抽象概念: 自行车 自行车类 现实世界中事物分为两大部分:物质和意识;前者表示是具体的事 物,后者描述的是某个抽象的概念。 现实世界中,“一辆白色自行车”是客观存在,是物质的;而自行 车是人脑中一个抽象的概念,是主观意识 在OO系统中自行车用“自行车类”来表达,“一辆白色自行车”是 个具体的对象,是自行车类的一个实例。 第13页
第 13 页 现实世界与OO系统的对应关系 OO方法是将现实世界抽象为”对象是什么?“ ,所以说,OO方 法是更高一级的抽象。它和人认识现实世界的方法是一致的。 现实问题空间 面向对象解空间 物质: 一辆白色的自行车 意识: 自行车 具体事物: 一个对象——自行车的实例 抽象概念: 自行车类 •现实世界中事物分为两大部分:物质和意识;前者表示是具体的事 物,后者描述的是某个抽象的概念。 •现实世界中,“一辆白色自行车”是客观存在,是物质的;而自行 车是人脑中一个抽象的概念,是主观意识; •在OO系统中自行车用“自行车类”来表达,“一辆白色自行车”是 一个具体的对象,是自行车类的一个实例
面向对象程序设计 OP-00 Programming 00P是软件系统设计与实现的新方法。 0OP将数据及对数据的操作放在一起,作为一个相互依存、不 可分割的整体来处理 0OP采用数据抽象和信息隐臧技术,它将对象和对对象的操作 抽象成一种新的数据类型——类。拓宽了描述复杂现实问题 的能力。 00P方法是通过增加软件的可扩充性和可重用性来改善并提高 软件的生产率的。 0OP的特点: 继承了SP的优点(任务分解、模块化) 抽象数据类型ADT 继承性 封装性 可重用性 第14页
第 14 页 面向对象程序设计 OOP—OOProgramming OOP是软件系统设计与实现的新方法。 OOP将数据及对数据的操作放在一起,作为一个相互依存、不 可分割的整体来处理。 OOP采用数据抽象和信息隐藏技术,它将对象和对对象的操作 抽象成一种新的数据类型——类。拓宽了描述复杂现实问题 的能力。 OOP方法是通过增加软件的可扩充性和可重用性来改善并提高 软件的生产率的。 OOP的特点: 继承了SP的优点(任务分解、模块化) 抽象数据类型ADT 继承性 封装性 可重用性
00方法的4个要点 客观世界由各种对象组成。00的软件系统也是由 对象组成的;任何复杂的软件都是由简单的对象 组合而成的 所有对象都可以划分为不同的对象类;每个对象 类都有自己特定的数据和方法; 对象类具有层次结构;上层的类称为”父类“或” 基类“,下层的类称为”子类“或”派生类“。 子类可以继承父类的特性及操作; 对象之间通过传递”消息“互相联系(消息机 制)。 oo方法〓对象+类+继承性+消息机制 第15页
第 15 页 OO方法的4个要点 客观世界由各种对象组成。OO的软件系统也是由 对象组成的;任何复杂的软件都是由简单的对象 组合而成的; 所有对象都可以划分为不同的对象类;每个对象 类都有自己特定的数据和方法; 对象类具有层次结构;上层的类称为”父类“或” 基类“ ,下层的类称为”子类“或”派生类“ 。 子类可以继承父类的特性及操作; 对象之间通过传递”消息“互相联系(消息机 制)。 OO方法 = 对象 + 类 + 继承性 + 消息机制