增量模型是软件工程中的一种软件开发过程模型,其做法是把待开发的软件系统按功能拆分为若干增量构件,分批进行分析、设计、编码、测试和交付,每个增量都是可运行、可使用的软件产品,直到全部构件集成为完整系统。它与一次交付全部功能的瀑布模型相对,先交付最核心的功能,再按优先级逐步补充,因此能够较早让用户接触到可用的软件,并把整体风险分散到多个较小的增量中。
定义
增量模型又称渐增模型,是一种把软件产品作为一系列增量构件来设计、编码、集成和测试的软件开发过程模型。每个构件由多个相互作用的模块构成,能够完成特定的功能,并可按优先级逐个交付给用户[1]。
它属于非整体开发模型,与瀑布模型的整体式推进相对。开发初期只需确定系统的基本结构和需求框架,细节可以推迟到各增量构件开发时再逐项补充,从而较早产生可运行的工作软件[1][2]。
在具体实施中,增量方式包括增量开发和增量提交两种:前者指在项目周期内按一定时间间隔开发出部分工作软件,后者指按一定时间间隔向用户提交工作软件及相应文档,两者可以同时使用,也可以单独使用[1]。
原理
增量模型的流程可分为三个阶段。首先针对整个系统进行需求分析和概要设计,确定以增量构件为基础的需求框架,并据此完成软件体系结构设计;随后对每个构件细化需求,依次进行设计、编码、测试和有效性验证;一个构件完成后将其集成进系统,并对发生变化后的系统重新验证,再开始下一个构件[3]。
在整体上,项目仍遵循类似瀑布模型的结构化流程以便管理;在具体创建上,则把系统按功能分解为许多增量构件逐个交付,因此可视为瀑布模型与原型进化模型的综合[3][4]。
增量交付的顺序由需求优先级决定,最高优先级的核心服务最先交付,随着后续构件不断集成,核心构件会接受最多次数的测试,从而提高系统最重要部分的可靠性[1]。每个增量的开发可以使用瀑布模型,也可以使用快速原型模型,并不要求所有增量采用相同的过程[5]。
以文字处理软件为例,第一个增量只提供创建文本的功能,第二个增量增加剪切、粘贴等组织文本的功能,第三个增量再补充字体、字号等格式修改功能,每次发布都在前一次的基础上扩展[5]。
发展历程
增量模型的出现是为了克服瀑布模型在灵活性和可修改性方面的局限。它是在瀑布模型基础上修改形成的,两者本质区别在于:瀑布模型规定在开始下一阶段前必须完成前一阶段的所有细节,而增量模型推迟某些阶段或所有阶段中的细节,从而较早产生工作软件[1]。
据软件工程教材记载,该模型由米尔斯(Harlan Mills)等人于 1980 年提出,思路是先对系统最核心或最清晰的需求完成分析、设计、实现、测试并集成,再按优先级逐步处理后续需求,最终建成完整系统[1]。也有资料将增量式开发模型追溯到米尔斯更早提出的按增量方式“生长”软件的主张[6]。
由米尔斯、戴尔和林格提出的净室软件开发方法所使用的就是增量模型[7]。此后,增量思想被吸收进统一过程等迭代式框架,与迭代开发结合使用成为常见做法[8]。
需要区分增量与迭代:增量是逐块建造,先完成一部分功能再完成另一部分;迭代是反复求精,先搭出整体雏形再逐步细化。一个发布版本可能同时包含新增功能和已有功能的改进,因此许多组织把两者结合使用[2][8]。
应用
增量模型适用于软件产品可以分批交付、系统能够被模块化的项目,也适用于开发人员对应用领域不熟悉、难以一次性完成系统开发的场合,并要求项目管理人员有较强的全局把握能力[3]。
在已有产品的升级或新版本开发中,增量模型较为合适;对完成期限有严格要求的产品,以及开发领域较熟悉、已有原型系统的项目,也可以采用[1]。另有观点认为,在资金和成本无法一次到位时,可采用增量模型让软件产品分多个版本发布[7]。
在互联网产品开发中,增量思路与最小可行产品方法相结合:先以最小成本构建符合预期功能的最小功能集合,再根据用户反馈迭代完善[7]。在敏捷开发体系中,增量模型也常被运用[9]。
局限
增量模型要求待开发的软件系统能够被模块化。如果系统难以拆分,增量开发就会遇到很多麻烦;如果拆出的各增量包之间存在交叉且处理不当,还必须进行全盘系统分析[3][1]。
由于各构件是逐步并入已有体系结构的,新增构件不能破坏已构建好的部分,这要求软件具备开放式、可扩展的体系结构,并要求事先定义良好的接口[1][7]。
从管理角度看,增量式方法存在过程不可见的问题:管理者需要通过经常性的可交付文档把握进度,若开发速度过快,为每个版本生成反映系统状态的文档并不划算;随着新增量不断加入,系统结构也可能逐渐退化,除非投入时间和成本重构。增量粒度难以选择、确定所有增量都会用到的基本服务比较困难,也是常见问题[1][7]。
此外,增量模型有退化为边做边改模型的风险,使软件过程的控制失去整体性;需求若不像早期设想的那样稳定完整,部分增量可能需要重新开发和重新发布[1][10]。
参见
参考资料
- 软件工程导论期末急救包(上)(二) . aliyun.com [引用日期2026-10-02]
- 【软件测试】基础知识第二篇 . aliyun.com [引用日期2026-10-02]
- [科普中国]-增量模型 . kepuchina.cn [引用日期2026-10-02]
- 开发模型 和 测试模型 详解 . aliyun.com [引用日期2026-10-02]
- 增量模型 . sjtu.edu.cn [引用日期2026-10-02]
- Incremental development - grow, don't build, software . drexel.edu [引用日期2026-10-02]
- 图文详情——科普中国资源服务 . kepuchina.cn [引用日期2026-10-02]
- 第1章 软件开发与管理全过程 . hxedu.com.cn [引用日期2026-10-02]
- 产品开发周期模型实战系列之增量模型:分阶段功能交付,助力核心需求快速落地 . huaweicloud.com [引用日期2026-10-02]
- 各软件开发模型的优缺点-重庆市软件正版化服务平台 . cqzbh.org.cn [引用日期2026-10-02]
浏览次数:1 次
阅读量:0 次 · 阅读完成量:0 次
最近更新:2026-10-02T12:37:52Z
完成率 = 阅读完成量 ÷ 阅读量,分母是阅读量不是浏览次数 —— 关了 JS 的、秒退的都在浏览次数里、不在阅读量里。 详细口径在后台的「数据统计」页。