SDLC - 瀑布模型



瀑布模型是一个经典的 SDLC 模型,它广为人知、易于理解且常用。它由 Royce 于 1970 年提出,至今仍被作为软件开发的常用方法,在业界各种组织中被广泛采用。

在瀑布模型中,每个生命周期阶段只有在之前的生命周期阶段完成后才能开始。因此,它是一个没有反馈循环的线性模型。

Waterfall Lifecycle

瀑布模型 – 优点

瀑布模型的优点如下:

  • 易于理解,易于使用。
  • 为缺乏经验的开发团队提供结构。
  • 里程碑易于理解。
  • 设定需求稳定性。
  • 非常适合管理控制(计划、监控、报告)。
  • 当质量比成本或进度更重要时,它非常有效。

瀑布模型 – 缺点

瀑布模型的缺点或不足之处如下:

  • 理想化 - 它与现实并不完全匹配。

  • 不切实际 - 无法期望在项目早期获得准确的需求。

  • 没有反映探索性开发的迭代性质,而探索性开发更为常见。

  • 难以且成本高昂地进行更改。

  • 软件仅在项目结束时交付。因此 -

    • 延迟发现严重缺陷。

    • 可能交付过时的需求。

  • 管理开销很大,对于小型团队和项目来说可能成本很高。

  • 每个阶段都需要经验丰富的资源 - 分析师、设计师、开发人员、测试人员。

  • 测试仅在开发完成后开始,测试人员不参与任何早期阶段。

  • 跨职能团队的专业知识未得到共享,因为每个阶段都是独立执行的。

何时使用瀑布模型?

如果您满足以下条件,可以使用瀑布模型:

  • 需求非常明确。

  • 产品定义稳定。

  • 技术充分理解。

  • 现有产品的更新版本。

  • 将现有产品移植到新平台。

  • 大型组织,拥有结构化的跨职能团队。

  • 组织内部以及与客户之间的沟通渠道已建立。

演化原型模型

在使用演化原型模型进行软件开发时,开发人员在需求阶段构建原型。然后,最终用户评估原型并提供反馈。反馈可以是原型更正或附加功能。根据反馈,开发人员进一步完善原型。

因此,产品通过原型→反馈→改进原型循环演化,因此得名演化原型。当用户对产品的功能和工作方式感到满意时,原型代码将提升至最终产品交付所需的标准。

Final Product Delivery

演化原型模型 – 优点

演化原型模型的优点或优势如下:

  • 客户/最终用户可以通过查看原型来直观地了解系统需求。

  • 开发人员从客户那里学习,因此在领域或生产环境方面没有歧义。

  • 允许灵活的设计和开发。

  • 与原型的交互激发了对额外所需功能的认识。

  • 意外需求和需求变更很容易适应。

  • 产生稳定且可见的进度迹象。

  • 交付准确且可维护的最终产品。

演化原型模型 – 缺点

演化原型模型的缺点或不足之处如下:

  • 倾向于在代码和修复开发中放弃结构化开发,尽管这并非模型规定的内容。

  • 该模型因其快速且简便的方法而声誉不佳。

  • 整体可维护性可能会被忽略。

  • 客户可能会要求将原型作为最终产品交付,而没有给开发人员机会执行最后一步,即最终产品的标准化。

  • 项目可能会无限期地持续(随着范围蔓延),管理层可能不会对此表示赞赏。

何时使用演化原型模型?

您可以使用演化原型模型 -

  • 当需求不稳定或需要澄清时
  • 作为瀑布模型的需求澄清阶段
  • 开发用户界面
  • 用于短期演示
  • 用于新的或原始开发
  • 用于实施新技术
广告