快速原型模型
1.什么是快速原型模型
原型是指模拟某种产品的原始模型,在其他产业中经常使用。软件开发中的原型是软件的一个早期可运行的版本,它反映了最终系统的重要特性。
快速原型模型又称原型模型,它是增量模型的另一种形式;它是在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。例如,客户需要一个ATM机软件,可以先设计一个仅包含刷卡、密码检测、数据输入和账单打印的原型软件提供给客户,此时还不包括网络处理与数据库存取以及数据应急、故障处理等服务。快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。
2.快速原型模型的思想产生、原理及运用方式 [1]
3.快速原型模型的类型
根据原型的不同作用,有三类原型模型:
1、探索型原理
这种类型的原型是把原型用于开发的需求分析阶段,目的是要型清用户的需求,确定所期望的特性,并探索各种方案的可行性。它主要针对开发目标模糊,用户与开发都对项目都缺乏经验的情况,通过对原型的开发来明确用户的需求。
2、实验型原型
这种原型主要用于设计阶段,考核;实现方案是否合适,能否实陋。对于一个大型系统,若对设计方案心中没有把握时,可通过这种原型来证实设计方案的正确性。
3、演化型原型
这种原型主要用于及早向用户提交一个原型系统,该原型系统或者包含系统的框架,或者包含系统的主要功能,在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统。它将原型的思想扩展到软件开发的全过程。
4.快速原型模型的开发步骤
1、快速分析
在分析人员与用户密切配合下,迅速确定系统的基本需求,根据原型所要体现的特征描述基本需求以满足开发原型的需要。
2、构造原型
在快速分析的基础上,根据基本需求说明尽快实现一个可行的系统。这里要求具有强有力的软件工具的支持,并忽略最终系统在某些细节上的要求,如安全性、坚固性、例外处理等等,主要考虑原型系统能够充分反映所要评价的特性,而暂时删除一切次要内容。
3、运行原型
这是发现问题、消除误解、开发者与用户充分协调的一个步骤。
4、评价原型
在运行的基础上,考核评价原型的特性,分析运行效果是否满足用户的愿望,纠正过去交互中的误解与分析中的错误,增添新的要求,并满足因环境变化或用户的新想法引起的系统要求变动,提出全面的修改意见。
5、修改
根据评价原型的活动结果进行修改。若原型未满足需求说明的要求,说明对需求说明存在不一致的理解或实现方案不够合理,则根据明确的要求迅速修改原型。
5.快速原型的开发技术和开发环境[1]
为了节省开发原型的费用,实现快速地分析,迅速构造出所需的原型,应采用一些特殊的有别于通常软件开发时使用的技术和工具。
1.构造原型的技术
(1)可执行的规格说明。
(2)基于脚本的设计。
(3)采用非常高级语言或专门语言。
(4)能重用软件。
2.构造原型的建议
(1)暂不考虑速度、空间等性能效率方面的要求。
(2)暂不考虑错误恢复和处理。
(3)可降低可靠性和软件质量标准。
(4)原型界面部分要设计得简单易学,最好能与最终系统的界面相容。
(5)根据不同的软件类型和应用领域,可使用不同风格的高级语言来构造原型。
3.原型的开发环境
除了上述的构造原型的技术和建议外,还应该有开发环境来辅助原型的开发。
(1)交互式系统。能快速响应使用者的要求。
(2)数据库管理系统。能够提供更多工具,可以定义、建立、查询、加工信息资源。
(3)通用输入/输出软件。容易使用的数据编辑,屏幕格式化软件等对原型设计和开发都有很大的帮助。
(4)重用代码库。可减少重复劳动。
6.各种软件过程模型的特点[2]
不同的软件过程模型对软件开发过程有不同的理解和认识,支持不同的软件项目和开发组织。下表对比和分析了各个软件过程模型的特点及其适用的软件项目类型。
各种软件过程模型的特点
模型名称 | 技术特点 | 适用范围 |
---|---|---|
瀑布模型 | 简单,分阶段,阶段间存在因果关系,
各个阶段完成后都有评审,允许反馈,不支持 用户参与,要求预先确定需求 | 需求易于完善定义且不易变更的软件系统 |
快速原型模型 | 不要求需求预先完备定义,支持用户参与,
支持需求的渐进式完善和确认,能够适应用户需求的变化 | 需求复杂、难以确定、动态变化的软件系统 |
增量模型 | 软件产品是被增量式地一块块开发的,
允许开发活动并行和重叠 | 技术风险较大、用户需求较为稳定的软件系统 |
迭代模型 | 不要求一次性地开发出完整的软件系统,将软件
开发视为一个逐步获取用广需求、完善软件产品的过程 | 需求难以确定、不断变更的软件系统 |
螺旋模型 | 结合瀑布模型、快速原型模型和迭代模
型的思想,并引进了风险分析活动 | 需求难以获取和确定、软件开发风险较大的软件系统 |
RUP | 可改造、扩展和剪裁:可以对它进行设计、
开发、维护和发布;强调迭代开发 | 复杂和需求难以获取和确定的软件系统;
软件开发项目组拥有丰富的软件开发和管理经验 |