源码时代软件测试干货来了 | 堪称史上最全的CMM/CMMI能力成熟度模型集成简介
将各种能力成熟度模型(即:Software CMM、Systems Eng-CMM、People CMM和Acquisition CMM)整合到同一架构中去,由此建立起包括软件工程、系统工程和软件采购等在内的诸模型的集成,以解决除软件开发以外的软件系统工程和软件采购工作中的迫切需求。
CMMI的评估方式:
自我评估:用于本企业领导层评价公司自身的软件能力。
主动评估:使本企业领导层评价公司自身的软件能力,向外宣布自己企业的软件能力
CMMI的评估类型:
软件组织的关于具体的软件过程能力的评估。
软件组织整体软件能力的评估(软件能力成熟度等级评估)。
CMMI的基本思想
解决软件项目过程改进难度增大问题
实现软件工程的并行与多学科组合
实现过程改进的最佳效益
CMM对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。 分为5个等级:
第一级 基本级, Initial
第二级 重复级, Repeatable
第三级 确定级, Defined
第四级 管理级, Managed
第五级 优化级, Optimizing
CMM核心:将软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控及研究,以使其更加科学化、标准化,使企业能够更好。
CMMI(CMM Integration)
能力等级 |
特点 |
关键过程区域(KPA) |
基本级 (Initial) |
软件过程是混乱无序的,对过程几乎没有定义,成功依靠的是个人的才能和经验,管理方式属于反应式 |
|
重复级 (Repeatable) |
建立了基本的项目管理来跟踪进度,费用和功能特征,制定了必要的项目管理,能够利用以前类似的项目应用取得成功 |
需求管理,项目计划,项目跟踪和监控,软件子合同管理,软件配置管理,软件质量保障 |
确定级 (Defined) |
已经将软件管理和过程文档化、标准化,同时综合成该组织的标准软件过程,所有的软件开发都使用该标准软件过程 |
组织过程定义,组织过程焦点,培训大纲,软件集成管理,软件产品工程,组织协调,专家评审 |
管理级 (Managed) |
收集软件过程和产品质量的详细度量,对软件过程和产品质量有定量的理解和控制 |
定量的软件过程管理和产品质量管理 |
优化级 (Optimizing) |
软件过程的量化反馈和新的思想和技术促进过程的不断改进 |
缺陷预防,过程变更管理和技术变更管理 |
CMM级别与质量的关系
每千行缺陷数(bugs/KLOC) |
CMM级别 |
软件准时提交的百分比 |
每人每月生产的程序行数 |
软件需要返工的百分比 |
平均软件失效时间(MTTF) |
>10 |
初始级 |
<=50 |
1Z |
>=45 |
2~60 mins. |
<10 |
重复级 |
90 |
1.5 Z |
20 |
1~160 hours |
<1 |
确定级 |
99 |
2.5 Z |
10 |
不确定 |
< 0.1 |
管理级 |
降低开发时间到1/2 |
5 Z |
5 |
不确定 |
< 0.01 |
优化级 |
降低开发时间到1/4 |
10 Z |
<= 2 |
近似完全可靠 |
CMM的用途
评估组用来识别组织中的强处和弱点;
评价组用来识别选择不同的业务承包商的风险和监督合同;
管理者用来了解其组织的能力,并了解为了提高其能力成熟度而进行软件过程改进所需要进行的活动;
技术人员和过程改进组用来作为指南,指导他们在组织中定义和改进软件过程。
CMM内部结构
为了在软件过程改进的实践中真正体现CMM模型的操作性,CMM给出了每一个成熟度级的详细结构规定。每个成熟度等级从其内部结构上可细分成许多组成部分。除了初始级外,每一个成熟度级别的结构可以被描述为自顶向下的进一步划分。
CMM关键过程区域
每个关键过程区域表示了当一个软件组织改进软件过程时必须集中力量改进的几个方面。每个KPA进一步用非形式的成分来说明,又被分为五个方面,称为:公共特性。这些公共特性总结性地标定了方法,实际上规范了关键实践环节,当完成了这些实践,就能达到KPA目标。
CMM应用
CMM是标准。
CMM是框架。
CMM是参考模型。
CMM可以应用到多方面。
CMM软件过程评估
软件过程评估和软件能力评价步骤
CMM是一种达到企业目标的工具,但基于CMM的过程改进既不便宜也不迅速。