原型定义为开发必须进行工程设计的产品或系统的有效复制的过程。它提供了最终产品的小型传真机, 并用于获取客户反馈, 如下所述:
原型模型是最流行的软件开发生命周期模型(SDLC模型)之一。当客户事先不知道确切的项目要求时, 可以使用此模型。在此模型中, 首先根据客户的反馈反复开发, 测试和完善最终产品的原型, 直到获得最终可接受的原型, 从而构成开发最终产品的基础。
在此过程模型中, 系统是在分析阶段之前或之中部分实现的, 从而使客户有机会在生命周期的早期查看产品。该过程首先会见客户并开发不完整的高级纸张模型。本文档用于构建仅支持客户所需基本功能的初始原型。一旦客户解决了问题, 便会进一步完善原型以消除问题。该过程一直持续到用户批准原型并找到令人满意的工作模型为止。
共有四种类型的模型:
A)快速一次性原型制作–
该技术提供了一种有用的方法来探索想法并获得每个想法的客户反馈。在这种方法中, 开发的原型不必一定是最终接受的原型的一部分。客户的反馈有助于防止不必要的设计错误, 因此, 开发出的最终原型质量更高。
B)进化原型–
用这种方法, 最初开发的原型会根据客户反馈逐步完善, 直到最终被接受为止。与快速抛弃式原型制作相比, 它提供了一种更好的方法, 可以节省时间和精力。这是因为对于过程的每个迭代, 从头开始开发原型有时会使开发人员感到沮丧。
C)增量原型制作–在这种类型的增量原型中, 最终的预期产品被分解为不同的小原型, 并分别进行开发。最后, 当所有单个零件都经过适当开发后, 不同的原型将按照其预定义的顺序被合并到一个最终产品中。这是一种非常有效的方法, 可降低开发过程的复杂性, 该过程将目标分为多个子部分, 每个子部分均单独开发。由于系统的所有部分都同时进行了原型设计和测试, 因此大大缩短了项目开始与最终交付之间的时间间隔。当然, 由于开发阶段的某些不足, 可能会导致各部分无法组装在一起–只有通过在原型制作开始之前仔细仔细地绘制整个系统, 才能解决此问题。
D)极限原型–此方法主要用于Web开发。它由三个连续的独立阶段组成:
D.1)在此阶段, 将以HTML格式显示具有所有现有静态页面的基本原型。
D.2)在第二阶段, 使用原型服务层通过模拟数据处理来创建功能屏幕。
D.3)这是实现所有服务并将其与最终原型关联的最后一步。
这种极端原型方法使项目的循环和交付稳健而快速, 并使整个开发团队集中精力于产品交付, 而不是发现所有可能的需求和规格并添加不必要的功能。
优点 -
- 客户可以在生命周期的早期阶段看到部分产品。这样可以确保更高的客户满意度和舒适度。
- 由于有改进的空间, 因此可以轻松满足新要求。
- 可以轻松找出缺少的功能。
- 可以更早地检测到错误, 从而在提高软件质量的同时节省了大量的工作量和成本。
- 将来, 开发人员可以将开发的原型重用于更复杂的项目。
- 设计的灵活性。
缺点–
- 浪费时间和金钱。
- 每次客户评估原型时, 需求可能会有太多差异。
- 由于客户需求不断变化, 文档质量很差。
- 开发人员很难适应客户要求的所有更改。
- 确定原型最终被客户接受之前需要确定的迭代次数存在不确定性。
- 在看到早期的原型后, 客户有时会要求尽快交付实际产品。
- 急于构建原型的开发人员可能会获得次优的解决方案。
- 如果客户对初始原型不满意, 则可能会对产品失去兴趣。
采用 -
当对产品的要求不清楚或不稳定时, 应使用原型模型。如果需求快速变化, 也可以使用它。该模型可以成功用于开发用户界面, 高科技软件密集型系统以及具有复杂算法和界面的系统。演示产品的技术可行性也是一个很好的选择。
接下来阅读:
古典瀑布模型
,
螺旋模型
,
迭代瀑布模型