快速原型模型
二、快速原型模型
快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集
快速原型模型是增量模型的另一种形式,在开发真实系统之前,迅速建造一个可以运行的软件原型 ,以便理解和澄清问题,在该原型的基础上,逐渐完成整个系统的开发工作
它允许在需求分析阶段对软件的需求进行初步而非完全的分析和定义,快速设计开发出软件系统的原型,该原型向用户展示待开发软件的全部或部分功能和性能;用户对该原型进行测试评定,给出具体改进意见以丰富细化软件需求;开发人员据此对软件进行修改完善,直至用户满意认可之后,进行软件的完整实现及测试、维护
优点
克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险
适合预先不能确切定义需求的软件系统的开发
缺点
所选用的开发技术和工具不一定符合主流的发展;快速建立起来的系统结构加上连续的修改可能会导致产品质量低下
使用前提是要有一个展示性的产品原型,一定程度上可能会限制开发人员的创新
1、思想产生
在需求分析阶段得到完全、一致、准确、合理的需求说明十分困难
获得一组基本需求说明后,就快速地使其“实现”,通过原型反馈,加深对系统的理解满足用户基本要求,使用户在试用后对需求说明进行补充和精确化,从而获得合理完整、现实可行的需求说明
再把快速原型思想用到软件开发的其他阶段,向软件开发的全过程扩展
先用相对少的成本,较短的周期开发一个简单的、但可以运行的系统原型向用户演示或让用户试用,以便及早澄清并检验一些主要设计策略,在此基础上再开发实际的软件系统
2、原理
利用原型辅助软件开发
经过简单快速分析快速实现一个原型,用户与开发者在试用原型过程中加强通信与反馈,通过反复评价和改进原型,减少误解,弥补漏洞,最终提高软件质量
3、运用方式
由于运用原型的目的和方式不同,在使用原型时也采取不同的策略
抛弃策略:将原型用于开发过程的某个阶段,促使该阶段的开发结果更加完整、准确、一致、可靠,该阶段结束后,原型随之作废。探索型和实验型就是采用此策略的
附加策略:将原型用于开发的全过程,原型由最基本的核心开始,逐步增加新的功能和新的需求,反复修改反复扩充,最后发展为用户满意的最终系统,演化型快速原型就是采用此策略
采用何种形式、何种策略运用快速原型主要取决于软件项目的特点、可供支持的原型开发工具和技术等,根据实际情况的特点决定
在软件开发中,原型是软件的一个早期可运行的版本,它反映最终系统的部分重要特性
探索型
这种原型目的是要弄清对目标系统的要求,确定所希望的特性,并探讨多种方案的可行性
实验型
这种原型用于大规模开发和实现之前,考核方案是否合适,规格说明是否可靠
进化型
这种原型的目的不在于改进规格说明,而是将系统建造得易于变化,在改进原型的过程中,逐步将原型进化成最终系统
1、快速分析
在分析人员与用户密切配合下,迅速确定系统的基本需求,根据原型需要体现的特征描述基本需求以满足开发原型的需要
2、构造原型
在快速分析的基础上,根据基本需求说明尽快实现一个可行的系统
要求具有强有力的软件工具的支持,并忽略最终系统在某些细节上的要求,主要考虑原型系统能够充分反映所要评价的特性
3、运行原型
发现问题,消除误解,开发者与用户充分协调
4、评价原型
在运行的基础上,考核评价原型的特性,分析运行效果是否满足用户的愿望,纠正过去交互中的误解与分析中的错误,增添新的要求,并满足因环境变化或用户的新想法引起的系统要求变动,提出全面的修改意见
5、修改
根据评价原型的活动结果进行修改
若原型未满足需求说明的要求,说明对需求说明存在不一致的理解或实现方案不够合理,根据明确的要求迅速修改原型
快速原型模型不带反馈环,软件产品的开发基本上是线性顺序进行的
快速原型的本质是"快速"。开发人员应尽可能地建造出原型系统,以加速软件开发过程,节约软件开发成本
原型的用途是获知用户的真正需求,一旦需求确定了,原型将被抛弃