软件工程|原型模型

原型设计被定义为开发必须设计的产品或系统的工作复制的过程。它提供终端产品的小规模传真,用于获取客户反馈,如下所述:

null

图片[1]-软件工程|原型模型-yiteyi-C++库

原型模型是最常用的软件开发生命周期模型(SDLC模型)之一。当客户事先不知道确切的项目要求时,使用此模型。在该模型中,首先根据客户的反馈,开发、测试和完善最终产品的原型,直到获得最终可接受的原型,这是开发最终产品的基础。

在这个过程模型中,系统在分析阶段之前或期间部分实现,从而使客户有机会在生命周期的早期看到产品。这一过程从采访客户开始,并开发不完整的高级论文模型。本文档用于构建仅支持客户所需基本功能的初始原型。一旦客户发现问题,原型将进一步改进以消除它们。该过程将继续进行,直到用户批准原型并发现工作模型令人满意。

有四种型号可供选择:

A) 快速一次性原型制作—— 这项技术提供了一种有用的方法来探索想法,并为每个想法获得客户反馈。在这种方法中,开发的原型不一定是最终接受的原型的一部分。客户反馈有助于防止不必要的设计错误,因此,开发的最终原型质量更好。

B) 进化原型—— 在这种方法中,最初开发的原型会在客户反馈的基础上逐步细化,直到最终被接受。与快速一次性原型相比,它提供了一种更好的方法,既省时又省力。这是因为,对于开发人员来说,为流程的每次迭代从头开始开发原型有时会非常令人沮丧。

C) 增量原型设计—— 在这种类型的增量原型中,最终的预期产品被分解成不同的小块原型,并单独开发。最后,当所有单独的部件都得到适当的开发时,不同的原型就会按照预定义的顺序合并成一个单一的最终产品。这是一种非常有效的方法,可以降低开发过程的复杂性,其中目标被划分为子部分,每个子部分都是单独开发的。项目开始和最终交付之间的时间间隔大大缩短,因为系统的所有部分都是同时原型化和测试的。当然,由于开发阶段的一些不足,可能会出现零件无法装配在一起的情况——这只能通过在原型设计开始之前仔细完整地绘制整个系统来解决。

D) 极限原型设计—— 这种方法主要用于web开发。它由三个连续的独立阶段组成:

D.1) 在这个阶段,一个包含所有现有静态页面的基本原型以HTML格式呈现。

D.2) 在第二阶段中,使用原型服务层通过模拟数据过程制作功能屏幕。

D.3) 这是实现所有服务并与最终原型关联的最后一步。

这种极端的原型设计方法使项目循环和交付变得健壮和快速,并使整个开发团队集中精力于产品交付,而不是发现所有可能的需求和规格,并添加不必要的功能。

图片[2]-软件工程|原型模型-yiteyi-C++库

优势——

  • 客户可以在生命周期的早期看到部分产品。这确保了更高水平的客户满意度和舒适度。
  • 新的需求可以很容易地适应,因为有改进的余地。
  • 缺失的功能可以很容易地找到。
  • 除了提高软件的质量外,错误可以更早地被检测到,从而节省大量工作和成本。
  • 开发的原型可以被开发人员重用,用于将来更复杂的项目。
  • 设计的灵活性。

缺点——

  • 昂贵的水资源税时间和金钱。
  • 每次客户评估原型时,需求可能会有太多变化。
  • 由于客户要求不断变化,导致文件质量差。
  • 开发人员很难适应客户要求的所有更改。
  • 在原型最终被客户接受之前,确定所需的迭代次数存在不确定性。
  • 在看到早期原型后,客户有时会要求尽快交付实际产品。
  • 急于构建原型的开发人员最终可能会得到次优的解决方案。
  • 如果客户对最初的原型不满意,他/她可能会对产品失去兴趣。

使用—— 当产品的要求不清楚或不稳定时,应使用原型模型。如果需求变化很快,也可以使用它。该模型可以成功地用于开发用户界面、高技术软件密集型系统以及具有复杂算法和界面的系统。这也是展示产品技术可行性的一个很好的选择。

接下来读: 经典瀑布模型 , 螺旋模型 , 迭代瀑布模型

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享