增量模型也称为渐增模型,把软件产品作为一些列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。分解时唯一必须遵守的约束条件是,当把新构件集成到现有软件中时,所形成的产品必须是可测试的。
增量模型的特点是引进了增量包的概念,无须等到所有需求都出来,只要某个需求的增量包出来即可进行开发。虽然某个增量包可能还需要进一步适应客户的需求并且更改,但只要这个增量包足够小,其影响对整个项目来说是可以承受的。
SDLC 中的增量模型:使用、优势和劣势
什么是增量模型?
增量模型是一个软件开发过程,其中需求被分解为软件开发周期的多个独立模块。增量开发是在分析设计、实施、测试/验证、维护的步骤中完成的。
每次迭代都要经过需求、设计、编码和测试阶段。并且系统的每个后续版本都会在之前的版本中添加功能,直到所有设计的功能都已实现。
该系统在第一个增量交付时投入生产。第一个增量通常是解决基本要求的核心产品,并在下一个增量中添加补充功能。一旦客户分析了核心产品,就可以制定下一个增量的计划。
增量模块的特征包括
-
系统开发被分解成许多迷你开发项目
-
部分系统依次构建,形成最终的整体系统
-
首先解决最高优先级的要求
-
一旦开发了需求,该增量的需求就会被冻结
增量阶段 | 在增量阶段执行的活动 |
---|---|
需求分析 | 收集软件的需求和规范 |
设计 | 这个阶段设计了一些高端功能 |
代码 | 在此阶段完成软件编码 |
测试 | 系统部署后,将进入测试阶段 |
SDLC中何时使用增量模型?
-
清楚了解系统要求
-
当出现对产品提前发布的需求时
-
当软件工程团队不是很熟练或训练有素时
-
当涉及高风险特征和目标时
-
这种方法更多地用于基于 Web 应用程序和产品的公司
增量模型的优缺点
优点 | 缺点 |
---|---|
软件将在软件生命周期内快速生成 | 它需要一个良好的规划设计 |
更改需求和范围更灵活且成本更低 | 由于系统架构可能会导致问题,因此并非所有需求都预先收集到整个软件生命周期 |
在整个开发阶段都可以进行更改 | 每个迭代阶段都是刚性的,不相互重叠 |
与其他模型相比,此模型成本更低 | 一个单元纠正一个问题,需要所有单元都纠正,耗费大量时间 |
错误很容易被识别 |
增量模型的作用
1、开发初期的需求定义只是用来确定软件的基本结构,使得开发初期用户只需要对软件需求进行大概的描述;而对于需求的细节性描述,则可以延迟到增量构件开发时进行,以增量构件为单位逐个地进行需求补充。这种方式能够有效适应用户需求的变更
2、软件系统可以按照增量构件的功能安排开发的优先顺序,并逐个实现和交付使用。不仅有利于用户尽早用上系统,能够更好地适应新的软件环境,而且在以增量方式使用系统的过程中,还能获得对软件系统后续构件的需求经验
3、软件系统是逐渐扩展的,因此开发者可以通过对诸多构件的开发,逐步积累开发经验。实际上,增量式开发还有利于技术复用,前面构件中设计的算法、采用的技术策略、编写的源码等,都可以应用到后面将要创建的增量构件中去
4、增量式开发有利于从总体上降低软件项目的技术风险。个别的构件或许不能使用,但一般不会影响到整个系统的正常工作
5、实际上,在采用增量模型时,具有最高优先权的核心增量构件将会被最先交付,而随着后续构件不断被集成进系统,这个核心构件将会受到最多次数的测试。这意味着软件系统最重要的心脏部分将具有最高的可靠性,这将使得整个软件系统更具健壮性
欢迎转发给有需要的人,微信公众号名称:软件开发安全生命周期。定期分享软件开发生命周期,SDLC、SDL、DevSecOps等相关的知识。致力于分享知识、同时会分享网络安全相关的知识点和技能点
原文始发于微信公众号(软件开发安全生命周期):SDL序列课程-第32篇-威胁建模篇-增量模型
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论