SDLC - 迭代模型


在迭代模型中,迭代过程从一小部分软件需求的简单实现开始,并迭代地增强不断发展的版本,直到完整的系统被实现并准备好部署。

迭代生命周期模型并不尝试从完整的需求规范开始。相反,开发从指定和实现软件的一部分开始,然后对其进行审查以确定进一步的需求。然后重复此过程,在模型的每次迭代结束时生成新版本的软件。

迭代模型 - 设计

迭代过程从软件需求子集的简单实现开始,并迭代地增强不断发展的版本,直到实现完整的系统。在每次迭代中,都会进行设计修改并添加新的功能。此方法背后的基本思想是通过重复循环(迭代)和一次较小的部分(增量)来开发系统。

下图是迭代和增量模型的表示 -

SDLC迭代模型

迭代和增量开发是迭代设计或迭代方法与增量构建模型的组合进行开发。“在软件开发过程中,软件开发周期的多个迭代可能同时进行。” 这个过程可以被描述为“进化获取”或“增量构建”方法。

在这个增量模型中,整个需求被分为不同的构建。在每次迭代期间,开发模块都会经历需求、设计、实现和测试阶段。该模块的每个后续版本都会在先前版本的基础上添加功能。该过程持续进行,直到完整的系统按照要求准备就绪。

成功使用迭代软件开发生命周期的关键是严格验证需求,并根据模型每个周期内的这些需求对每个版本的软件进行验证和测试。随着软件在连续的周期中不断发展,必须重复和扩展测试以验证软件的每个版本。

迭代模型 - 应用

与其他 SDLC 模型一样,迭代和增量开发在软件行业中有一些特定的应用。该模型最常用于以下场景 -

  • 整个系统的要求被明确定义和理解。

  • 必须定义主要要求;然而,某些功能或要求的增强功能可能会随着时间的推移而发展。

  • 市场有时间限制。

  • 开发团队在项目工作过程中正在使用和学习一项新技术。

  • 具有所需技能集的资源不可用,计划根据合同用于特定迭代。

  • 有些高风险功能和目标将来可能会发生变化。

迭代模型 - 优点和缺点

这种模型的优点是在系统开发的早期阶段就有一个工作模型,这使得更容易发现功能或设计缺陷。在开发的早期阶段发现问题可以在有限的预算内采取纠正措施。

这种SDLC模型的缺点是它仅适用于大型且庞大的软件开发项目。这是因为很难将小型软件系统分解为更小的可服务增量/模块。

迭代和增量 SDLC 模型的优点如下:

  • 一些工作功能可以在生命周期的早期快速开发。

  • 尽早并定期获得结果。

  • 可以规划并行开发。

  • 进展是可以衡量的。

  • 更改范围/要求的成本较低。

  • 在较小的迭代期间进行测试和调试很容易。

  • 在迭代过程中识别并解决风险;每次迭代都是一个易于管理的里程碑。

  • 更容易管理风险 - 首先完成高风险部分。

  • 每一次增量都会交付可操作的产品。

  • 从每个增量中识别出的问题、挑战和风险可以利用/应用于下一个增量。

  • 风险分析比较好。

  • 它支持不断变化的需求。

  • 初始操作时间较短。

  • 更适合大型关键任务项目。

  • 在生命周期中,软件尽早生产,有利于客户评估和反馈。

迭代和增量 SDLC 模型的缺点如下:

  • 可能需要更多资源。

  • 虽然变更成本较小,但不太适合变更需求。

  • 需要更多的管理关注。

  • 系统架构或设计问题可能会出现,因为并非所有需求都在整个生命周期的开始时收集。

  • 定义增量可能需要定义整个系统。

  • 不适合较小的项目。

  • 管理复杂性较多。

  • 项目结束可能不知道,这是一个风险。

  • 风险分析需要高技能的资源。

  • 项目进展高度依赖于风险分析阶段。