下载
第1 2章 通过原型法减少项目风险
我最近遇到一个软件开发组,他们有一个令人不悦的经历:用户以不适合为理由拒绝了
他们开发的整个产品。在产品发布之前,用户并没有见过用户界面,他们发现界面和潜在的
需求都存在问题。软件原型是一种技术,你可以利用这种技术减少客户对产品不满意的风险。
来自用户的早期反馈可以使开发小组正确理解需求,并知道如何最好地实现这些需求。
即使你完成了在前几章所叙述的需求获取、分析和编写规格说明,你的需求中还有一部
分对客户或开发者仍然不明确或不清晰。如果不解决这些问题,那么必然在用户产品视图和
开发者对于开发什么产品的理解之间存在期望差距。通过阅读文本需求或研究分析模型,很
难想象软件产品在特定的环境中如何运行。原型可以使新产品实在化,为使用实例带来生机,
并消除你在需求理解上的差异。比起阅读一份冗长无味的软件需求规格说明,用户通常更愿
意尝试建立有趣的原型。
原型有多种含义,并且参与建立原型的人可以有不同的期望。例如,一个飞机原型实际
上可以飞翔
—
它是真实飞机的雏形。相反,一个软件原型通常仅仅是真实系统的一部分或
一个模型,并且它可能根本不能完成任何有用的事。本章将研究各种类型的软件原型、它们
在需求开发中的应用以及如何使原型成为软件开发过程中有效的组成部分( Wood and Kang
1 9 9 2 )。
12.1 原型是“什么”和“为什么”要原型
一个软件原型是所提出的新产品的部分实现。使用原型有三个主要目的:
• 明确并完善需求 原型作为一种需求工具,它初步实现所理解的系统的一部分。用户对
原型的评价可以指出需求中的许多问题,在你开发真正产品之前,可以最低的费用来解
决这些问题。
• 探索设计选择方案 原型作为一种设计工具,用它可以探索不同的用户界面技术,使系
统达到最佳的可用性,并且可以评价可能的技术方案。
• 发展为最终的产品原型 作为一种构造工具,是产品最初子集的完整功能实现,通过一
系列小规模的开发循环,你可以完成整个产品的开发。
建立原型的主要原因是为了解决在产品开发的早期阶段不确定的问题。利用这些不确定
性来判断系统中哪一部分需要建立原型和希望从用户对原型的评价中获得什么。对于发现和
解决需求中的二义性,原型也是一种很好的方法。二义性和不完整性使开发者对所开发的产
品产生困惑,建立一个原型有助于说明和纠正这些不确定性。用户、经理和其他非技术项目
风险承担者发现在确定和开发产品时,原型可以使他们的想象更具体化。原型比开发者常用
的技术术语更易于理解。
12.2 水平和垂直的原型
当人们谈到“软件原型”时,他们所想到的通常是可能的用户界面的“水平原型”