电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

软件工程007VIP免费

软件工程007_第1页
1/34
软件工程007_第2页
2/34
软件工程007_第3页
3/34
软件工程面向对象的分析和设计方法尽管传统的生命周期方法学曾经给软件产业带来了巨大的进步,部分地缓解了软件危机,在开发许多中、小规模软件项目都获得了成功。但是,这种方法学应用于大型软件产品的开发时,很少取得成功。为了克服传统方法学的缺点,近年来很快发展起来的面向对象方法学已成为当前最好的软件开发技术,是人们开发软件时的首选范型。9.1面向对象方法学概述面向对象(Object-Oriented,缩写为OO)方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。客观世界的问题都是由客观世界中的实体及实体与实体间的关系构成的。我们把客观世界中的实体抽象为问题域中的对象(object)。1面向对象方法学的要点认为客观世界是由各种对象组成,任何事物都是对象,复杂的对象可由比较简单的对象以某种方式组合而成。把所有对象划分成类(class),每个类都定义了一组数据和一组方法(method)。数据表示对象的静态属性(attribute),是对象的状态信息。方法是允许施加于该类对象上的操作,又称服务。对象类组成层次结构的系统(又称为类等级)。处于下层的子类(派生类)可以继承(inherit)上层的父类(基类)的特性(包括数据和方法)。但如果在子类中对某些特性做了重新描述,在子类中这些特性将以新描述为准,即低层特性将屏蔽高层的同名特性。对象彼此间仅能通过传递消息(message)互相联系。对象不同于传统的数据,不能从外界直接对它的私有数据进行操作;对象是进行处理的主体,必须必消息请求它执行它的某个操作(方法),处理它的私有数据。私有信息被封装(encapsulate)在对象类中,实现了信息隐藏。面向对象的定义OO=Object+Class+Inheritance+Communicationwithmessages面向对象=对象+类+继承+通信2面向对象方法学的优点与人类习惯的思维方法一致。减少了问题域和求解域之间的语义断层。稳定性好。结构化范型以算法为中心,开发过程基于功能分析和功能分解。用户需求变化大多针对功能,所以功能需求变化时将引起软件结构整体修改,这样的系统是不稳定的。面向对象范型以对象为中心,开发基于构造问题领域的对象模型。由于现实世界的实体是相对稳定的,所以以对象为中心的软件系统也相对稳定。功能需求变化时并不会起软件结构的整体变化,仅需要作一些局部的修改,如从已有类派生出一些新的子类以实现功能扩充或修改。可重用性好。传统方法学,数据和操作是分离的,具有功能内聚的模块就是理想的可重用模块。但即使功能内聚模块也并不是自含的和独立的。操作脱离了数据毫无意义,要重用模块,相应的数据也必须重用。如果数据不同,就要修改数据或模块。在面向对象范型中,对象封装了数据和操作,因此有很强的自含性,此外,对象固有的封装性和信息隐藏机制,使对象内部实现与外界隔离,只通过接口与外界通信,具有较强的独立性。所以,对象是比较理想的模块和可重用的软件成分。两种重用对象类方法:一是创建该类的实例,从而直接使用它,二是从对象类派生出一个满足当前需要的新类。可维护性好。稳定定好。容易修改。•对象类的独立性好,修改一个类很少会影响软件其他类。•继承机制使得修改和扩充比较容易,只须派生新类,不用修改原有成分。•多态性机制使得功能扩充时所需的修改和新增代码进一步减少。容易理解。面向对象技术符合人们习惯的思维方式,容易理解。易于测试和调试。类是独立性强的模块,向类的实例发消息即可运行它,测试容易实现。如果发现错误也常常集中在类的内部,容易调试。较易开发大型软件产品面向对象范型中,每个对象有自己的数据、操作、功能和用途,象一个微型程序,因此,把一个大型软件产品分解成一系列本质上相互独立的小产品来处理,降低了开发的技术难度,管理也变得容易。3面向对象的软件工程方法面向对象的软件工程方法是面向对象方法在软件工程的全面运用。它包括面向对象的分析(OOA)、面向对象的设计(OOD)、...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部