原型设计是一种极好的方式,可以就所提议的系统以及它满足用户信息需求的难易程度获得反馈,如下图所示。原型制作的第一步是估算构建系统模块所涉及的成本。如果程序员和分析师的时间成本以及设备成本都在预算范围内,则可以继续构建原型。
- 一个原型模型是一个演示执行实际的产品或系统。与实际软件相比,原型模型通常表现出有限的功能 (limited capabilities)、低可靠性 (low reliability) 和低效率 (inefficient) 的性能。
- 一个原型模型通常用几个快捷方式建造。快捷方式可能涉及使用不准确、低效。原型通常是实际系统的一个非常粗糙的版本。
软件开发的原型模型如图所示。如下图所示,第一阶段是原型开发,控制各种风险。接下来是迭代开发周期。
原型开发指南
一旦做出原型的决定,在将原型集成到 SDLC 的需求确定阶段时,必须遵守四个主要准则:
- 在可管理的模块中工作。
- 快速构建原型。
- 在连续迭代中修改原型。
- 强调用户界面。
如您所见,指南建议了处理必然相互关联的原型的方法。每个指南在以下小节中进行了解释。
在可管理的模块中工作
在将系统的某些功能原型化为可行的模型时,分析师必须在可管理的模块中工作。原型设计的一个明显优势是没有必要或不希望为原型目的构建整个工作系统。
可管理模块是一种允许用户与其关键功能交互但可以与其他系统模块分开构建的模块。被认为不太重要的模块特性被故意排除在初始原型之外。正如您将在本章后面看到的,这与强调小版本的敏捷方法非常相似。
快速构建原型
速度对于成功构建信息系统原型至关重要。回想一下,有人对遵循传统 SDLC 提出的抱怨是,需求确定和完整系统交付之间的间隔太长,无法有效满足不断变化的用户需求。
分析师可以使用原型设计来缩短这一差距,方法是使用传统的信息收集技术来确定突出的信息需求,然后快速做出决策以产生工作模型。实际上,用户很早就在 SDLC 中看到并使用了系统,而不是等待完成的系统来获得实践经验。
在 SDLC 中快速和早期组装一个操作原型,使分析人员能够深入了解项目的其余部分应该如何进行。通过在流程的早期向用户展示系统各部分的实际执行情况,快速原型设计可以防止将资源过度分配给最终可能无法运行的项目。稍后,当讨论 RAD 时,您将再次看到快速系统构建的重要性。此外,敏捷建模还建立在快速周转时间的实践之上。
修改原型
开发原型的第三个准则是其构造必须支持修改。使原型可修改意味着在不高度相互依赖的模块中创建它。如果遵守此准则,则在需要修改原型时遇到的阻力就会减少。
原型一般经过多次修改,经过多次迭代。原型的变化应该使系统更接近用户所说的重要内容。每次修改都需要用户进行另一次评估。
原型不是一个完成的系统。带着原型需要修改的想法进入原型设计阶段是一种有益的态度,它向用户展示了如果系统要改进,他们的反馈是多么必要。
强调用户界面
用户与原型(以及最终与系统)的界面非常重要。因为您真正想通过原型实现的是让用户进一步阐明他们的信息需求,所以他们必须能够轻松地与系统原型进行交互。他们应该能够看到原型将如何使他们能够完成他们的任务。对于许多用户来说,界面就是系统。它不应该成为绊脚石。
尽管系统的许多方面在原型中仍未开发,但用户界面必须开发得足够好,使用户能够快速上手系统而不会被拖延。使用 GUI 界面的在线交互式系统非常适合原型。第 14 章详细描述了设计 HCI 时的重要考虑因素。
原型设计的缺点
与任何信息收集技术一样,原型设计也有几个缺点。首先,将原型设计作为大型系统工作中的一个项目进行管理可能非常困难。
第二个缺点是用户和分析人员可能会采用原型作为一个完整的系统,当它实际上是不合适的并且从未打算用作一个完整的系统时。分析师需要努力确保与用户就原型交互和改进的时间表进行清晰的沟通。
分析人员在决定是否进行原型制作、何时进行原型制作以及对系统进行多少原型制作时,需要权衡这些缺点与已知优势。
原型设计的优势
正如我们所见,原型设计在每个系统项目中都不是必要或合适的。然而,在决定是否制作原型时,也应该考虑这些优点。原型设计的三大优势是在系统开发早期改变系统的潜力、停止在不工作的系统上开发的机会以及开发更贴近用户需求和期望的系统的可能性。
成功的原型设计取决于早期和频繁的用户反馈,分析师可以使用这些反馈来修改系统并使其更能响应实际需求。与任何系统工作一样,早期更改比项目开发后期所做的更改成本更低。在本章的后面部分,您将看到敏捷开发方法如何使用一种极端形式的原型设计,这种形式需要现场客户在所有迭代期间提供反馈。