8 快速原型的开发方法软





8.1 快速原型方法与定义
1,原型,是指模拟某种产品的 原始
模型 。
2、快速原型方法的 核心思想 是:在
软件开发的 早期建立 目标软件系统的
原型,让用户对原型进行评估并提出
修改意见。当原型几经改进最终确定
后,它将由软件设计和编码阶段进化






成软件产品;或者设计和编码人员遵
循原型所确立的外部特征实现软件产
品。
3,原型法的精髓 在于 系统的需求 定
义不是在系统的设计和实现之前精确
地一次完成,而是贯穿于整个开发过
程之中,逐步地精确和完善 。实际上,
在多数情况下,用户仅靠自己的动态
联想而能精确定义需求是困难的。相
反,用户需要一种能使自己较准确地






定义的环境和机制,在这种环境中通
过这种机制,用户可以得到启发,从
而对需求进行联想、补充、完善、验
证,最终把需求概念化地精确定义出
来。原型法是这种环境和机制的一种
实现。
4、快速原型思想还可以用到 软件开
发的其他阶段,并向软件开发的全过
程扩展,即先用相对少的成本,较短
的周期开发一个简单的、但可以运行






的系统原型向用户演示或让用户试用,
以便及早澄清并检验一些主要设计策
略,通过反复评价和改进原型,如此
周而复始,逐步减少分析和通信中的
误解,弥补不足之处,进一步确定各
种需求细节,适应需求的变更,在此
基础上开发实际的软件系统,就能提
高最终产品的质量。






8.2 原型开发的分类
一, 原型的作用类型
由于软件项目的 特点 和运行原型的
目的 不同, 原型主要有三种不同的作
用类型:
( 1) 探索型:这种原型的目的是要弄
清对目标系统的要求, 确定所希望的
特性, 并探讨多种方案的可行性 。 它
主要针对 开发目标模糊, 用户和开发
者对项目都缺乏经验的情况 。






( 2)实验型:这种原型用于大规
模开发和实现之前,考核方案是否
合适,规格说明是否可靠。
( 3)进化型:这种原型的目的不
在于改进规格说明,而是将系统建
造得易于变化,在改进原型的过程
中,逐步将原型进化成最终系统。
它 将原型方法的思想扩展到软件开
发的全过程,适于满足需求的变动。






二、原型的使用策略
( 1) 废弃策略 。 先构造一个功能简
单而且质量要求不高的模型系统,
针对这个模型系统反复进行分析修
改, 形成比较好的设计思想, 据此
设计出较完整, 准确, 一致, 可靠
的最终系统 。 系统构造完成后, 原
来的模型系统就被废弃不用 。 探索
型和实验型原型 属于这种策略 。
( 2)追加策略。先构造一个功能简
单而且质量要求不高的模型系统,






作为最终系统的核心,然后通过不
断地扩充修改,逐步追加新要求,
最后发展成为最终系统。它对应于
进化型。
绝大多数现代软件项目都适于采
用快速原型技术。
在实际开发过程中可否使用快速
原型方法与问题本身的复杂度以及
可用的开发工具、环境有关。






8.3 快速原型开发的过程
在使用原型化方法进行软件开发之
前,必须明确使用原型的 目的,从而
决定 分析与构造内容的取舍 。
快速原型的模型见下页。
快速原型的开发过程:
1、快速分析
在分析人员与用户紧密配合下,迅
速确定系统的 基本需求,根据原型所
要体现的特征,描述基本需求以满足






开发原型的需要。其关键要注意分析
与描述内容的选取,围绕运用原型的
目标,集中力量确定局部的需求说明,
从而尽快开始构造原型。
2、构造原型
根据基本需求说明尽快实现一个可
运行的系统。原型设计特别强调 用户
可用部分的表示,并按原型目标设计
原型结构。建造原型,使之达到第一
次需求的 主要目标 。
3、运行原型












这是发现问题、消除误解、开发
者与用户充分协调的一个步骤。由
于原型忽略了很多内容,集中反映
要评价的特性,外观看来不太完整。
用户要在开发者的指导下运行原型,
使用过程中努力发现各种不合理的
部分,各类人员在共同运用原型的
过程中进一步加深对系统的了解及
相互之间的理解。
4、评价原型
考核评价原型的特性,分析运行






效果是否满足用户的愿望,纠正过去
交互中的误解与分析中的错误,增添
新的要求,并满足因环境变化或用户
新想法引起的系统要求变动,提出全
面的修改意见。
5、修改
根据评价的结果进行修改。若原型
未满足需求说明的要求,说明对需求
说明存在 不一致的理解或实现方案不
够合理,则根据明确的要求迅速修改






原型。若原型运行效果不满足用户要
求,说明需求说明 不准确、不完整、
不一致或要求有所变动和增加,则修
改和规定新的需求说明,重新构造原
型。






8.4 基于快速原型的进化式开发
快速原型法是一种优秀的设计机制,
它采用 交互 的方式迅速地建立一个模
型软件, 动员用户共同参加软件研制
的全过程, 同时允许不断地进行交互
与修改原型系统, 以适应系统发展的
变化与需要, 并使原型逐步逼近所要
求的软件系统, 从而以较小时的代价,
较快的速度生成人们对需求和目标系
统性能进行审定的 系统模型或示例 。






基于快速原型的进化式开发如下图
所示 (螺旋模型 ):






一个快速原型的构造过程 也是一
个 瀑布模型生存周期的浓缩 。
瀑布模型是螺旋模型的一个特例,
初始用户需求是完全确定的,并且
不进行原型进化。
螺旋模型的下述思想 应该成为软
件项目管理人员和开发人员的重要
指导原则:
( 1)用户需求的某些部分将随时间
的推移而 动态变化,变化方式是无
法静态预测的。这就要求软件开发






过程中每一原型的总体结构、算法、
源代码以及测试方案都具有充分的 可
扩充性 。
( 2) 在原型的每个进化阶段, 不宜
实现过多的用户需求 。 因为复杂的用
户需求将给原型的快速构造带来困难,
进而延迟了用户确认时间, 增加了失
败风险 。 开发人员必须善于区分 轻重
缓急, 提炼部分重要的, 紧迫的用户
需求尽早予以实现 。 其他的用户期望
则留待以后的进化阶段处理 。






( 3)软件开发过程是开发人员和用
户 相互学习 的过程。随着原型的进化
和用户评价意见的不断反馈,开发人
员对应用领域和用户需求的理解会逐
渐透彻。同样,用户通过反复试用原
型也会增强对软件开发和目标软件产
品运作方式的理解,从而能更精确地
表述用户需求。
( 4) 原型是一种可执行的软件规格
说明 。 已有原型和用户对原型的改进
意见连同新的用户需求构成后续进
化阶段的基础。
( 5) 生成 软件规格说明和 实现 软件
规格说明是互补的两类软件开发活
动 。 在螺旋模型中, 对原型的规格
说明由原型构造的分析与规划阶段
生成, 它构成原型实现阶段的基础 。
同时, 在原型实现阶段发现的新的
用户需求以及对原有用户需求的修
改, 又将成为后续原型规格说明的
主要依据 。












( 6)传统意义上的软件维护也是一
种进化活动。为了减轻维护工作量、
降低维护开销,开发人员必须特别
强调 原型 的总体结构和实现方案的
可扩充性 以及原型 源代码的可读性
和 可修改性 。






8.5 快速原型开发技术
采用通常的软件开发技术和工具
来开发原型,开销大大,显然是不
值得的。为了减少开发原型的开销,
实现快速地分析,快速地构造和进
化所需的原型,应该采用 CASE工具。
支持快速原型的 CASE工具分为 4类:
1.用户界面自动生成工具;
2.面向数据库应用的开发工具;
3.采用四代语言;
4.可重用工具。