第5章 面向对象的方法.ppt

  1. 1、本文档共172页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 面向对象的方法

第5章 面向对象的方法 5.1 面向对象方法概述 5.2 面向对象分析 5.3 面向对象设计 实例分析 本章小结 尽管传统的软件工程方法给部分地缓解了软件危机,给软件产业带来了巨大进步,开发中、小规模的软件获得了成功。但是传统的软件工程方法并不适用于所有类型的软件开发,并且自身也存在着局限性。随着软件规模越来越大、越来越复杂,用这种方法开发大型软件系统时,很少取得成功。 20世纪80年代中期起,开始注重面向对象技术的研究,到了20世纪90年代,面向对象方法成为人们在开发软件时的首选。 5.1 面向对象方法概述 5.1.1传统软件工程方法存在的问题 传统的软件工程方法强调需求分析的重要性,要求在每个阶段结束前必须进行评审,在软件开发过程中实行严格的质量管理,从而提高软件开发的质量和成功率;采用先进的技术方法(主要是结构分析、设计、编程技术)和软件工具,加快了软件开发的速度。但是,传统的软件工程方法仍然存在着许多根本性的问题。 5.1 面向对象方法概述 1. 软件重用性差 重用性指同一事物不经修改或稍加修改就可多次重复使用的性质,软件重用性是软件工程追求的目标,也是节约费用、减少人员、提高软件生产率的重要途径。结构化分析、设计和结构化程序开发,虽然一定程序上提高了开发效率,但却没能很好地解决软件重用问题。同类型项目,如果需求发生一些变化,都要从头开始,原有的系统很难重用。 5.1 面向对象方法概述 2. 软件可维护性差 软件工程强调软件可维护性,强调文档资料的重要性,规定最终的软件产品应该由完整、一致的文档成分组成。开发过程中,始终强调软件的可读性、可修改性和可测试性是软件的重要质量指标。但实践表明,即使是用生命周期方法学开发出的软件,维护起来仍然相当困难,软件维护成本仍然很高。 3. 软件生产率提高的幅度远不能满足需要 传统软件工程方法提高许多软件的开发效率,但提高的幅度仍然很有限,远远赶不上市场对软件产品的需要。 5.1 面向对象方法概述 4. 开发出的软件不能满足用户需要 用传统软件工程方法在开发需求模糊或需求动态变化的系统时,开发出的软件系统往往不能真正满足用户的需要。所谓“不能真正满足用户的需要”,主要有以下两种表现:一种是开发人员不能完全获得或不能彻底理解用户的需求,以致开发出的软件系统与用户预期的系统不一致,不能满足用户的需要;另一种表现是,所开发出的系统不能适应用户需求的经常变化,系统的稳定性和可扩充性不能适应变化。传统软件工程方法是围绕处理功能的“过程”构造系统的,而用户需求的变化大部分是针对功能的,用户需求的变化往往造成系统结构的较大变化,从而需要花很大代价才能实现这种变化。 5.1 面向对象方法概述 5.1.2 面向对象方法概述 1. 面向对象方法学的要点 面向对象的方法是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。将软件系统看作一系列离散的解空间对象的集合,并使问题空间的对象与解空间对象尽量一致,这些解空间对象相互之间发送消息而相互作用,从而获得问题空间的解。这样,问题空间与解空间的结构、描述的模型十分一致,减少了软件系统开发的复杂度,使系统易于理解和维护。 5.1 面向对象方法概述 面向对象方法具有下述4个要点: (1)对象(Object) 客观世界由各种对象组成,任何事物都是对象,复杂的对象可以由比较简单的对象组合而成。按照这种观点,可以认为整个世界就是一个最复杂的对象。面向对象方法把客观世界中的实体抽象为问题题中的对象。 面向对象方法用对象分解取代了传统方法的功能分解。面向对象的软件系统由对象组成,软件中的任何元素都是对象,复杂的软件对象由比较简单的对象组合而成。 5.1 面向对象方法概述 (2)类(class) 和实例(Instance) 把所有对象都划分成各种对象类,每个对象类都定义了一组数据和一组方法。其中数据用于表示对象的静态属性,是对象的状态信息;方法是允许施加于该类对象上的操作,是该类所有对象共享的,并不需要为每个对象都复制操作的代码。 属于某个类的对象叫做该类的实例。对象的状态则包含在它的实例变量,即实例的属性中。因此,每当建立该对象类的一个新实例时,就按照类中对数据的定义为这个新对象生成一组专用的数据,以描述该对象独特的属性值。 5.1 面向对象方法概述 例如学生类都具有学号、姓名、性别等属性,具体到每一个学生,这些属性都是不尽相同的。类好比是一个对象模板,它定义了各个实例所共有的结构,用它可以产生多个对象。类所代表的是一个抽象的概念或事物,在客观世界中实际存在的是类的实例,即对象。 (3)继承(Inheritance) 按照父类(也称为基类)与子类(也称为派生类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。在这

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档