<软件工程>SE8 集成化能力成熟度模型 CMMI
本文最后更新于:2023年11月4日 下午
SE8 集成化能力成熟度模型 CMMI
软件系统的质量取决于用来开发和改进它的过程的质量。过程是生产产品的机制。不论过程改善还是能力确定,都需要过程评估。而过程评估通常基于已提出的一些评估模型。
软件能力成熟度模型(CMM)给出了从混乱、个人的过程到成熟的规范化过程的一个框架。按照软件过程的不同成熟度划分了 5 个等级,1 级最低,5 级最高。人们可以利用该框架进行可靠且统一的评估,实现对软件过程的度量。
CMM 体现了软件工程和软件管理的优秀实践。CMM 并没有涉及使得项目成功的所有重要问题。
自从 CMM 出现以来,出现了多种基于 CMM 的模型:
- SW-CMM:为了与其他模型区分,将软件能力成熟度模型也称为 SW-CMM
- SE-CMM:系统工程 CMM
- SA-CMM:软件采购 CMM
- IPD-CMM:集成产品开发 CMM
- P-CMM:人力资源 CMM
CMMI 模型基于 过程途径 思想。CMMI 的目标是集成已有的 CMM 模型,实现一个组织的集成化 过程改善。包括:软件CMM、产品集成开发CMM、系统工程CMM
支撑软件产品/系统质量的三大要素是:受训人员、规程和方法、工具和设备
SE8.1 CMMI 模型部件
CMMI 的层次关系如下图所示
graph TB
CMMI[CMMI]
Y1(过程域1)
Y2(过程域2)
Y3(过程域3)
ZT{专用目标}
GT{共用目标}
ZP{{专用实践}}
GP{{共用实践}}
Z1([典型工作产品])
Z2([子实践])
G1([共用实践的精化])
G2([子实践])
CMMI---Y1
CMMI---Y2
CMMI---Y3
Y2---ZT
Y2---GT
ZT---ZP
ZP---Z1
ZP---Z2
GT---GP
GP---G1
GP---G2
-
过程域
过程域是一个业务域中的一束相关实践。这些实践得以实现时,就满足被认为对该过程域的改进具有重要作用的一组条件
graph LR A(过程域)
CMMI 中有 22 个过程域,分为四类:
过程域类名 包含的过程域 项目管理类 规划、监控、定量项目管理、集成项目管理、风险管理、提供方协议管理 工程类 需求开发、需求管理、技术解决方案、产品集成、确认、验证 支持类 配置管理、过程和产品质量保证、测量与分析、原因分析与解决、决策分析与解决 过程管理类 组织过程定义、组织过程性能、组织过程培训、组织过程关注、组织 过程域有自己的确定专用目的和公共目标。每个过程域还有意图陈述,简介性注释以及相关过程域
-
专用目标
一个过程域中都有一个或多个专用目标,描述该过程域必须呈现的一些独有特征。专用目标可以帮助确定一个过程域是否得以满足
graph LR A{目标}
每个专用目标和公共目标的实现,分别依赖一些实践
-
专用实践
专用实践是对于达到专用目标而言重要的活动。期望以专用实践所描述的活动,会导致达到一个过程域专用的目标
graph LR A{{实践}}
每个专用实践有自己的子实践和确定的典型工作产品,资料性部件
-
共用目标、共用实践
可用于多个过程域的目标和实践。
-
典型工作产品
专用实践产生的输出样品
-
子实践
对专用实践、共用实践的详细描述
-
共用实践的精化
为一个共用实践唯一的应用于一个过程域提供了相关的指导
-
意图描述
用来描述过程域的意图
-
简介性解释
描述该过程域中涉及的主要概念
-
相关过程域
用来描述过程域引用的相关过程域
SE8.2 CMMI 的等级
CMMI 有两种类型的等级:
- 能力等级:一种过程改善路径。能使组织 针对单一过程域 不断改善该过程域
- 成熟度等级:一种过程改善路径。能使组织 针对一组过程域 不断改善该组相关程域
# 能力等级
过程能力:遵循一个过程可达到的期望结果的程度。表示组织对一个过程域的改善,是不断改善过程域的手段
能力等级包含一个共性目标及其相关的共性实践,它们与一过程域相关联,能够改进组织同该过程域关联的过程
能力等级 | 描述 |
---|---|
能力等级 0 | 未完成级:过程不完整 |
能力等级 1 | 已执行级:实现了过程域的特定目标 |
能力等级 2 | 已管理级:建立了基本的项目管理过程。制定了必要的过程纪律,能重复早先类似项目的成功经验 |
能力等级 3 | 已定义级:按照组织到裁剪指南从组织的标准过程中裁剪出的一个已管理(能力等级 2)过程 |
能力等级 4 | 已量化管理级:使用统计和其他定量技巧控制的一个已定义(能力等级 3)过程 |
能力等级 5 | 已持续优化级:经过改进的一个量化管理过程 |
# 组织成熟度等级
成熟度等级是达到预先定义的一组过程域所有目标的一种 过程改善 等级。
每一等级包含一组过程目标。当一个软件开发组织达到其中一个目标时,则表明软件过程的一个(或几个)重要成分得到了实现,从而导致该组织软件过程能力的增长。每个成熟度等级为达到下一个等级提供了一个基础
在成熟度框架中,将能力成熟度分为五级:
成熟度等级 | 描述 |
---|---|
成熟度等级 1 | 初始级:过程是混乱的,应付式的 |
成熟度等级 2 | 已管理级:能确保过程按预定方针得到计划和执行 |
成熟度等级 3 | 已定义级:用程得到了好的描述和理解,并应用标准、规程、工具、方法来表现 |
成熟度等级 4 | 量化管理级:组织和项目为质量和过程绩效制定了量化目标并用作管理过程标准 |
成熟度等级 5 | 持续优化级:通过渐进性和革新性过程改进和技术改进来持续改进过程绩效 |
为了达到成熟度等级 2,则 2 级包含所有过程域都必须达到能力等级 2 或更高级。
为了达到成熟度等级 3,则 2 级、3 级包含所有过程域都必须达到能力等级 3 或更高级。以此类推。
SE8.3 过程域举例
# 项目规划
意图:建立并维护项目活动计划的的定义
要满足的专用目标、共用目标、所需实践:
专用目标 | 专用实践 |
---|---|
SG1:建立估算 | SP1.1:估算项目规模 SP1.2:建立工作产品和任务属性估算 SP1.3:定义项目生存期 SP1.4:确定工作量、成本估算 |
SG2:开发项目计划 | SP2.1:建立预算和进度 SP2.2:标识项目风险 SP2.3:规划数据管理 SP2.4:规划项目资源 SP2.5:规划需要的知识和技能 SP2.6:规划利益攸关方的参与 SP2.7:建立项目计划 |
SG3:获得对该计划的承诺 | SP3.1:评审该项目计划 SP3.2:调和工作和资源等级,使之一致 SP3.3:获得计划承诺 |
共用目标 | 共用实践 |
---|---|
GG2:共用目标 2 把过程制度化为一个已管理过程 对达到共用目标 1 的专用实践实施了 P-D-C-A |
GP2.1:建立组织策略 GP2.2:规划过程 GP2.3:提供资源 GP2.4:指派委任 GP2.5:培训人员 GP2.6:管理配置 GP2.7:标识相关利益方参与 GP2.8:监控过程 GP2.9:客观评估符合型 GP2.10:高层管理视角评审状态 |