# 五个模型，五个补丁：软考里的软件过程模型怎么区分

沿着“后一个模型补前一个模型什么漏洞”这条线，讲清瀑布、原型、增量、V 模型、螺旋和敏捷各自应对什么情况，并拆开最容易混的四组

> 综合知识 · 题型分析 · 备考策略 · 约 6 分钟 · 10 月 21 日

## 本篇要点

1. 软考的过程模型题考的是“这个模型补了前一个模型的什么漏洞”，而不是谁更新。
2. 瀑布把需求当成开工前就能定清的已知量，后面的模型分别在补它的几个前提：需求说得清、交付可以放最后、测试可以放最后、风险不用专门管。
3. 原型交的是用来问需求的样品（可以扔），增量交的是能上线的版本，这是区分“需求模糊”和“分批交付”两类题的依据。
4. V 模型的考点是阶段对应：需求对验收、概要设计对系统测试、详细设计对集成测试、编码对单元测试；它治的是测试依据来得太晚，测试执行仍在后半段。
5. 螺旋的区分特征是每圈固定含风险分析，由风险大小决定这一圈用哪个模型；适合大型高风险系统，不适合小项目。
6. 同一句“需求说不清”加上规模大、技术新，答案就从原型变成螺旋——规模和技术成熟度会改变结论。

---

软考的选择题里，软件开发模型几乎每套题都会碰到。常见两种问法：给一段项目描述，问最适合哪个模型；或给出一个模型的特点，判断哪句描述错了 [1]。这两种题看着是记忆题，其实问的是同一件事：这个模型在补前面哪个漏洞。

## 先看分歧出在哪

所有过程模型都在回答同一件事：什么时候把不确定的东西定下来。

瀑布模型的回答最干脆：开工前。它把软件生命周期排成需求分析、设计、编码、测试、运行维护几个首尾相接的阶段，以文档作为驱动，靠阶段评审控制进度 [2]。好处是容易理解、管理成本低；代价是需求错了越往后改越贵，用户要等到验收才第一次见到东西。

后面的模型都在拆瀑布的两个前提：需求可以一次问清，交付可以放在最后。但要注意，它们不是一代替掉一代。Boehm 提出螺旋模型时指出，瀑布模型本身已经在需求分析旁挂了一个“build it twice”的原型步骤，只是把反馈回路限制在相邻阶段之间 [3]。所以原型不是凭空发明的新东西，V 模型也自称是瀑布的变体，螺旋更是把别的模型当成自己的特例。软考让你选的是最贴切的那个，不是最新的那个。

```mermaid
flowchart LR
  W["瀑布：假设需求开工前就能定清"] --> H1["漏洞：需求说不清"]
  W --> H2["漏洞：交付太晚、风险集中"]
  W --> H3["漏洞：测试堆在最后"]
  W --> H4["漏洞：没人专门算风险"]
  W --> H5["漏洞：文档重、变化进不来"]
  H1 --> P1["原型：先做样品把需求问出来"]
  H2 --> P2["增量：分批交付可操作的版本"]
  H3 --> P3["V 模型：每层测试绑一份设计文档"]
  H4 --> P4["螺旋：每圈先做风险分析"]
  H5 --> P5["敏捷：短迭代加客户合作"]
```

## 五个补丁各自补什么

**原型：补“需求说不出来”。** 用户常说的是“我说不清，但看到就知道了”。那就先快速做个样品给他看，几轮反馈下来需求逐渐清楚。教材把原型分为抛弃型和演化型：前者用来问清需求，问完就扔；后者一路演化成最终产品。它适合需求不清、规模不大的系统 [2]。所以真题里“适用于大规模的软件开发”常被拿来当错误项。

**增量：补“交付太远”。** 把需求切成若干增量，第一个增量通常是核心功能，每个增量都要发布一个可操作的产品 [2]。需求不必一次定全，风险被摊到几次交付上。代价是变更如果没提前规划，后续增量会不稳定，配置和进度管理也会变复杂。

**V 模型：补“测试太晚”。** 它还是瀑布的形状，只是把右侧竖起来，让每个开发阶段绑定一个测试级别：

| 左侧开发阶段 | 右侧测试级别 |
| --- | --- |
| 需求分析 | 验收测试 |
| 概要设计 | 系统测试 |
| 详细设计 | 集成测试 |
| 编码 | 单元测试 |

关键不在“先测试”，而在每层测试依据左边哪份文档、测试计划提前到对应开发阶段去写 [5]。它治的是“需求写错了要到验收才发现”，但测试执行仍然集中在后半段。

**螺旋：补“没人专门算风险”。** 一圈四步：制定计划、风险分析、实施工程、客户评估。软考的标准表述是“结合了瀑布模型和演化模型的优点，并增加了这两种模型忽略的风险分析” [1][2]。Boehm 原文讲得更彻底：每圈先列清目标、可选方案和约束，评估后看剩下最大的风险是什么，再决定这一圈用原型、仿真还是走瀑布那套规格说明——风险决定这一圈用哪个模型，所以螺旋能容纳别的模型 [3]。代价是需要有风险评估经验的人，圈数一多，成本和工期都上去。

**敏捷：补“流程本身太重”。** 它承认需求定不死，于是把周期压短，每轮交一个能工作的软件，靠客户持续参与吸收变化。考试要的是那四条价值观：个体和交互胜过过程和工具，可工作的软件胜过大量文档，客户合作胜过合同谈判，响应变化胜过遵循计划 [4]。适配条件是小团队、需求变化频繁。

## 最容易混的四组

**原型与增量。** 都是“一轮一轮地做”，区别在于这一轮交出去的是什么：原型交的是给人看、用来问需求的样品，可以扔掉；增量交的是能上线使用的版本。题干说需求模糊、要让用户确认，选原型；说分批上线、核心功能先做，选增量。

**增量与演化。** 增量是同一套需求分块上线；演化是产品本身一轮轮变完整，方向由实际运营经验决定。教材把原型模型和螺旋模型都归在演化模型名下 [2][4]——它们是演化的两种实现方式，看到“演化”先想到这两个子类。

**原型与螺旋。** 都迭代，但螺旋每一圈固定含风险分析，而且圈是从整体概念往细节深处转的（Boehm 把径向定义为已花的累计成本）。判断看题干强调什么：强调风险、大型、每轮要评估要不要继续，选螺旋；只强调需求不清、规模不大，选原型。拿螺旋做几十人天的小工具是标准错答，风险评估的开销比要防的风险还大。

**敏捷与增量。** 敏捷靠迭代加增量落地，但增量只是它的手段。判断敏捷要看价值观的痕迹：小团队、响应变化、可工作的软件优于文档。题干只讲分批交付、对人和变化只字未提，就别往敏捷上靠。

## 一个“看着该选原型，其实该选螺旋”的场景

某医院要上一套新系统，还要对接一批新采购的自助设备，院方说不清具体要什么，只说“你先做个样子给我们看”。

按“需求模糊选原型”的套路，答案该是原型。但这道题还埋了第二个条件：系统庞大，而且面对没做过的新硬件接口。原型能问清界面和流程，问不清接口延迟、并发时设备掉线这类技术风险——那恰恰是最可能出问题的地方。螺旋的做法是把最大风险排在第一圈：先用原型或仿真把接口性能验证掉，再决定后面按瀑布的规格说明走，还是继续演化 [3]。所以更贴切的是螺旋，原型只是它第一圈里的零件。

反过来，如果只是给内部写个小工具，同样“需求说不清”，选螺旋就是过度设计。所以这类题不能只背关键词，规模和技术成熟度会改变答案。

## 落到答题上，只问两个问题

第一个：题干里“不确定的”到底是什么？需求说不清是原型，交付太远是增量，技术风险或范围风险高是螺旋，测试与设计脱节是 V 模型，流程太重、变化进不来是敏捷。

第二个：题干描述的那一轮循环，产出的是什么？样品、可用版本、一份下一圈的决策、一层测试计划，还是每轮的可交付软件。产出对上了，模型就对上了。

真实项目里这些模型常混着用，但软考让你选一个，题干一定埋了信号词，而信号词背后的东西就是那个漏洞。

## 术语表

- 软件过程模型：规定开发按什么顺序推进、每阶段交什么产物、在哪儿评审的一套框架，软考里也叫开发模型。
- 原型模型：先花小成本做个样品给用户看，用反馈把说不清的需求问出来；分抛弃型和演化型两种。
- 增量模型：把需求切成若干块，每块都发布一个可操作的产品，核心功能放第一批。
- 风险分析：螺旋模型每圈必走的一步，先列清这轮的目标、可选方案和约束，找出还没解决的最大风险，再决定这轮干什么。
- V 模型的阶段对应：左侧每个开发阶段绑定右侧一个测试级别，测试的依据就是左侧那份文档。

## 来源

1. [软考软件评测师开发模型考点与真题 — 含螺旋四步、原型适用场景与“快速原型优点不包括大规模软件”真题](https://developer.aliyun.com/article/1666035)
2. [软考软件工程部分考点整理 — 瀑布、V 模型、增量、演化、原型、螺旋各模型的定义、优缺点与适用场景](https://blog.csdn.net/Asiyaa/article/details/143138258)
3. [Boehm, A Spiral Model of Software Development and Enhancement (1988) — 螺旋模型原始论文，讲风险驱动的流程裁剪与瀑布已有的反馈回路](https://faculty.washington.edu/hazeline/misc/reserve/boehm_spiralmodel.pdf)
4. [软考高级架构师软件工程笔记 — 螺旋结合瀑布与演化、迭代与增量的区别、敏捷宣言四条价值观](https://blog.lijizhi.website/posts/exam/exam-software-architect-02/)
5. [V 模型集成测试对应谁 — 用真题拆解 V 模型的阶段对应关系](https://rk.51cto.com/article/663996.html)

---

原文：https://pangzhengboyin.com/articles/software-process-models-soft-exam-b8ee993e

> **庞征博引** · 想学的，慢慢都会
>
> 庞征博引是把想学的东西写成连载的 AI 学习工具。说出想学什么，它会先了解你的基础，再把主题写成一篇篇 5–10 分钟能读完的文章；边读边问，接下来学什么跟着你走。这篇就是这样写出来的。
>
> 开始你自己的连载 → https://pangzhengboyin.com
