7.1.3 软件过程
本课核心知识点整理
软件过程:把开发从“靠个人”变成“靠体系”
软件过程指组织软件开发和维护的一组活动、方法、实践和产物。它关心的不是单个程序员如何写一段代码,而是一个组织如何稳定地交付软件。
课堂在这里重点讲过程改进模型,尤其是 CMM 和 CMMI。考试常给一段描述,让你匹配成熟度等级。
CMM:五级成熟度
CMM 是能力成熟度模型。它把组织的软件过程成熟度分为 5 级,等级越高,过程越稳定、可管理、可度量、可持续改进;一级最低,五级最高。
| 等级 | 名称 | 核心状态 | 关键词 |
|---|---|---|---|
| 1 | 初始级 | 过程混乱,依赖个人能力和英雄式人物 | 混乱、无章、个人努力 |
| 2 | 可重复级 | 对同类项目形成基本项目管理经验,可复现成功 | 项目级、同类项目、基本管理 |
| 3 | 已定义级 | 组织级标准过程建立,文档化、标准化 | 组织级、标准过程、文档化 |
| 4 | 已管理级 | 建立度量标准,用数据管理质量和过程 | 度量、质量、量化管理 |
| 5 | 优化级 | 持续过程改进,主动优化 | 持续改进、优化 |
可以把它理解成组织从“靠高手救场”成长为“靠体系稳定交付”的过程。
CMMI:集成后的过程改进模型
CMMI 是能力成熟度模型集成,它把多个 CMM 相关模型综合改进。它有两种表示方式:
| 表示方式 | 特点 | 考试记法 |
|---|---|---|
| 阶段式模型 | 与 CMM 的五级成熟度思想基本一致 | 1 到 5 级 |
| 连续式模型 | 按过程域能力等级表示 | 0 到 5 级,共 6 个等级 |
CMMI 阶段式模型
| 等级 | 名称 | 与 CMM 的关系 |
|---|---|---|
| 1 | 初始级 | 与 CMM 初始级类似,混乱、依赖个人 |
| 2 | 已管理级 | 对项目过程进行管理 |
| 3 | 已定义级 | 组织标准过程、制度化、文档化 |
| 4 | 定量管理级 | 用量化数据管理过程 |
| 5 | 优化级 | 持续改进和优化 |
注意:CMM 第 2 级叫“可重复级”,CMMI 阶段式第 2 级常叫“已管理级”。这是高频混淆点。
CMMI 连续式模型
连续式模型是 0 到 5 级:
| 等级 | 名称 | 关键词 |
|---|---|---|
| 0 | 未完成级 | 未执行,目标未达到 |
| 1 | 已执行级 | 有可识别输入和输出工作产品 |
| 2 | 已管理级 | 已管理过程制度化 |
| 3 | 已定义级 | 已定义过程制度化 |
| 4 | 定量管理级 | 可定量管理过程制度化 |
| 5 | 优化级 | 利用量化统计手段改进和优化过程 |
课堂特别提醒:看到“量化统计学手段用于改变和优化过程域”,不要条件反射选“定量管理级”,它指向的是“优化级”。定量管理级的重点是“可定量管理的过程制度化”,优化级才强调“用量化统计手段优化”。
技术迭代:为什么从 CMM 到 CMMI
| 模型 | 优势 | 局限 | 被 CMMI 改进的原因 |
|---|---|---|---|
| CMM | 清晰描述软件过程成熟度,便于组织评估 | 主要面向软件过程,模型分散时不便统一 | 需要把多个过程模型整合成统一框架 |
| CMMI | 集成多个模型,支持阶段式和连续式两种视角 | 概念更多,学习和实施成本更高 | 更适合复杂组织跨领域过程改进 |
例题
关于 CMM 五级成熟度,正确的是:
CMMI 阶段式模型的第 2 级通常称为:
CMMI 连续式模型中,利用量化统计学手段对过程进行改变和优化,对应:
自查要点
- CMM 五级分别是什么,哪一级最高?
- “依赖个人英雄”对应 CMM 哪一级?
- CMM 的可重复级和 CMMI 的已管理级有什么命名差异?
- CMMI 阶段式与连续式有什么区别?
- 为什么“量化统计手段优化过程”应选优化级?