3.4.2.1 抛弃式原型(throwaway prototype)
通常,当我们遇到需求中的不确定性、二义性、不完整性或含糊性时,最有效的解决方法是建立抛弃式原型。原型可帮助用户和开发人员想象如何实现需求和发现需求中的漏洞,并使用户判断出这些需求是否可以完成必要的业务过程。
抛弃式原型的使用过程如下图所示。首先,选择适当的演示功能,并描述相应的用户界面,然后构造软件原型。由于抛弃式原型在达到预期目的后被抛弃,因此应该花最小的代价尽快地建立该原型。用户对所构造的软件原型进行评估,提出反馈意见,这些反馈可能会引起功能的改变,也可能引起用户界面的改变。

3.4.2.2 演化式原型(evolutionary prototype)
与抛弃式原型相对应的是演化型原型,在已经清楚地定义了需求的情况下,演化式原型为开发渐增式产品提供了坚实的构造基础。进化式原型是螺旋式软件开发生存周期模型的一部分,也是一些面向对象软件开发过程的一部分。
演化式原型适合于基于Web应用的系统开发,这种系统往往随着开发的进展本身的需求也在发生变化。与丢弃式原型不同,演化式模型一开始就必须具有健壮性和产品质量级的代码,因此,对于描述相同的功能,建立演化式原型比建立丢弃式原型所花的时间要多。
我们应该考虑演化式原型的第一次演变,因为它将作为实现需求中易于理解和稳定部分的试验性版本。从测试和首次使用中获得的信息将引起下一次软件原型的更新,正是这样不断增长和更新,使软件从一系列演化式原型发展为最终完整的产品。

软件原型有许多类型,从其内容来看,它可以注重用户界面,也可以注重某些算法功能和效果;从其表现形式来看,可以是电子的,也可以是书面的;从其评价后的处理来看,可以将其抛弃,或继续将其进化为最终产品的一部分。一般来说,需要根据实际情况决定采用什么类型的软件原型,主要考虑的因素包括项目特点、开发人员水平、支持原型开发的工具和技术等。
从原型的用途可以看出,建造软件原型不同于最终系统,它需要花最小的代价尽快实现,因此,只要能够体现原型的作用和满足评价的要求,可以忽略一切暂时不关心的部分。正是由于这种忽略,演化型原型进化为最终系统时需要十分小心,否则会对后期的开发造成很大问题。
软件原型需要用户进行评价,评价原型的人员必须是所期望用户群的代表。评价的方式可以采取建立脚本,并按照其规定的步骤让用户回答一些特定的问题,以获取所需要的信息,但要避免诱导用户用设计好的特定方法执行一些功能,同时将评价信息编写成文档。
|