首页 理论教育 面向对象系统开发方法的适用范围

面向对象系统开发方法的适用范围

时间:2022-11-21 理论教育 版权反馈
【摘要】:面向对象系统开发方法认为,客观世界的问题都是由客观世界中的实体及其相互之间的关系构成的。面向对象系统开发方法通过组合可重复使用的模块组,自底向上建立信息系统。但是面向对象系统开发方法的局限性在于对计算机工具要求高,在没有进行全面的系统性调查分析之前,把握系统的结构有困难,因此,目前该方法需要与其他方法结合使用。

三、信息系统的开发方法

1.结构化系统开发方法(structured system development methodologies)

结构指系统内各组成要素之间的相互联系、相互作用的框架。结构化系统开发方法强调系统结构的合理性以及所开发软件的结构合理性,因此提出了一组提高软件结构合理性的准则,如分解和抽象、模块的独立性、信息隐蔽等。它是一种采用自顶向下的方式开发系统的方法。

软件工程技术中,控制复杂性的基本手段是分解与抽象。对于复杂的问题,由于人的理解力、记忆力有限,不可能触及问题的所有方面和全部细节。为了将复杂性降到可以掌握的程度,可以将大问题划分为若干个小问题,然后分别解决,亦即分解。分解可以分层进行,即先考虑问题最本质的属性,暂时将细节去掉,然后再逐层添加细节,直至涉及最详细的内容,即抽象。逐层分解体现了分解与抽象的原则,使人们不至于一下子陷入细节,而是有控制地逐步了解更多的细节。

按照系统的观点,任何事物都是相互联系的有机整体,因此,在分析问题时应首先站在整体的角度,将各项具体的业务或组织放在整体中加以考量。在保证全局正确的前提下,再逐层深入地考虑和处理具体的局部问题,即所谓的“自顶向下”的分析问题思路。

由于采用“自顶向下”的分解方法,可将一个复杂系统逐级向下分解成尽可能独立的子系统、模块、子模块等。这样用户不但对系统有一个总体概念性的印象,并随着逐级向下扩展,对具体的、局部的组成部分也会有深刻的印象,用户容易理解,就能够评价和提出意见。

结构化系统开发方法强调在整体优化前提下考虑具体的分析设计问题,开发过程规范,思路清楚,适合于开发大型、复杂的系统。采用这种开发模式,要求系统开发人员在调查中充分掌握用户需求、管理状况以及未来可能发生的风险,开发的工作量很大,开发周期较长。

结构化系统开发方法主要是面向数据流的。它由结构化系统分析、结构化系统设计、结构化程序设计等一整套方法体系构成,当前一般采用“结构化分析和设计”CASE工具来完成。结构化系统开发方法是目前仍然被广为采用的一种系统开发技术方法,我们在后续的系统开发章节中,将重点介绍这一开发方法。

2.面向对象系统开发方法(OO法)

面向对象其系统开发方法是由20世纪80年代各种面向对象的程序设计方法逐渐发展起来的,其基本思想是:客观世界是由各种各样的对象组成的,每种对象都有各自的内部状态和运动规律,不同的对象之间相互作用和联系就构成了各种不同的系统。面向对象系统开发方法的出发点和所追求的目标是分析、设计和实现一个尽可能接近人们认识的系统,即尽量使描述问题的问题空间和解决问题的方法空间在结构上一致。对问题空间进行自然分割,以便以接近人类思维的方式建立问题与模型,对客观实体进行结构模拟和行为模拟,从而使设计出的软件尽可能直接描述现实世界,构造出模块化、可重用的、维护性好的软件,并能控制软件的复杂性,降低开发维护费用。

面向对象系统开发方法认为,客观世界的问题都是由客观世界中的实体及其相互之间的关系构成的。将客观世界中的实体抽象为问题空间中的对象,由于需要解决的问题不同,所以面向的对象也就不同,因此对象是不固定的。每种对象都有各自的内部状态和运动规律,不同对象之间的相互作用和联系就构成了各种不同的系统。当设计和实现一个客观系统时,如能在满足需求的条件下,将系统设计成由一些不可变的(相对固定)部分组成的最小集合,这个设计就是最好的。它把握了事物的本质,因而不再被周围环境(物理环境和管理模式)的变化以及用户需求的不断变化所左右。这些不可变的部分就是所谓的对象。

面向对象系统开发方法以对象为中心,具有以下特点:

(1)封装性。面向对象系统开发方法中,程序和数据是封装在一起的,对象作为一个实体,其操作隐藏在方法中,其状态由对象的“属性”来描述,并且只能通过对象中的“方法”来改变,外界无法得知。封装性构成了面向对象系统开发方法的基础,因而,这种方法的创始人认为,面向对象就是“对象+属性+方法”。

(2)抽象性。面向对象方法中,把从具有共同性质的实体中抽象出的事物本质特征概念,称为“类”(class),对象是类的一个实例,类中封装了对象共有的属性和方法。

(3)继承性。继承性是类特有的性质,类可以派生子类,子类自动继承父类的属性与方法,因此在定义子类时,只需说明它不同于父类的特性,从而大大提高了软件的可重用性。

(4)动态链接性。对象间的联系是通过对象间的消息传递动态建立的。

面向对象系统开发方法通过组合可重复使用的模块组,自底向上建立信息系统。它是从系统的构成入手,希望将系统的最基本结构搞清楚,从现实世界中抽象出系统组成的基本实体——对象。对象是构成所要开发的信息系统的基本要素。如果将这些对象描述清楚了,就能以比较大的自由度来构建信息系统。外界环境发生了变化,可以通过重新组合对象来应对环境的变化。

面向对象是20世纪80年代以来国内外软件行业最为关注的技术之一,并已广泛应用于程序设计语言、程序设计方法学、操作系统、数据库管理系统以及系统分析与设计方法等领域。面向对象方法学所引入的对象、方法、类等一系列重要概念和良好机制,为我们认识和模拟客观世界、分析、设计和实现大型复杂工程系统奠定了坚实的基础。应用面向对象方法开发系统具有以下优势:面向对象的分析方法能够更加贴切地模拟现实世界的事物对象;允许自下而上分析系统成分;开发周期短,开发费用少,开发过程容易控制;面向对象的方法提供“继承”的特性,在创建新的对象时,可以继承现有对象的某些功能,从而减少编码和编程时间;面向对象支持图形化用户界面的实现;对象封装技术使系统具有很好的可修改性和可靠性;目前市场上大多数开发工具都支持面向对象的开发过程和编程,同时提供了面向对象的快速应用开发(RAD)工具,这可以大大节省开发费用,缩短开发时间。但是面向对象系统开发方法的局限性在于对计算机工具要求高,在没有进行全面的系统性调查分析之前,把握系统的结构有困难,因此,目前该方法需要与其他方法结合使用。

与结构化方法相似,面向对象系统开发方法也是由面向对象的系统分析方法(OOA)、面向对象的系统设计方法(OOD)和面向对象的程序设计方法(OOP)构成。

3.计算机辅助开发方法(CASE)

长期以来,人们进行系统开发的主要手段是手工方式,系统开发的速度和质量主要取决于系统分析人员、程序设计人员等的个人经验和水平。在这种开发方式下存在着一些难以克服的问题:如系统开发周期长,工作效率低;质量得不到保证,数据一致性差;文档工作不规范;系统维护工作量大等。20世纪80年代末,人们将计算机图形处理技术、程序生成技术、关系数据库技术和各类开发工具相结合,形成了支持系统开发的综合计算机辅助软件工程开发环境(Computer-Aided Software Engineering),简称为CASE,在CASE环境中可以使用计算机来辅助信息系统开发。这种辅助主要体现在帮助开发者方便、快捷、自动地产生出系统开发过程中的各种图表(如数据流程图、结构图、层次化功能图)、程序和说明性文档,这样基本解决了信息系统开发中的瓶颈问题。由于CASE环境的出现从根本上改变了开发信息系统的物质基础,从而使得在利用CASE开发一个系统时,其考虑问题的角度、开发过程的做法以及实现系统的措施等方面,都与传统方法有所不同,故人们又将借助于CASE环境和工具来开发信息系统的方法称为计算机辅助开发方法。

严格地讲,CASE只是一种开发环境而不是一种开发方法。采用CASE工具进行系统开发,必须结合一种具体的开发方法,如结构化系统开发方法、面向对象系统开发方法等。CASE方法只是为具体的开发方法提供了支持每一过程的专门工具,因而CASE工具实际上是把原先由手工完成的开发过程转变为以自动化工具和支撑环境支持的自动化开发过程。CASE中集成了多种工具,这些工具可以单独使用,也可以组合使用。CASE的概念也由一种具体的工具发展成为开发信息系统的方法学。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈