📜  软件工程 |原型模型

📅  最后修改于: 2022-05-13 01:57:03.452000             🧑  作者: Mango

软件工程 |原型模型

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

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

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

有四种可用的模型:

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

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

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

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

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

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

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

这种极限原型设计方法使项目周期和交付稳健而快速,并使整个开发团队专注于产品交付,而不是发现所有可能的需求和规格并添加不必要的功能。

好处 -

  • 客户可以在生命周期的早期看到部分产品。这确保了更高水平的客户满意度和舒适度。
  • 由于存在改进的余地,因此可以轻松满足新要求。
  • 可以很容易地找出缺少的功能。
  • 除了提高软件的质量外,还可以更早地检测到错误,从而节省大量精力和成本。
  • 开发的原型可以被开发人员在未来更复杂的项目中重复使用。
  • 设计的灵活性。

缺点——

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

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

阅读下一篇:经典瀑布模型、螺旋模型、迭代瀑布模型