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