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.可重用工具。
件
工
程
方
法
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.可重用工具。