面向对象的软件开发方法综述.doc_第1页
面向对象的软件开发方法综述.doc_第2页
面向对象的软件开发方法综述.doc_第3页
面向对象的软件开发方法综述.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象的软件开发方法综述 SA03023030 史鸿声面向对象是近十几年来迅速形成和发展起来的一种新的软件开发方法和理论。简单的说,它是一种按照人们对现实世界习惯的认识规律和思维方式来研究和模拟客观世界的方法学。它将现实世界中的任何事物均视为“对象”,把整个世界看成是由许多不同种类的对象构成,每一个对象都有自己的内部状态和运动规律,不同对象之间的相互联系和相互作用就构成了完整的客观世界。面向对象方法学所引入的对象,类,方法,消息,继承,封装等一系列重要概念和良好机制,为我们表达和反映客观世界,分析,设计和实现复杂系统,提供了先进的技术方法,并奠定了坚实的理论基础。它可使软件设计人员摆脱结构程序设计的框框,从应用的角度来思考问题,更好的理解用户的需求。实践证明,面向对象方法和技术可以开发出结构清晰,易于维护的软件系统。传统的软件开发方法是把软件开发的过程划分为分析,设计编码,测试和维护等几个阶段,这种阶段划分多年来一直被广泛应用,但它存在有以下一些问题:1) 偏离实际,过于着重纸面的分析和设计2) 很难在规范的环境下学习开发3) 开发过程的错误很难发现或在最后才能查验4) 不能支持“原型”的概念5) 过于强调用户需求的完整和准确表达6) 不能支持软件复用的概念7) 开发周期长,在完成编码之前看不到任何可演示和运行的东西面向对象方法使一种以对象为中心,与传统软件工程完全不同的方法,面向对象的程序设计对问题描述的抽象程度更高,从而更适合人的思维模式,它以数据为中心组织系统,把数据和操作有机地结合起来。面向对象的思想与方法已被用于许多不同的领域,如程序设计语言,软件开发方法学,形式化规范描述,操作系统,分布存储和并发计算,人工智能,实时系统,数据库甚至硬件设计等领域。从世界软件产品市场来看,有三类产品将会很快取代当前的各种产品,它们是面向对象的操作系统,面向对象的应用开发工具和面向对象的数据库。 面向对象方法的基本特征有:1 数据抽象用以定义对象的属性和操作对象的服务(即数据和操作),对对象中属性的访问必须通过服务来进行。数据抽象的主要方面是标志主题和对象。主题是提供模型的规模,对象是表示客观实体的属性和服务。数抽象还包括了父类和子类的概念,类结构为继承特征奠定了基础,有相同属性和服务的对象为同一类。2 封装封装体现了对象和使用者之间的关系,封装把对象的属性(数据)和操作(程序)隐蔽在一个单一的模块之中。3 继承继承使类所组成构件库的效率提高,为复用奠定了基础。在类结构中,子类可以继承父类的属性和服务。4 通过消息进行通讯在面向对象的环境中,对象之间组成网状结构,同时由于封装特性,对象间的通信是通过相互传递消息进行的,对象根据消息来进行操作。面向对象方法支持一种“模板式”(Pattern)的开发方法。在面向对象环境中存在着丰富的模板(即对象和类)的构件库,在设计系统时,可针对实际问题在库中查找模板,然后把找到的模板拼装成系统。若没有与问题相符合的模板,则对相似的模板进行修改或重新的构造新模板,同时把它添加到库中去,这就是类结构的概念。它帮助我们描述问题空间的层次关系,把具有公共属性和操作的类放在高的层次,所有具有该属性和操作的新类在增加自身的特有属性和操作后即成为该结构的子类,子类下面又可以派生子类。,其集合构成构件库。复用是面向对象方法中最有效的特性之一。关于类结构的派生上面已经提到。面向对象的这种机制使得每个类共享其超类(Superclass)的数据结构和方法,超类是层次结构中在该类之上的类,通过类的派生和继承,构件库不断扩大。使得库中的所有模板实现了复用的特性。面向对象程序设计面向对象的程序设计方法是一种自底向上的开发方法,它从内部结构上模拟客观世界,属于“白箱法”,其开发过程是从“用什么做”到“要做什么”。它把程序看成为:对象=(算法+数据结构) 程序=(对象+对象+)该方法以数据为核心,进行系统模块设计的基本出发点是软件的兼容性,易用性、复用性和易扩充性。它有别于传统的结构化程序技术中的“程序=算法+数据结构”的开发思想,从而解决了传统技术中软件难以复用的问题。面向对象系统的软件开发 传统的结构化软件开发,通常有“流水型”、“螺旋型”和、“重复原型”三种模式。而面向对象技术可以用于任何开发模式。一般地,面向对象系统的软件开发由下面四个阶段组成:1、需求分析阶段 该阶段的主要任务就是通过对问题域的研究,产生一个外部可观察的行为规格说明书一个完整、一致和可行的需求说明。这一阶段的关键是研究、理解和文档化问题,它应该包括以下的活动 (1)识别类和对象即系统需要处理的现实世界事物。 (2)识别结构即现实世界对象之间的关系。 (3)定义属性即对象和某些结构中的数据单元。 (4)定义服务即对象要完成的处理。 (5)识别主题将所有的类按照逻辑分组,控制用户一次观看系统内容的多少。通常采用下面介绍的分层技术,把以上的每项活动当作其中的一层。 (1)类和对象层该一活动的最重要的部分是命名类和对象。 (2)结构层 该层描述两种结构。第一种结构是对象的类属结构,第二种结构是对象的整体与部分结构(聚合结构)。 (3)属性层该层描述对象的数据项的定义。 (4)服务层该层描述对象的外部可见行为的定义。此外,还应给出对象之间的消息连接。经过属性层和服务层后,其分析结果可以用类似图1和图2的文档形式表示出来。(5)主题层该层描述问题域中各类的逻辑分组。它可以表示为三种状态:折迭仅显示主题的名称和标号。部分折迭显示主题的名称、标号和主题中的项目清单。全部展开显示主题的全部具体内容。 2、系统设计阶段这一阶段从通过系统分析得到的软件需求规格说明书(分析模型)出发,形成软件的具体设计方案的过程。它的主要目的是建立一种对正在开发系统将怎样工作的理解。它确定具体的数据结构和算法,并且将它们封装成各种类,以便在下一阶段中进行编码工作。该阶段对于提高软件质量和工作效率来讲是非常关键的。一个优良的面向系统设计的基本要素应包括: (1)类和类的继承必须具有高度凝聚性。即类和类的继承应该具有单一的用途。如果一个类具有多个用途,应该将其分解为多个类。 (2)类与类之间的耦合(相互依赖)应该很松散。只有一个例外:因为类的继承必须是紧密联系的,所以某个类必须同其祖先类紧密耦合。 (3)某个类的数据实现细节对于别的类来说应该是隐藏的。 (4)保持较小的类和方法的定义。 (5)当设计类和类族时,应该保持其协议或接口的稳定性。 3、演化阶段该阶段是在设计基础上的编码、测试、集成的迭代渐近过程。当问题域已经明确定义;最基本的问题关键已经把握;最基本的问题关键的解决方法已经找到;它的设计可以预见系统的实现时,表示设计阶段已完成。并开始进入演化阶段。 在面向对象的设计中,不是以算法的逻辑结构来划分模块,而是以类和对象的逻辑结构来划分模块。然后分模块开发系统。为了保证系统的整体一致性 ,可以先开发系统中的公共部分,再展开各个个别部分的演化。 4、维护阶段该阶段对软件投入运行之后出现的问题进行维护。这一阶段在面向对象系统中是不可避免的,但面向对象技术中的某些策略,能减少开发和维护的复杂性。该阶段的代价取决于是否有一个好的分析与设计。总结面向对象的软件开发是以对象为主线来描述问题空间、形成模型,用对象间的消息传递来表示用户的功能需求。由于它在需求分析阶段是基于一个相对稳定的问题空间来进行的,所以它能完整地,明确地反映客观世界,使系统结构与问题结构保持一致,使系统的设计、编程和维护显得十分容易。 由于对象类的设计与实现不受具体任务的限制,故产生的基本构件有较好的易复用性;问题域中的任何具体应用任务都可以在这样的基础上完成,因而系统的扩充性相当方便。 在面向对象软件开发的分析阶段中所认识的对象及其相互关系能在设计设段得到保留和丰富,并且可以直接编程来实现,因而,不再存在传统软件开发过程中各阶段出现断层的情形。 参考文献1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论