瀑布模型(Waterfall model)


瀑布模型(Waterfall model)

它是软件开发中使用的第一种方法和基本模型。这是一个简单的模型,易于使用和理解。执行按顺序发生,这意味着一个阶段的结果等于另一个阶段的输入。这就是为什么它也被称为线性顺序生命周期模型。

为了避免多个阶段的重叠问题,每个阶段都应该在进入下一阶段之前完成。瀑布模型的每个阶段都涉及前一阶段的可交付成果,如需求、转移到设计阶段、设计转移到开发等。当我们有生命关键(医院应用)和机器关键(军事项目)时,我们会广泛使用瀑布模型。

瀑布模型分为各个阶段,具体如下:

  • 需求收集
  • 可行性研究
  • 设计
  • 编码
  • 测试
  • 安装
  • 维护

让我们一一了解它们:

需求收集

需求收集是瀑布模型的第一阶段,在此阶段,业务分析师将以需求文档的形式收集客户的所有信息或业务需求。并且这份文件应该清晰易懂,所有要求都正确列出。

借助软件需求规范[SRS]、客户需求规范[CRS]和业务需求规范[BRS],生成SRS文档。这份 SRS 文档涵盖了应该开发和设计的全部内容。

功能需求的特点

  • 它应该用简单的语言编写,以便易于理解。
  • 规范应该在适当的流程中。
  • 要求应该是可数的。

瀑布模型

可行性研究

可行性研究基于项目的需求,许多人(人力资源、业务分析师、架构)评估项目是否可以完成。要开发一个好的项目,我们应该遵循各种特性,这些特性是基于客户的要求:

方面 描述
合法的 公司能否按照网络法和其他监控协议来处理该项目?
技术的 检查可用机器是否支持该软件?
操作可行性 公司应该能够产生客户给予的操作?
经济 公司是否能够在给定的预算内完成产品?
日程 该项目应在给定的时间表内完成或不完成。

设计

完成可行性研究后,我们将进入下一阶段,即设计。在此,我们将借助一些基本工具,例如不同软件和硬件的组合、各种编程语言(PHP、Java、.Net 等)、数据库(MySQL、Oracle)来创建产品的架构。然后设计师为应用程序准备好可以分为两个不同部分的计划:

  • 高级设计
  • 低级设计

高级设计 [HLD]:

在这种情况下,设计师将只专注于决策树、流程图、决策表、流程图、数据字典等模型,而架构师会这样做。

低级设计 [LLD]:

在这种情况下,设计人员将专注于用户界面 (UI) 等组件,而开发人员经理会这样做。

编码

一旦我们完成了设计阶段,我们就可以开发应用程序了。为此,开发人员将根据他们的编程语言知识开始编写代码,它可以是任何语言,例如 Python、C、Java、C#、C++ 等。而后端开发人员将根据所需的操作进行后端编码,而前端开发人员将开发有吸引力的 GUI。

测试

编码编译完成后,交给关心的测试工程师。之后,测试工程师将根据客户的要求开始测试应用程序的功能。

在测试应用程序时,他们可能会遇到应用程序中的一些缺陷或错误(不按照客户的需要工作),并将这些错误以适当的理由发送给开发人员。开发人员将验证给定的错误是否有效。如果它是正确的,它将由开发人员修复并更改为新的。之后,测试人员将重新测试它并验证错误是否已修复。

安装

测试应用程序后,我们将进入下一阶段(安装)。在这种情况下,该过程将一直持续到软件稳定或无错误并满足所有客户要求。当应用程序稳定后,它将安装到客户端的环境中供他们使用。

获得软件后,客户将进行一轮测试,使其满意。如果他们遇到任何错误,他们将通知开发团队为特定应用程序解决这些问题。当所有问题都得到解决后,应用程序将被部署供最终用户使用。

维护

成功完成六个阶段后,我们将进入瀑布模型的最后一个阶段(维护)。在这种情况下,该过程将一直持续到软件结束,最终用户开始使用该应用程序,他们可能会遇到一些需要测试和修复的问题。不时地照顾产品称为维护,其中包括硬件和软件中发生的变化,以保持操作有效性并提高性能。

瀑布模型示例

早些时候它被用于人力资源管理 [HRM]、供应链管理系统、客户关系管理 [CRM] 和零售链等应用程序,但现在,瀑布模型已被其他模型取代,例如迭代模型和敏捷方法论等。

瀑布模型

瀑布模型的优缺点

优点 缺点
在瀑布模型中,需求应该是明确的。 这个模型没有并行的可交付成果,这意味着两个团队可以一起工作。
它适用于需要很好理解的较小项目。 瀑布模型不提供需求变更和需求审查。
这个模型很容易理解,也很容易使用。 以前,当瀑布被发明时,没有测试的概念,这就是为什么使用开发人员来测试应用程序。
这将使我们能够有效地安排任务。 在两者之间,不允许更改,因为一个阶段依赖于另一个阶段。
在此模型中,允许更改版本级别。 向后跟踪是不可能的。
在这个模型中,程序和结果都有很好的记录。 这是一个耗时的过程。