软件的复用技术及开发方法(2)

2013-04-29 18:20
导读:2.2.2面向对象开发方法 面向对象的开发方法采用从特殊到一般的归纳方法,它是对现实世界中的实体进行分类,然后区分对象及其属性,整理对象及其组成

2.2.2面向对象开发方法
面向对象的开发方法采用从特殊到一般的归纳方法,它是对现实世界中的实体进行分类,然后区分对象及其属性,整理对象及其组成部分,并划分成不同的对象类,从而得到现实系统中对象及其关系,进而分析并掌握系统运行的规律。OOA的重点是使用面向对象的观点解决现实世界模型的建立问题,是利用从问题域中抽象出的类和对象来研究系统实际需求的一种分析方法。
这种方法是以对象作为分析问题、解决问题的核心,对问题空间进行直接映射,使计算机实现的对象与真实世界具有一一对应关系,所以自然符合人类认识规律,有效地解决了需求分析模型和软件设计模型的不匹配现象,它同时也易于适应系统的变化处理。面向对象的系统设计基本过程一般包括:问题域分析、发现和定义对象类、识别对象的外部联系、建立系统的静态模型、以及建立系统的动态行为模型。
(1)问题域分析:分析应用领域的业务范围、业务规则和业务处理过程,确定系统的责任、范围和边界,确定系统的需求;
(2)发现和定义对象类:识别对象和类,确定它们的内部特征:属性和服务操作;
(3)识别对象的外部联系:在发现和定义对象与类的过程中,需要同时识别对象与对象、类与类之间的各种外部联系,包括结构性的静态联系和行为性的动态联系;
(4)建立系统的静态结构模型:分析系统的静态结构,建立系统的静态结构模型,并且把它们用图形和文字说明表达出来;
(5)建立系统的动态行为模型:分析系统的行为,建立系统的动态行为模型,并且把它们用图形和文字说明表达出来。
面向对象模型比以往的模型有了很大的进步,但仍有不足。首先面向对象方法中对象的确定有时会因客观边界模糊而难以确定,这样很难保证软件描述的正确性。其次面向对象方法在描述问题域方面存在不足。在问题域中,面向对象方法把具体或抽象的问题现象直接表述为对象,同时把现象类型直接表述为类。大多数OOA方法支持多视角模型,即对同一问题域现象,不同的主体可以将它表述为同一对象或类型。但系统的描述在应用面向对象方法进行建模时常遇到这样的困惑,描述者力图通过面向对象的表述对存在的问题现象达成一致,然而结果得到的对象或类并不适合于某个描述者对对象的独自表述,即在面向对象模型中,很难把不同描述者对现象的描述正确的统一起来。 您可以访问中国科教评价网(www.NsEac.com)查看更多相关的文章。
2.2.3基于设计模式的开发方法
设计面向对象软件比较困难,而设计可复用的面向对象软件就更加困难。设计应该对手头的问题有针对性,同时对将来的问题和需求也要有足够的通用性。希望避免重复设计或尽可能少做重复设计。而模式是针对一个反复出现的问题优秀的解决方案,它的方法就是发现变化、封装变化〔2‘,。模式本身已经充分考虑了变化的情况,并且采用了一种特殊的对待变化的方法,它不是预先考虑会如何变化,而是考虑哪里可能会变化,然后隔离,所以当变化发生时不会带来全局性的破坏。
有经验的面向对象设计者能做出良好的设计,他们知道:不是解决任何问题都要从头做起。他们更愿意复用以前用过的好的解决方案。这些经验是他们成为内行的部分原因。实际上,在许多面向对象的系统中,都存在诸多的类和相互通信的对象的重复模式。这些模式帮助设计者将新的设计建立在以往工作的基础上,复用以往成功的设计方案。一个熟悉这些模式的设计者不需要再去发现它们,就能够立即将它们应用于设计问题中。使得面向对象设计更灵活、优雅,最终复用性更好。
模式可以在软件开发的各个阶段被使用,既可以创建一个解决单一问题的模式或者针对某一用例应用的模式,也可以同时使用多个模式来解决复杂的问题。模式的设计类型可以包括结构化的、行为化的和条件化的解决方案,因此,模式的应用范围是非常广阔和灵活的。一旦‘懂得了模式,许多设计决策自然而然就产生了。在人们充分认识到模式的重要性后,逐渐将面向对象软件的设计经验作为设计模式记录下来。每一个设计模式系统地命名、解释和评价了面向对象系统中一个重要的、重复出现的设计,能够被人们有效的利用。
(科教范文网 fw.nseac.com整理)

模式和系统架构有很大的相似性,都是处理一些抽象概念间的关系,但是二者还是有很大的不同,模式是领域无关的,它是解决一些抽象问题的,但是系统架构是针对所要解决的实际问题的,是领域相关的。模式在应用时可以
通过下述步骤进行设计:
(1)对问题领域进行分析、分解,结合模式的适用条件找到和待解决的问题匹配的模式,对该模式进行定制应用到具体系统中来。
(2)和模式结合在一起构建起整个系统架构。比如:MVC(Model-View-Controller),它是专门针对交互系统提出的,如果要构建一个交互系统,那么就可以直接应用MVC模式,然后在该模式所搭建的场景启发下去发现Model、View以及Controller,在大的场景的指导下根据其它的需求(模式)构建一些小的场景对系统进行有效的分化。
2.3 设计模式的优点
大多数设计模式还能使软件更容易修改和维护。因为它们都是久经考验的解决方案。它们的结构也都是经过长期发展形成的,比新构思的解决方案更善于应对变化。而且,这些模式所用代码往往更易于理解——从而使代码更易维护。
设计模式对优秀面向对象设计的策略提出了一些建议,其中包括按接口编程、尽量用聚合、找出变化并封装。这些策略在大多数设计模式中都遵循和使用着。所以用不着学习太多设计模式,只学几个就能使你理解这些策略的重要性。这种理解将会成为将策略应用于实际设计问题的一种能力,即使你并不直接使用设计模式。
设计模式还有一个好处是,可以在不使用巨型继承层次结构的情况下,为复杂问题创建出设计方案。同样,即使并不直接使用设计模式,不使用巨型继承层次结构也会使设计质量提高。
 

 

上一篇:石油工业地震勘探数据处理的特点和存在的问题 下一篇:没有了