SDLC - 迭代模型
在迭代模型中,迭代过程从一小组软件需求的简单实现开始,并迭代地增强不断发展的版本,直到完整的系统被实现并准备好部署。
迭代生命周期模型不会尝试从完整的需求规范开始。 相反,开发从仅指定和实施软件的一部分开始,然后对其进行审查以确定进一步的需求。 然后重复此过程,在模型的每次迭代结束时生成新版本的软件。
迭代模型 - 设计
迭代过程从软件需求的一个子集的简单实现开始,并迭代地增强不断发展的版本,直到实现整个系统。 在每次迭代中,都会进行设计修改并添加新的功能。 这种方法背后的基本思想是通过重复循环(迭代)和一次一小部分(增量)开发一个系统。
下图是迭代和增量模型的表示 −
![SDLC 迭代模型](https://www.w3ccoo.com/sdlc/images/sdlc_iterative_model.jpg)
迭代和增量开发是迭代设计或迭代方法与增量构建模型相结合的开发方式。 "在软件开发过程中,软件开发周期的不止一次迭代可能同时进行。" 这个过程可以描述为"进化获取"或"增量构建"方法。
在这个增量模型中,整个需求被分成不同的构建。 在每次迭代期间,开发模块都会经历需求、设计、实施和测试阶段。 该模块的每个后续版本都会向前一个版本添加功能。 该过程一直持续到整个系统根据要求准备就绪。
成功使用迭代软件开发生命周期的关键是严格验证需求,并在模型的每个周期内根据这些需求验证和测试软件的每个版本。 随着软件通过连续的周期发展,必须重复和扩展测试以验证软件的每个版本。
迭代模型 - 应用
与其他 SDLC 模型一样,迭代和增量开发在软件行业中有一些特定的应用。 该模型最常用于以下场景 −
完整系统的要求已明确定义和理解。
必须定义主要要求; 但是,某些功能或请求的增强功能可能会随着时间的推移而发展。
市场约束有时间。
开发团队在开展项目时正在使用和学习新技术。
具有所需技能组合的资源不可用,计划在特定迭代的合同基础上使用。
有一些高风险的功能和目标可能会在未来发生变化。
迭代模型 - 优点和缺点
此模型的优点是在开发的非常早期阶段就有系统的工作模型,这使得更容易发现功能或设计缺陷。 在开发的早期阶段发现问题可以在有限的预算内采取纠正措施。
此 SDLC 模型的缺点是它仅适用于大型和笨重的软件开发项目。 这是因为很难将小型软件系统分解成更小的可维护增量/模块。
迭代和增量SDLC模型的优点如下 −
一些工作功能可以在生命周期的早期快速开发。
及早并定期获得结果。
可以计划并行开发。
可以衡量进展。
更改范围/要求的成本较低。
在较小的迭代中进行测试和调试很容易。
在迭代过程中识别并解决风险; 每次迭代都是一个易于管理的里程碑。
更易于管理风险 - 首先完成高风险部分。
随着每次增量,交付可操作的产品。
每个增量中确定的问题、挑战和风险可以用于/应用于下一个增量。
风险分析比较好
它支持不断变化的需求。
初始操作时间更短。
更适合大型任务关键型项目。
在生命周期中,软件会在早期生成,这有助于客户进行评估和反馈。
迭代和增量SDLC模型的缺点如下 −
可能需要更多资源。
虽然变更成本较小,但不太适合变更需求。
需要更多的管理注意力。
系统架构或设计问题可能会出现,因为并不是所有的需求都在整个生命周期的开始就被收集。
定义增量可能需要定义完整的系统。
不适合较小的项目。
管理复杂度更高。
项目结束可能未知,这是一种风险。
风险分析需要高技能的资源。
项目进度在很大程度上取决于风险分析阶段。