三种系统开发方法的比较

发布时间:2014-06-05 21:55:48

三种系统开发方法的比较

【摘 要】信息系统的建设是现代信息工程发展的一个庞大课题,而完备高效的系统开发方法一直以来是各国系统开发组织和开发人员长期探究却无定论的话题。本文以此为研究背景,介绍了系统开发过程中结构化开发、原型开发、面向对象开发三种目前应用较广的开发方法,并对结构化开发方法、原型开发方法和面向对象开发方法的基本思想、基本原理、开发过程、方法特点及适用范围,在系统中的开发过程中的应用进行了较为详尽的阐述和说明。并根据这三种开发方法各自的基本思想、原理、开发阶段划分、方法的特点和适用范围的不同,做了比较、分析和总结,根据各自不同的特点简要分析了未来系统开发中开发方法的应用趋势,并对这三种开发方法的应用做了浅要的总结。

【关键字】系统开发 结构化法 原型化法 面向对象法

引言

随着我国与世界信息高速公路的接轨,企业通过计算机网络获得信息必将为企业带来巨大的经济效益和社会效益,企业的办公及管理都将朝着高效、快速、无纸化的方向发展。而在这其中,信息系统发挥着举足轻重的作用。

信息系统的建设是一个庞大的系统工程,它涉及到组织的内部结构、管理模式、生产加工、经营管理过程、数据的收集与处理过程、计算机硬件系统的管理与应用、软件系统的开发等各个方面。这就增大了开发一个信息系统的工程规模和难度,需要研究出科学的开发方法和过程化的开发步骤,以确保整个开发过程能够顺利进行。但是,至今还没有一种统一完备的开发方法。

传统的软件开发方法主要是生命周期法,它将软件开发过程大致划分为需求分析、系统设计、系统实施、系统测试等阶段,每一阶段的任务相对独立,对软件开发工作实施工程化管理。虽然生命周期法提高了开发工作的效率,但它也存在缺点,例如在前期进行系统设计时就要进行比较全面的整体设计,这导致系统开发周期变长,耗费变大。随着软件技术的发展,又引入了原型化方法和面向对象方法等。原型化方法是近年来提出的一种以计算机为基础的系统开发方法,它首先构造一个功能简单的原型系统,然后通过对原型系统逐步求精,不断扩充完善得到最终的软件系统。原型就是模型,而原型系统就是应用系统的模型。它是待构筑的实际系统的缩小比例模型,但是保留了实际系统的大部分性能。这个模型可在运行中被检查、测试、修改,直到它的性能达到用户需求为止。但是,原型开发方法也存在一些不足的地方,譬如,有的原模型在完成后,可能要被抛弃,这无疑使增加了系统开发成本。结合现实世界的客观事物,引入类和对象的概念,产生了面向对象开发方法。利用面向对象方法在进行系统开发时,由于贴近现实世界,简化了系统设计,缩短了系统的开发周期,降低了系统在以后的维护难度。但是,在进行大系统开发时,这种方法由于没有较为全面的系统体系结构,使系统变得越来越复杂,严重降低了系统的质量。

综上,在进行系统开发时,需要结合各种方法自身的特点优势,因此,寻求合适、高效的的开发方法就变得尤为重要。

理论回顾

1.结构化开发方法

“结构化”一词出自结构化程序设计,人们正是从结构化程序设计中得到了启发,将模块化的思想引入到系统开发设计中来。结构化方法的基本思想是:用系统工程的思想和工程化的方法,按用户至上的原则,结构化、模块化,自上而下地对系统进行分析,自下而上实现的开发方法。

结构化方法是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构是指系统内各个组成要素之间的相 互联系、相互作用的框架。结构化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。针对软件生存周期各个不同的阶段, 它有结构化分析(SA)、结构化设计(SD)和结构化程序设计(SP)等方法。

结构化开发方法的本质是功能的分解,将系统按功能分解为若干模块,每个模块是实现系统某一功能的程序单元,每一个模块都具有输入、输出和过程等基本特性。输入和输出分别是模块需要的和产生的数据,过程则是对模块具体处理细节的描述和表示。数据则在功能模块间流动。功能是一种主动的行为,数据是受功能影响的信息载体。因而它的编程模型被理解为作用于数据的代码。

从编程技术和程序设计的角度来说,结构化分析方法在进行程序设计时,描述任何实体的操作序列只需采用“顺序、选择、重复”三种基本控制结构,整个程序划分为若干个模块。每个模块要具有一种以上的特定功能,并且每个模块只能有一个入口和一个出口。这种程序设计采用自顶向下,逐步细分的方法展开,在一定的数据结构之下来设计对应的算法,然后分别实现数据结构设计和算法设计,因此,N.Wirth总结出:程序=算法+数据结构的形式。结构化程序设计中,问题被看作一系列需要完成的任务,函数(function)是用于完成这些任务的。所以说,最终解决问题的焦点集中于函数,而数据则在功能模块间流动。

1)方法基本思想

  结构化系统开发方法的基本思想是,将结构与控制加人到项目中,以便使项目在预定的时间内完成。用系统工程的思想和工程化的方法,按用户至上的原则,结构化、模块化、自顶向下地对系统进行分析与设计,是组织、管理和控制信息系统开发过程的一种基本框架。

具体地说,就是先将整个系统的开发划分成若干个相对比较独立的阶段,如系统规划、系统分析、系统设计、系统实施等。在前三个阶段采用自顶向下的方法对系统进行结构化划分,即从组织管理金字塔结构的最顶层人手,层层分解逐步深人至最基层;先考虑系统整体的优化,然后再考虑局部的优化。在系统实施阶段,采用自底向上的方法逐步实施,即按照前几个阶段设计的模块组织人员从最基层的模块做起,然后按照系统设计的结构,将模块一个个拼接到一起进行调试,自底向上,逐渐地构成整体系统。

结构化系统开发方法由管理策略和开发策略两个部分组成:

管理策略

强调系统开发的规划、进程安排、评估、监控和反馈。

开发策略

任务分解结构(Work Breakdown Structure,简称WBS)。包括系统规划、系统分析、系统设计、系统实施和系统支持。

WBS优先级结构。即系统开发所遵循的基本模式,如瀑布模型(Waterfall)、阶梯模型(Stair step)、螺旋模型(Spiral)、迭代模型(Iterative)等。

开发经验。计算机信息系统的开发是一个实践性非常强的过程,因此,开发经验是非常宝贵的一种系统开发资源,如何充分地利用开发人员丰富的开发经验也应该是系统开发生命周期研究的内容之一。

开发标准。系统开发标准通常包括活动、职责、文档、质量检验四个方面的标准。

2)方法基本原理

用户的积极参与。用户积极参与信息系统的开发的全过程,是信息系统开发能否成功的一个关键的、绝对必要的因素。

严格按划分的阶段和活动进行系统开发。运用系统处理方法,将系统开发的全过程采取“分而治之(Divide and conquer)的策略,将整个系统的开发过程分为一系列“阶段(Phases)”,然后再将阶段分为一系列的“活动(Activities)”,将活动划分为更小的、更易于管理和控制的“作业(Task)”。

设立检查点(Check point)。在系统开发的每一个阶段均设立检查点,来评估所开发系统的可行性,避免由于系统开发的失败造成更大的损失。

文档的标准化。文档标准化是进行良好通信的基础,是提高软件可重用性的有效的手段。

3)开发阶段划分

任何一个系统都有发生、发展和消亡的过程。这个过程称为生命周期,其使用的方法称为生命周期法。从提出要建立一个系统开始,到完全建成的全过程,是一个连续发展的过程,即一个阶段的完成就是下一个阶段的开始,这个过程称为系统的开发生命周期(System Development Life Cycle,SDLC)。

一个系统的生命周期,也即开发过程通常划分为以下五个阶段:

系统规划阶段

系统规划是根据企业或个人的总体目标和发展战略,确定待建系统的发展战略,明确企业或个人总的需求,在进行可行性分析的基础上制定系统建设的总体规划。

系统分析阶段

系统分析是通过调查、分析,通过一系列工具,构造出新系统逻辑模型。这一阶段的主要目的是解决系统将要“做什么”的问题。

系统设计阶段

系统设计是在系统分析提出的逻辑模型的基础上,对新系统的物理模型进行设计,包括总体结构设计、代码设计、界面设计、数据库设计、模块结构与功能设计、网络设计,也就是解决新系统具体“怎么做”的问题。最后提出实施方案。

系统实施阶段

系统的实施是按照系统设计提出的物理模型以及实施方案来进行程序设计与调试、业务人员培训以及系统测试与部署等工作。该阶段的实质是要将系统设计的物理模型转换为能够实际运行的系统。

系统运行与维护阶段

新系统投入运行以后,此阶段的任务是进行系统的日常管理、评价和监督审计。并对出现的一些问题。需求变化进行必要的修改、完善和维护,以确保系统的正常运行。

4)方法特点

结构化方法归纳起来有如下特点。

首先,强调面向用户的原则,使系统开发人员和用户密切联系。及时交流信息,从而有利于及时发现并解决问题,提高系统开发质量。

其次,严格按照阶段顺序进行。在运用结构化方法进行系统开发时,每个阶段都是以前一阶段的结果为依据,因此基础扎实、不易返工,有利于对整个开发工作实现工程化的项目管理。

再次,自上而下地分析。是将复杂的大问题分解为小问题找出问题的关键和重点所在,同时找出技术难点来;然后用精确的思维定性、定量地描述问题。问题的核心是“分解”。

然后,模块化处理。模块化就是把程序划分成若干个模块。而每个模块完成一个子功能,把这些模块汇总起来构成一个有机体,即可完成指定的功能。模块化的目的是为了降低软件复杂度。使软件设计、调试和维护等操作变得简易。

最后,工作文档的规范化和标准化原则。阶段性的成果采用规范化、标准化的格式和术语、图表等形式组织文档,便于开发人员和用户的交流。

但是,结构化方法也存在以下缺点。

第一,最突出的表现就是系统开发周期过长,并由此带来了一系列问题(如在这段漫长的开发周期中,原来所了解的情况可能发生较多的变化等)。

第二,这种方法要求系统开发者在开发初期就全面认识系统的各方面的需求、管理状况以及预见可能发生的变化,这不大符合人们循序渐进地认识事物的规律性。

第三,结构化方法存在的主要问题是技术上要求高,开发周期长,费用较高,以及由于用户的需求事先就已经严格确定,容易与新系统的实际成果产生较大差距等。

第四,结构化分析方法作为软件开发的主流方法,曾被广泛应用于各种软件项目的开发,它的研究和发展使人们更加清楚地认识了软件开发的本质,并成功地支持了一些大型项目的开发,对软件危机起到了一定的缓解作用,但远未充分解决软件危机。具体原因如下:

首先,以功能为主的系统结构不能适应系统需求的变化,当外部功能发生变化时,由于对实体的属性和服务未能封装,造成修改的系统波动效应,系统不易扩充、维护。

其次,传统的手工作业软件编程方法和面向过程的软件结构,已无法适应现代日益复杂的软件开发要求,由于其分析、设计、编码采用不同的模型表示,后一阶段很难使用前一阶段的研究成果,从数据流图到模块结构图存在着一条转换的鸿沟,从而不可避免地引起映射误差。

再次,面向过程的结构化软件不能很好地支持开放技术,由于缺乏可重用性,致使开发成本加大、开发周期延长,不能适应大型、复杂系统不断发展和变化的要求。

最后,最主要的一点是,用冯·诺依曼机所求解的问题空间结构与方法空间结构是不一致的,该方法不是从人们认识客观世界的过程方法出发,而是从软件开发人员的立场出发确定的,因而存在着先天不足,从问题域到分析阶段有着映射误差。

5)方法适用范围

该方法适用于一些组织相对稳定、业务处理过程规范、需求明确且在一定时期内不会发生大的变化的大型复杂系统的开发。主要适用于规模较大、结构化程度较高的系统的开发。

2.原型开发方法

运用结构化系统开发生命周期法的前提条件是要求用户在项目开始初期就非常明确地陈述其需求,需求陈述出现错误,对信息系统开发的影响尤为严重,因此,这种方法不允许失败。事实上这种要求又难以做到。人们设想,有一种方法,能够迅速发现需求错误。当图形用户界面(Graphic User Interface, GUI)出现后,自80年代中期以来,原型法逐步被接受,并成为一种流行的信息系统开发方法。

1)方法基本思想与原理

原型法的提出,旨在改进生命周期法缺点的一种系统开发的方法。它是开发者在初步了解用户需求的基础上,构造、设计和开发一个系统初始模型,该模型称为原型或骨架(一个可以实现的系统应用模型)。开发人员和用户在此基础上共同探讨、改进和完善方案,开发人员再根据方案对原型进行修改得到新的模型,再征求用户意见,如此反复,直到用户满意为止。

2)开发阶段划分

原型法的开发过程可以归纳为五个步骤:

确定系统的基本需求和功能

用户向开发者提出对系统的基本需求,开发者据此确定系统的范围和应用具有的基本功能,人机界面等,得到一个简单的模型。

构建初始快速原型

系统开发人员在明确了系统基本需求和功能的基础上,依据模型,以尽可能快的速度和使用强有力的开发工具来构建一个初始模型。

运行、评价初始原型

初始模型建成后,就要立即投入试运行,各类人员对其进行试用、评价、分析效果。

修改与完善

由于构造模型时强调的是快速,省略了许多细节,一定存在许多不合理的地方。所以,在试用中开发者和用户之间要充分地进行沟通,对用户提出的不满意的地方要进行认真修改与完善,直到用户满意为止。

建成系统模型

如果开发者和用户对原型比较满意,双方还应在原型基础上,将为了快速开发而在开发初始原型过程中省略了的许多细节补充到系统中,进一步进行各方面的完善,使其最后形成一个适用的系统。

原型法的关键是通过迭代,逐步逼近用户的需求目标。

3)方法特点

首先,原型法的开发周期短、费用相对较少。

其次,由于原型法强调用户的参与,系统的开发容易符合用户的实际需要,,所以系统开发的成功率高,容易被用户接受。

再次,由于用户参与了系统开发的全部过程,对系统的功能和性能有更充分的了解,有利于系统的运行、管理和维护。

但是由于原型法开发系统中的随意性大,所以它还有以下缺点。

然后,对于大型系统或复杂的系统,没有充分的整体规划和系统分析,很难构造出原型。

最后,对于大量运算的、逻辑性较强的程序模块很难构造出模型供人评价。

4)方法适用范围

原型法的适用范围是比较有限的,适用于小型、简单、处理过程比较明确、没有大量运算和逻辑处理过程的小型系统。

不适合于:大型、复杂系统,难以模拟;存在大量运算、逻辑性强的处理系统;管理基础工作不完善、处理过程不规范;大量批处理系统。

3.面向对象开发方法

随着计算机及其用户越来越复杂,程序员的任务也越来越繁重,所以,与其相关的编写代码的时间也就越来越长了。接下来发生了有趣的事情,程序达到一定大小以后,为其编写代码所需的时间比预期的要长的多。事实是当程序达到一定大小时,人脑就不能跟踪所有的复杂性了。复杂性完全是产生事故的原因,战胜复杂性的方法就是编写一些小的“无错”程序,并把它们连在一起,形成一个大的“无错”程序,这就是衍生出了面向对象的开发方法。

以前的开发方法,只是单纯地反映管理功能的结构状况,或者只是侧重反映事物的信息特征和信息流程。面向对象的方法把数据和过程包装成为对象,以对象为基础对系统进行分析与设计,为认识事物提供了一种全新的思路和办法,是一种综合性的开发方法。

面向对象方法是一种把面向对象的思想应用于软件开发过程中,指导开发活动的 系统方法,简称OO方法,是建立在“对象”概念基础上的方法学。该方法主要包括面向对象分析OOA、面向对象设计OOD和面向对象程序设计OOP三部分构成。对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机 ,来认识、理解、刻画客观世界和设计、构建相应的软件系统。

1)方法基本思想

客观世界由各种“对象”(Object)组成,任何客观事物都是对象,对象是在原事物基础上抽象的结果。任何复杂的事物都可以通过对象的某种组合结构构成。对象可由相对比较简单的对象以某种方式组成;

对象由属性和方法组成。属性(Attribute)反映了对象的信息特征,如特点、值、状态等等.而方法(Method)则是用来定义改变属性状态的各种操作;

对象之间的联系主要是通过传递消息(Message)来实现的,而传递的方式是通过消息模式(Message pattern)和方法所定义的操作过程来完成的;

对象可按其属性进行归类(Class)。类有一定的结构,类上可以由超类(Superclass),类下可以有子类(Subclass)。对象或类之间的层次结构是靠继承关系(Inheritance)维系的;

对象是一个被严各模块化了的实体,称之为封装(Encapsulation)。这种封装了的对象满足软件工程的一切要求,而且可以直接被面向对象的程序设计语言所接受。

2)方法基本原理

面向对象方法(Object Oriented Method,OOM)是在各种面向对象的程序设计方法的基础上逐步发展起来的一种新的软件开发方法。它提出了一种全新的系统分析思想和方法。面向对象方法的出发点和基本原则是模拟人类日常生活的逻辑思维方式。在开发一个系统时,使描述问题的问题空间与解决问题的方法空间在结构上尽可能一致。面向对象的开发方法基于类和对象的概念,把客观世界的一切事物都看成是由各种不同的对象组成,每个对象都有各自内部的状态、机制和规律;按照对象的不同特性,可以组成不同的类。不同的对象和类之间的相互联系和相互作用就构成了客观世界中不同的事物和系统。

面向对象方法有以下要点。

第一,把客观事物看成是由对象组成的,对象是事物抽象的结果。复杂的对象可以由简单的对象组成。系统中的任何元素都是对象。

第二,对象则有属性和操作组成,其属性反映了对象的数据信息特征,而操作则用来定义对象的行为。

第三,对象之间的联系是通过消息传递机制来实现的。

第四,对象可以按其属性来归类,一个类的上层可以有父类,下层可以有子类,形成类的层次结构,子类可以通过继承机制获得其父类的特性。

3)开发阶段划分

采用面向对象法,首先要进行系统调查和系统分析,作为今后系统开发的依据。然后,按照前期进行系统调查和系统分析的结果,进行一下阶段的工作。

面向对象分析阶段

面向对象分析阶段是一个抽取和整理用户需求,并建立问题域精确模型的过程。此阶段的关键是利用信息模型技术识别问题域中的对象实体,标识对象之间的关系,确定对象的属性和操作,建立系统的对象模型。一般称之为面向对象的分析,即OOA

面向对象设计阶段

对系统分析的结果进一步抽象、归类和整理,确定系统的物理模型形式。一般称之为面向对象的设计,即OOD

面向对象实现阶段

根据面向对象设计的结果,利用面向对象的程序设计语言进行编程。一般称之为面向对象的程序设计,即OOP

面向对象测试阶段

运用面向对象的技术进行软件或系统的测试和调试。

4)方法特点

与人类的思维方式一致。

面向对象方法使系统的描述及信息模型的表示与客观实体相对应,,与人类使用现实世界的概念抽象地思考问题和解决问题的思维方式相一致。

稳定性好

面向对象的系统是基于问题域的模型,而不是以算法和应完成的功能分解而建立起来的,所以当对系统的功能需求发生变化时,并不会引起系统结构的整体变化。只要现实世界的实体是相对稳定的,以对象构造的系统也就是比较稳定的。

可重用性好

把对象的属性和操作捆绑在一起,可提高对象的内聚性,并减少与其他对象的耦合。对象所固有的封装性和信息隐蔽机理,使得对象的内部实现与外部隔离,而由此具有较强的独立性。这为对象复用提供了可能性和方便性。在继承结构中,子类对父类的继承,其本身就是对父类的属性和操作的复用。

可维护性好

由于面向对象的系统稳定性比较好,对象又具有较强的独立性,面向对象的软件技术与人类的思维方式相符,因此面向对象的系统比较容易理解,容易修改,也易于测试和调试。

但是,面向对象的开发方法也存在着明显的不足。首先,必须依靠一定的软件技术支持;其次,在大型项目的开发上,具有一定的局限性,必须以结构化方法的自顶向下的整体性系统调查和分析作为基础,否则,同样会存在系统结构不合理、关系不协调的问题。

5)方法适用范围

适用于各中小型系统,但不易于大型系统的开发。

分析比较

原型法适用于用户没有确定其需求的明确内容的时候。他先是根据已给的和分析的需求,建立一个原始模型,这是一个可以修改的模型(在声明周期法中,需求分析一般不再多修改)。在软件开发的各个阶段都把有关信息相互反馈,直至模型的修改,使模型趋于完善。在各个过程中,用户的参与和决策加强了,最终的结果更适合用户的要求。这种原型技术有分为三类:抛弃式、演化式和递增式。原型法成败的关键及效率的高低关键在于模型的建立和建模的速度。在客户确认了需求之后,抛弃式原型就作废了;而非抛弃式原型是以后继续开发的基础(非抛弃模型可以理解为螺旋模型的一次周期)。开发非抛弃原形要比开发抛弃原形成本高,因为非抛弃原形在设计和实现时必须考虑质量特性,而抛弃原形则不必。所以在进行系统开发时,更多的是将原型法和其他方法结合起来使用,而非只用原型法一种开发方法进行系统开发。

面向对象的软件开发方法与结构化软件开发方法的最基本的区别:表现在它们对功能和数据的不同处理上。结构化软件开发方法是围绕实现处理功能的“过程”来构造系统的。它几乎都是将功能和数据分开考虑的。它遵循面向过程的问题求解方法,是用计算机能够理解的逻辑来描述和表达待解决的问题及其具体的解决流程。数据结构和算法是它的核心所在。用户需求的变化大部分是针对功能的,在开发需求模糊或需求动态变化的系统时,所开发出的软件系统往往不能真正满足用户的需要,可能会引起软件成本增长失控、软件质量得不到保证等一系列严重问题。因此,用结构化方法开发的软件,其稳定性、可修改性和可重用性都比较差。

面向对象软件开发方法则是在解空间引入了“对象”的概念,逼真地描述解空间的客观实体,从而使客观描述符合人类的思维习惯。通过识别问题域的对象,分析它们之间的关系,建立对象模型、动态模型和功能模型,利用面向对象观点建立求解域模型的过程。它的核心概念主要是对象、类、继承和消息。面向对象编程技术的特点是数据控制代码的访问,其中类的继承和多态性是处理复杂软件的有效技术。运用这种方法开发出来的系统稳定性、可重用性及可维护性好。

结构化方法是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构化分析方法给出一组帮助系统分析人员产生功能规约的原理与技术。它一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表以及判定树等。结构化语言就是将自然语言加上程序设计语言的控制结构就成了结构化语言,专门用来描述加工逻辑。所以,它既有自然语言灵活性强、表达丰富的特点,又有结构化程序的清晰易读和逻辑严密的特点。 结构化语言的显著特征是代码和数据的分离。这种语言能够把执行某个特殊任务的指令和数据从程序的其余部分分离出去、隐藏起来。获得隔离的一个方法是调用使用局部变量的子程序。通过使用局部变量,我们能够写出对程序其它部分没有副作用的子程序。这使得编写共享代码段的程序变得十分简单。如果开发了一些分离很好的函数,在引用时我们仅需要知道函数做什么,不必知道它如何做。切记:过度使用全局变量会由于意外的副作用而在程序中引入错误。结构化语言比非结构化语言更易于程序设计,用结构化语言编写的程序的清晰性使得它们更易于维护。这已是人们普遍接受的观点了。比如作为结构化语言的C语言主要结构成分是函数C的独立子程序。在C语言中,函数是一种构件(程序块),是完成程序功能的基本构件。函数允许一个程序的诸任务被分别定义和编码,使程序模块化。可以确信,一个好的函数不仅能正确工作且不会对程序的其它部分产生副作用。PASCAL是世界上第一个结构化语言,曾被认为是计算机专业理想的教学语言,在数据结构等课程中一般用PASCAL语言举例。Access数据库是一种关系型数据库,所有的关系型数据库都是基于结构化查询语言SQL的。Visual FoxPro不但仍然支持标准的Xbase结构化程序设计,而且在语言上还有进行了扩展,提供了面向对象程序设计的强大功能和更大灵活性。

四、未来趋势

经过前面的比较分析之后,未来的一段时间内,在系统开发实际工作中,更多的时候往往需要根据需求将多种方法进行组合应用,最终完成系统开发烦人全部任务。具体的组合形式可以分为以下几个方面。

结构化方法与原型法的组合

当系统规模较大时,往往采用两者结合的形式进行系统开发,在系统规划和系统分析阶段,采用结构化开发思想,自顶向下,从总体到部分,合理划分系统结构,设计模型;在开发具体模块时,采用原型法,加速开发进程,并让用户较早参与系统开发中去。

结构化方法与面向对象方法的组合

对于大型系统开发项目,借助结构化方法的整体性系统规划和分析的特长,可以把握系统开发中的整体结构和关键因素;而具体开发过程中,采用面向对象方法能够实现各开发阶段的平稳过渡,减少中间环节和结果,缩短开发周期。

原型法与面向对象方法的组合。

最后,原型法和面向对象方法本来就是相互关联的两种方法,从面向对象思想出发,系统开发以对象表示现实世界的各个实体,由此进行系统的各项开发工作;而各项具体的开发任务可以利用原型法的特点,尽快构造出原型并不断修改和完善。因此,原型法必定是采用面向对象方法进行系统开发过程中开发具体模块时的主要方法和手段。

面向对象方法在软件开发方面符合人们习惯的思维方式,系统的稳定性比较好,软件的可维护性与可重用性比较好。但面向对象方法的基本概念都很抽象,可供软件开发人员使用的类种类繁多,结构复杂。如果没有结构化程序设计的编程思想,对于直接学习面向对象程序设计的初学者,在代码编程部分涉及结构化编程思想时,反而困难会很大。事实上,这两种方法在并不是相互排斥的,相反,它们是相互促进相互补充的。不论采用何种技术方法开发软件,都必须完成一系列性质各异的任务,这些必须完成的任务要素是:确定“做什么”,确定“怎样做”,如何“实现和完善”。因此,没有绝对的一种软件开发方法称得上是“最好”的,软件开发人员应该根据所要开发的软件的特点,选择最适宜的开发方法。

<文章来源:甘肃电子商务学习网>

三种系统开发方法的比较

相关推荐