正确答案
(1)探索式
探索式原型法是以缺陷需求开始继而不断调整和修正需求的原型开发方式。探索式的原型方法通常要尽可能地调整各种设计选项(例如需求内容、软件化内容以及软件支持方式等),并比较多种设计方案下的用户反馈以得到理想的用户需求。探索式的原型方法能够帮助开发者更深入地了解用户的业务、问题和期望。
(2)实验式
实验式的原型方法初始时拥有清晰的用户需求,但是开发者对这些需求的实现方法、实现效果和可行性没有太大的把握。实验式的原型方法需要首先定义一个对原型的评估方法,确定评估的属性(例如可行性、适用性、效率、吞吐量等),据此评估各种技术方案下的原型,明确需求的可行性和有效的技术实现方案。
(3)演化式
在演化式的原型方法中,原型的开发并不是一个独立的活动,而是整个项目的持续开发过程中的一个部分。原型开发的初始点既有要求原型化的需求,也有项目积累下来的原型资产。积累下的原型资产所没有实现的需求,往往是清晰的需求。在开发原型时,还要能够以一个整体的方式传递给下一个原型开发过程。这个被不断传递和不断增强的原型资产将成为最终的软件系统。通过在持续开发过程中使用原型方法,可以使软件开发过程更好地处理用户需求的不断变动。
在探索式、实验式和演化式这三种原型方法中,前两种方法产生的原型往往是在经历
了很多次错误的尝试之后才产生的。这些错误的尝试过程会在最终的原型产品中留下痕迹,原型中的一些代码是在错误的前提(错误的需求、错误的技术方案)下完成的,它们会使原型产品具有很差的质量,所以人们在得到正确的尝试之后往往会抛弃这些原型产品,另起炉灶。为此,探索式和实验式方法产生的原型产品又被称为抛弃式原型(Throwaway Prototype)。
抛弃式原型的贡献不在于它的代码,而是它所包含的内容,它说明了正确的需求和正确的技术方案。
因为抛弃式原型的代码是要被抛弃的,所以在建立抛弃式原型时,应该尽量花费最小的代价,争取最快的速度。为此,原型的开发者会使用一些简易的开发工具和不成熟的构造技术,忽略或简化一些和原型目标不相关的功能特征。