快速原型模型
正确的需求定义是系统成功的关键。但是许多用户在开始时往往不能准确地叙述他们的需要,软件开发人员需要反复和用户交流信息,才能全面、准确地了解用户的需求。当用户实际使用了目标系统以后,通过对系统的执行、评价,使用户明确对系统的需求。此时用户常常会改变原来的某些想法,对系统提出新的需求,以便使系统更加符合他们的需要。
所谓快速原型是快速建立起来的可以在计算机上运行的程序,它能完成的功能往往是最终产品能完成功能的一个子集。
快速原型模型的第一步是快速建立一个能反映用户主要需求的原型系统,让用户在计算机上试用它,通过实践来了解系统的概貌。通常用户试用原型系统之后会提出许多修改意见,开发人员按照用户的意见快速地修改原型系统,然后再次请用户试用。经过多次调整原型使其满足用户的需求之后,开发人员便可以将用户的真正需求确定下来;第二步则是在第一步的基础上开发用户满意的软件产品。
快速原型的关键在于尽可能“快速”地构造原型,以加速软件开发过程,节约软件开发成本。一旦确定了用户的真正需求,所构造的原型将被丢弃。因此,原型系统的内部结构并不重要,重要的是必须迅速建立原型,随之迅速修改原型,以反映用户的需求。超文本是广泛使用的快速原型语言,最近的趋势是,广泛地使用第四代语言快速构造原型。
当快速原型的某个部分是利用软件工具由计算机自动生成的时候,可以把这部分用到最终的软件产品中。例如,用户界面通常是快速原型的一个关键部分,当使用屏幕生成程序和报表生成程序自动生成用户界面时,实际上可以把得到的用户界面用在最终的软件程序中。
显然,快速原型模型可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。但是,由于软件原型是通过快速构造并不断修改而形成的,因此所选用的开发技术和工具往往不一定符合主流的发展,快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。