夜雨聆风学习资料网

ARTICLE · 1288842

04-软件开发模型(敏捷模型)

04-软件开发模型(敏捷模型)
大家好!今天我们继续细说软考高级架构知识点。本节来讲解软件开发模型(敏捷模型)的内容

一、敏捷是什么(软考标准定义)

敏捷开发不是某一个固定的过程模型,是一类以用户需求为核心、迭代增量、快速反馈的轻量级软件过程思想的集合。2001 年,17 位行业专家共同发布《敏捷宣言》,奠定敏捷的基础。敏捷解决的痛点:传统重型过程(瀑布)文档多、周期长、变更成本高、很难适应当今快速变化的需求。
✅ 一句话考点:敏捷属于增量 + 迭代开发;适合需求变化频繁的项目。

二、敏捷宣言(4 条,必考)

  1. 个体和交互 胜过 过程和工具
  2. 可工作的软件 胜过 详尽的文档
  3. 客户合作 胜过 合同谈判
  4. 响应变化 胜过 遵循计划
⚠️ 软考易错坑:敏捷宣言不是说不要文档、不要流程、不要合同、不要计划;只是优先级更低。可工作软件是敏捷最重要的交付物。

三、敏捷 12 条原则(理解 + 选择题考点)

  1. 我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。
  2. 欢迎需求变更,即使在开发后期。敏捷过程利用变更为客户创造竞争优势。
  3. 经常交付可工作的软件,交付周期越短越好(几周而不是几个月)。
  4. 业务人员和开发人员必须天天在一起工作。
  5. 围绕积极的个体开展项目,给他们所需环境和支持,信任他们能完成工作。
  6. 在团队内部,最有效的信息传递方式是面对面交流。
  7. 可工作的软件是进度的首要度量标准。
  8. 敏捷过程倡导可持续开发,责任人、开发人员、用户维持一个恒定节奏。
  9. 持续关注技术卓越和好的设计,增强敏捷能力。
  10. 简单 —— 使未完成的工作最大化的艺术。
  11. 最好的架构、需求和设计出自自组织团队。
  12. 团队定期反思如何提高效率,并据此调整自己的行为。

四、敏捷核心通用特点(选择题高频)

  1. 迭代增量:把大项目拆成多个短迭代(Sprint),每个迭代产出可运行、可交付的软件增量;
  2. 拥抱变化:需求可以动态调整;
  3. 客户持续参与,持续反馈;
  4. 自组织团队,减少层层管控;
  5. 轻文档:只保留必要文档,拒绝文档驱动;
  6. 价值优先:优先开发高价值需求。
区分两个名词:
迭代:同一套需求反复打磨优化;          
增量:每次增加一部分新功能;          
敏捷 Sprint 同时具备迭代 + 增量特性。

五、主流敏捷方法(软考必考,逐个掌握)

1. Scrum(考的最多)

Scrum 是最流行的敏捷框架,有固定角色、工件、事件(仪式)。

三大角色

  1. 产品负责人 PO(Product Owner):负责产品 Backlog、排优先级、代表客户,决定做什么;
  2. Scrum Master(SM,Scrum 主管):不是项目经理;仆人式领导,移除团队障碍、保护团队、保障 Scrum 流程正常运行,不分配任务;
  3. 开发团队(Dev Team):自组织、跨职能,5–9 人最佳,负责估算、实现、测试本迭代功能。

三大工件

  1. 产品待办列表 Product Backlog:整个产品所有需求池,持续维护、优先级排序;
  2. 迭代待办列表 Sprint Backlog:从 Product Backlog 选出,本 Sprint 要完成的任务集合;
  3. 增量 Increment:Sprint 结束输出的可工作、可验收的软件版本。

五大事件(仪式)

  1. Sprint 规划会:确定 Sprint 目标,挑选需求,拆解任务;
  2. 每日站会 Daily Scrum(15 分钟以内):昨天做了什么、今天做什么、遇到什么障碍;不是汇报会;
  3. Sprint 评审会:向 PO、客户演示增量,收集反馈,更新产品 Backlog;
  4. Sprint 回顾会:团队复盘本迭代,哪些做得好、哪些改进;
  5. Sprint:一个固定时长迭代,通常 1–4 周,时长固定,中途不改变 Sprint 目标。
⚠️ 考点:Sprint 周期一旦确定,不能随意拉长缩短;Sprint 内部需求一般不插入。

2. XP 极限编程(Extreme Programming)

适合需求高度不稳定、风险高的项目,强调工程实践。XP 四大价值观:沟通、简单、反馈、勇气。核心实践(高频考点):
  1. 结对编程:两人一台机器共同编码
  2. 测试先行 TDD:先写测试用例,再写业务代码
  3. 持续集成 CI、小版本频繁发布
  4. 简单设计、重构
  5. 现场客户:客户全职在团队内随时答疑
  6. 编码规范、隐喻、集体代码所有权
对比:Scrum 是管理框架;XP 是一套工程实践。二者经常搭配使用(Scrum+XP)。

3. Kanban 看板方法

看板不是固定迭代,是持续流动式敏捷,没有 Sprint。核心:可视化工作流、限制在制品 WIP、管理流动、持续优化。适合:运维支持、工单、维护类工作、需求持续流入、无法按固定迭代规划的场景。
考点区分:看板是流式、无固定迭代;Scrum 是时间盒 Sprint 迭代。

4. FDD 特征驱动开发(Feature-Driven Development)

以功能特征 Feature为核心驱动,适合大型软件项目。流程:
  1. 开发整体模型
  2. 特征列表
  3. 按特征规划
  4. 按特征设计
  5. 按特征构建         
     特点:面向对象、以小特征为单位交付;适合大型团队。

5. Crystal 水晶方法系列

是一族方法(Crystal Clear、Yellow、Orange、Red)。核心思想:不同项目、不同风险、不同规模,敏捷流程轻重不同。根据项目规模、关键性选择不同的水晶;人是第一位,流程随人适配。
一句话:水晶以人为本,是 “可伸缩” 的敏捷。

6. DSDM 动态系统开发方法

早期敏捷,强调固定时间、固定预算,范围可变;MoSCoW 需求优先级模型:Must have 必须、Should have 应该、Could have 可以、Won’t have 本次不做,软考选择题高频。

7. Lean 精益软件开发

源自精益生产,核心 7 大浪费:部分完成的工作、额外过程、多余功能、任务切换、等待、缺陷、知识传递。核心:消除浪费、快速流动、延迟决策、尽早交付价值。

六、敏捷的估算方式(考点)

  1. 故事点(Story Point):相对估算,不是工时;常用斐波那契数列:1,2,3,5,8,13…
  2. 计划扑克:团队共同估算故事点
❌ 易错:故事点不是人天,是相对复杂度。

七、敏捷工件、文档考点总结

敏捷不禁止文档,拒绝 “前置大文档”;文档按需、轻量化。常见:用户故事 User Story(格式:作为 XX,我希望 XX,以便 XX)、验收标准。
用户故事 INVEST 原则(高频):Independent 独立、Negotiable 可协商、Valuable 有价值、Estimable 可估算、Small 小、Testable 可测试。

八、敏捷模型 优点、缺点

✅ 优点

  1. 快速响应需求变更,客户满意度高;
  2. 早期持续交付可用版本,风险提前暴露;
  3. 强调沟通,减少误解;
  4. 聚焦业务价值,避免做无用功能;
  5. 自组织团队,激发主动性。

❌ 缺点

  1. 对团队、客户的参与度要求很高;客户没时间深度参与很容易失败;
  2. 进度、成本预估比较困难,不容易精确管控;
  3. 文档偏少,后期交接、审计、合规场景吃力;
  4. 适合小团队,超大型复杂项目直接纯敏捷容易失控;
  5. 依赖团队自律,管控弱,容易范围蔓延。

九、适用场景 & 不适合场景

✅ 适合敏捷:

  1. 需求不明确、变化频繁、市场快速迭代(互联网产品);
  2. 快速验证业务原型、抢占市场;
  3. 中小型跨职能团队;
  4. 客户可以持续投入、参与评审、及时反馈。

❌ 不适合敏捷:

  1. 需求稳定、固定不变、高合规审计(军工、航空、医疗安全关键软件);
  2. 合同严格固定范围、固定交付物,客户无法持续配合;
  3. 分布式大团队、强外包审计、需要全套前置规格文档;
这类场景一般使用瀑布,或者敏捷 + 阶段门(混合模型)。

十、敏捷 vs 瀑布(软考必考对比)

表格

对比项

瀑布模型

敏捷模型

需求

前期一次性冻结,尽量不变

需求可变,持续细化

交付

末期一次性交付

迭代增量、频繁交付可用版本

管理方式

计划驱动、阶段评审

价值驱动、反馈驱动

文档

重文档,文档是基线

轻文档,必要文档

风险

风险集中在后期

风险早期持续暴露

适合

需求稳定、高合规审计

需求多变、快速创新

十一、软考高频易错坑汇总(必看)

  1. ❌ 敏捷 = 不要文档 → 错!敏捷拒绝前置冗余文档,保留必要文档;
  2. ❌ Scrum Master 是项目经理,负责分配任务 → 错;SM 是障碍移除者,团队自组织;
  3. ❌ 每日站会用来汇报给领导 → 错;是团队内部同步,识别障碍;
  4. ❌ 故事点 = 开发工时 → 错;是相对复杂度估算;
  5. ❌ 所有项目都适合敏捷 → 错;安全攸关、强合规项目一般不适合纯敏捷;
  6. ❌ Sprint 中途可以随便加需求、修改 Sprint 目标 → 错;Sprint 目标在迭代内稳定,变更放入 Backlog 下一轮;
  7. DSDM 的 MoSCoW 优先级是高频选择题;
  8. XP 的 TDD、结对编程是标志性工程实践;
  9. 看板没有固定时间盒 Sprint,和 Scrum 最大区别。

十二、补充:敏捷和增量、迭代关系

  1. 迭代:反复打磨同一个需求;
  2. 增量:每次增加新功能;
  3. Scrum Sprint:迭代式增量开发。
非常感谢大家一直以来的支持与陪伴!如果这期内容对你有收获、有帮助,欢迎点赞、关注,持续解锁更多IT架构干货,我们下期再见!
知识链接:
05.软件工程生命周期开发模型--敏捷开发

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料