二、原型法

二、原型法

1.原型法工作流程

随着计算机软件技术革命的发展,20世纪80年代初产生了一种与结构化生命周期法完全不同的信息系统开发方法——原型法。原型法是针对生命周期法而发展出来的一种快速、廉价的开发方法。它不要求用户提出完整的需求以后再进行设计和编程,而是先按用户最基本的需求,迅速而廉价地开发出一个实验型的小型系统称做 “原型”。然后向用户演示原型,通过用户的使用启发出用户的进一步需求,并根据用户的意见对原型进行修改,用户再对修改后的系统提出新的需求。这样不断地反复修改,直至最后完成一个满足用户需求的系统。

原型法对用户的需求是动态的,系统分析、设计与实现都是随着对一个工作模型的不断修改而同时完成的,相互之间并无明显的界限,也没有明确的分工。系统开发计划就是一个反复修改的过程。其基本工作流程如图4-5所示。

从图4-5可以看出,原型法在建立新系统时可以划分为4个阶段。

图4-5 原型法基本过程

(1)确定用户的基本要求。此阶段主要任务是用户向开发人员提出对新系统的基本要求,如新系统的功能、界面要求等。

(2)开发新系统的原型。开发人员根据用户的要求迅速开发出新系统的原型,交由用户试用。

(3)征求用户对原型的意见。此阶段至关重要,通过用户与开发者的交流尽量使用户的要求达到最大满足。若用户对新系统原型完全不能接受,则应回到第(2)阶段。

(4)修改系统原型。开发人员根据用户对新系统模型提出的修改意见对原型进行修改、完善,再回到第(3)阶段,反复征求意见,反复修改,直到用户满意为止。

2.原型的特征

软件原型是软件的最初版本,是以最少的费用、最短的时间开发出的,以反映最后软件的主要特征的系统。它具有以下特征:

(1)它是一个可实际运行的系统。

(2)它没有固定的生存期。一种极端是扔掉原型 (以最简便方式大量借用已有软件,做出最后产品的模型,证实产品设想是成功的,但产品中并不使用);另一种极端是最终产品的一部分即增量原型(先做出最终产品的核心部分,逐步增加补充模块),演进原型居于其中(每一版本扔掉一点,增加一点,逐步完善至最终产品)。

(3)从需求分析到最终产品都可作原型,即可为不同目标作原型。

(4)它必须快速、廉价。

(5)它是迭代过程的集成部分,即每次经用户评价后修改、运行,不断重复双方认可。

3.构造原型的原则

(1)集成原则。尽可能利用现成软件和模型来构造原始模型,随着软件产品的商品化,这种积木式地产生原始模型的方法是完全可行的,而且会大大减少开发费用,缩短开发周期。

(2)最小系统原则。按照最小系统原则构造一个规模较小,基本能反映用户需求的原型,经过用户评价和迭代修改后再补充、完善系统的其余部分。按照最小系统的原则构造原始模型,并不要求面面俱到,而是要求能反映用户要求的主要特征。

4.原型法优点

作为一种信息系统开发的方法,原型法从原理到流程都十分简单。并无任何高深的过程。但正是这样的一种简单的方法,却备受推崇,最近两年无论从方法论的角度,还是从实际应用的角度对原型法的讨论都异常热烈,在实际应用中也获得了巨大的成功。特别对那些原信息处理流程是半结构化,即工作过程没有固定的程序,用户很难直接用语言表达的问题,原型法有着传统方法无法比拟的优越性。原型法具有如下优点。

(1)原型法在得到良好的需求定义上比传统生存周期法好得多,它可处理模糊需求,开发者和用户可充分通信。

(2)原型系统可作为培训环境,有利于用户培训和开发同步,开发过程也是学习过程。可以缩短用户熟悉和掌握系统使用的时间。

(3)原型给用户机会以更改心中原先设想的、不尽合理的最终系统。

(4)原型可低风险开发柔性较大的计算机系统。

(5)原型使总的开发费用降低,时间缩短。

5.原型法的缺点

(1)文档不系统,难以维护升级。对于大系统、复杂系统,直接用原型法很难适用。

(2)开发过程管理困难。原型法整个开发过程要经过修改、评审、再修改,多次反复,要花费大量人力、物力。如果开发者与用户合作不好,盲目地进行纠错、改错,会导致系统开发进程拖延下去。

(3)用户很早看到原型,可能错认为就是新系统,使用户缺乏耐心。

(4)开发人员很容易潜意识地用原型取代系统分析。

6.原型法的适用范围

原型法适用于以下场合:

(1)适合于需求不确定和解决方案不明确的系统的开发。如决策支持系统完整的用户需求和解决方案可以通过原型与用户反复交互来导出。

(2)适用于开发信息系统中的最终用户界面。用户事先可能说不清系统界面的具体要求,或者虽然说明了要求,开发者却把握不准的时候,原型法特别有效。

(3)规模较小,数据不一定要求集中处理,可以相对分散处理的系统。

原型法不适用以下场合:

(1)对于一个大型的系统,如果不经过系统分析来进行整体性划分,想要直接用屏幕一个一个地模拟是很困难的。

(2)对于大量运算,逻辑性较强的程序模块,原型法很难构造出模型来供人评价,因为这类问题没有那么多的交互方式,也不是三言两语就能够把问题说清楚的。

(3)对于原基础管理不善,信息处理混乱的情况,使用时有一定的困难,主要表现在:

1)由于对象工作过程不清,构造模型就有一定的困难。

2)由于受用户的工作水平和他们长期所处的混乱环境影响,容易使设计者走上机械地模拟原手工系统的轨道。

图4-6 原型法与结构化生命周期法的结合