国家重点实验室宽带网研究中心
1
软件能力成熟度模型 (CMM: Capability Maturity Model )
张 雷
网络与交换技术国家重点实验室
国家重点实验室宽带网研究中心
2
国家重点实验室宽带网研究中心
第二章 软件能力成熟度框架
本章内容
能力成熟度五个等级
成熟度等级的行为特征
理解成熟度等级
软件过程的可视性
过程能力和性能预测
跳越成熟度等级
国家重点实验室宽带网研究中心
3
国家重点实验室宽带网研究中心
能力成熟度模型概述
通常清楚存在的问
,但对哪项改进最为重
要可能意见不一致
阶段排序成五个成熟度等级,使每个改进为
下一阶段的改进打下基础
过程的不断改进基于许多小的、进化的步骤
指导软件组织,通过识别出软件质量和过程
改进至关重要的问题,来选择其过程改进策
略
国家重点实验室宽带网研究中心
4
国家重点实验室宽带网研究中心
软件能力成熟度框架(续)
图2.1 软件过程成熟度的五个级别
国家重点实验室宽带网研究中心
5
国家重点实验室宽带网研究中心
软件能力成熟度框架
初始级(Initial)
无秩序,随意甚至是混乱的
过程没有经过定义,成功依赖于个人的努力
可重复级(Repeatable)
已建立基本的项目管理过程去跟踪成本、进度
和功能性
必要的过程纪律已经就位,使具有类似应用的
项目能重复以前的成功
国家重点实验室宽带网研究中心
6
国家重点实验室宽带网研究中心
软件能力成熟度框架
已定义级(Defined)
管理活动和工程活动两方面的软件过程均已文档化、标
准化、并集成到组织的
软件过程中
所有项目均使用经批准、裁剪的标准软件过程来开发和
维护软件
已管理级(Managed)
已采集详细的有关软件过程和产品质量的度量
软件过程和产品均得到定量了解和控制
优化级(Optimizing)
利用来自过程和来自新思想、新技术的先导性试验的定
量反馈信息,使持续过程改进成为可能
国家重点实验室宽带网研究中心
7
国家重点实验室宽带网研究中心
初始级的行为特征
组织缺乏健全的管理实践
缺乏开发和维护软件的稳定环境
制定了
又不执行
反应式驱动体系会降低由良好的软件工程实践所带来的效益
危机时刻项目一般抛弃预定的规程,回复到仅作编码和测试
成功完全依赖于有一个杰出的经理及一支有经验的、战斗力
强的软件队伍
有能力的的软件经理离开项目后,一切又恢复原样了
不具有预测能力。无法对项目的进度、预算、功能以及产品
质量做出准确的预测
国家重点实验室宽带网研究中心
8
国家重点实验室宽带网研究中心
可重复级的行为特征
建立并遵守项目管理过程(跟踪成本进度和功能)
类似的项目可再次成功
制定了过程实施
(基于以往的项目开发经验)
软件项目经理对软件的费用、进度以及功能进行跟踪,及
时指出开发过程中发现的问题
开发过程中的所有工作产品均应满足已被定义软件
需求
分包软件时质量也能得到控制
此级别的特征是制度化(disciplined)
国家重点实验室宽带网研究中心
9
国家重点实验室宽带网研究中心
已定义级的行为特征
制定了组织的标准过程文件,包括软件过程以及管
理两方面的内容
企业内部有专门的人员(SEPG)负责软件过程活动
实施全组织的培训计划,保证职员和经理具有履行
其职责所必须的知识和技能
项目组根据项目的特点裁剪标准软件过程,制定自
己的软件开发过程
此级别的特征是标准化(standard)
国家重点实验室宽带网研究中心
10
国家重点实验室宽带网研究中心
已管理级的行为特征
企业在软件产品以及过程方面设有定量的质量指标
所有项目中重要的软件过程活动均被度量,这包括对软
件生产率以及质量方面的度量
在整个企业范围内收集、分析有关的数据并将其保存到
企业过程数据库中
不同的项目会根据其所定义过程的不同收集不同的数据
可量化评价项目过程和产品
用定量的指标控制所有项目中产品与过程
预测并管理开拓新领域所导致的风险
此级别的特征是可预测(predictable)
国家重点实验室宽带网研究中心
11
国家重点实验室宽带网研究中心
优化级的行为特征
工作的重点是持续的过程改进
目标是找出过程的薄弱环节,防止缺陷的发生
根据有关数据,对新技术进行投入产出比分析
通过小范围的试点,逐步推广好的软件工程方法
分析发现的缺陷,找出导致缺陷产生的原因,避
免缺陷的再次出现,并将经验教训在企业内推广
此级别的特征是持续的改进(continuously
improving)
国家重点实验室宽带网研究中心
12
国家重点实验室宽带网研究中心
理解成熟度等级—初始级
常常也能开发出能工作的产品,但可能
超出预算和进度要求
成功依赖于组织中人员的能力和杰出的
努力
在CMM 的考虑范围之外的选择、雇用、
培养、和留住人才是重要议题
国家重点实验室宽带网研究中心
13
国家重点实验室宽带网研究中心
理解成熟度等级—初始级
初始级没有任何KPA,这一点与其他各级不同。
在CMM中,只要从事软件生产和维护,该软
件组织就自动达到第一级,而再往上要经过
CMM评估。
不要把未经CMM评估与处于初始级两者混
淆,有些软件组织虽然没有经过CMM评估,
但以CMM的要求看,也许远远超出初始级的
标准。
国家重点实验室宽带网研究中心
14
国家重点实验室宽带网研究中心
理解成熟度等级—可重复级
可重复级(Repeatable),可重复什么?
可重复以往项目的成功
对于处于可重复级的软件组织来说,其能力不再
受制于个人,但是也非组织拥有,而是依赖于项
目组。
项目组从以往的类似项目中归纳成功经验和失败教训,
并以此作为指导新项目开展的依据,从而在很大程度
上,可以保证类似项目的再次成功。
国家重点实验室宽带网研究中心
15
国家重点实验室宽带网研究中心
理解成熟度等级—可重复级
随着项目规模和复杂性的增长,注意力逐渐从技
术问题转向组织体系和管理问题——过程成熟度
的焦点问题
过程能使人们工作得更为有效
将最优秀职员所取得的经验教训文档化
培育有效地执行那些过程所必须的技能(通常以培训的
方式)
通过向完成任务的人学习可以得到的不断提高
为达到等级2,管理者必须集中注意力于他们自己
的过程以便实现一个有纪律的软件过程。
国家重点实验室宽带网研究中心
16
国家重点实验室宽带网研究中心
理解成熟度等级—可重复级
项目组在其范围内,实施基本的项目管理,并对
进度、预算和产品功能进行计划和跟踪,这样,
项目的进展处于一种基本可控的状态。
通过将项目管理过程编制成文档并遵照执行,管理者
建立起领导地位
不同项目的过程可以不同
文档化的规程为这些一致的过程打下基础,在培训和
软件质量保证工作的帮助下,能在全组织范围内使这
些过程规范化
国家重点实验室宽带网研究中心
17
国家重点实验室宽带网研究中心
理解成熟度等级—可重复级
对于管理高层和客户而言,一个软件项目不再是一个
“魔术般”的黑箱子,而是一些连续的黑箱子。
对于项目组成员,这些检查点(checkpoint)对应的就
是项目的里程碑(milestone),据此建立起“设立目
标-自我检查-动态调整”的机制,从而使得问题能够被
及时发现,并及早解决。
对于项目外的人员,可以依据这些检查点实施阶段性
的检查和控制,从而提高项目成功的可能性。
国家重点实验室宽带网研究中心
18
国家重点实验室宽带网研究中心
理解成熟度等级—可重复级和已定义级
等级2 是等级3 的基础,因为在技术和组织
体系问题之前,必须先放在管理者改进其过
程的行为上。
等级2 包括6个KPA,这些KPA都属于管理类,体
现了CMM重视管理的思想。
CMM认为,如果缺乏管理的基础,工程活动(例
如软件需求分析、系统
和测试等等)的能力
再强,也无法有效的整合和发挥出来。
国家重点实验室宽带网研究中心
19
国家重点实验室宽带网研究中心
理解成熟度等级—已定义级
等级3 建立在项目管理的基础之上:对整
个软件过程加以定义、集成和文档化。
集成意味当作业间存在不匹配现象时,在软
件过程的规划阶段就能识别和处理,而不是
等到实施过程中遇到时才加以解决
等级3 上的一个挑战是:构造一些过程,这
些过程允许软件人员开展工作时仍有一定的
自由度(Humphrey 91b)
国家重点实验室宽带网研究中心
20
国家重点实验室宽带网研究中心
理解成熟度等级—已定义级
与第二级相比,已定义级不再是一些连续的黑盒,每
一项具体任务和工作都是可见的。
外部人员可以随时深入到“黑盒”中,了解项目内部的进
展情况,使得项目的及时调整和降低风险成为可能。
项目的差异已不是判断组织流程能力的主要问题,已
定义级组织的能力是属于组织的,而不是项目团队
的,更不是成员个人的。
国家重点实验室宽带网研究中心
21
国家重点实验室宽带网研究中心
理解成熟度等级—已管理级和优化级
Lessons learned
国家重点实验室宽带网研究中心
22
国家重点实验室宽带网研究中心
理解成熟度等级—已管理级和优化级
等级4 的关注焦点是过程控制
软件过程进行管理以致它能稳定运行在质量控
制带内
系统在整体上是稳定的,还有一些经常性的浪
费,测量结果中可能还有尖锋信号需要控制
改进过程中的经验教训用于规划未来的过程中
过程控制的难点在于:如何选择测量参数;如
何对这些参数收集可靠的值
国家重点实验室宽带网研究中心
23
国家重点实验室宽带网研究中心
理解成熟度等级—已管理级和优化级
软件度量还不是一项很成熟的技术,其有效性
也一直受到质疑。
事实上,对于软件业,CMM第三级之后是一
个相对未知的领域:CMM第四级(以及后面
的第五级)依据更多的是传统企业的基于统计
的流程控制理论和实践。
所以,CMM第四级的意义更多在于指明了“量
化管理”这一改进方向,而不具备第二、三级那
样强的实践指导意义。
国家重点实验室宽带网研究中心
24
国家重点实验室宽带网研究中心
理解成熟度等级—已管理级和优化级
等级5 的关注焦点是过程的不断改进
为了提高质量,变更软件过程,随后质量控制带移动。
建立新的能减少经常性浪费的性能基线
CMM 最高成熟度等级的组织,能在预测的成本和进度
的限制下生产出极端可靠的软件
随着对较高成熟度等级理解的加深,将对已有的关键
过程区域加以提炼,也可能给模型添加些其他的内容
软件过程不像传统制造业过程那样以重复问题占主导
地位。软件过程以设计问题占主导地位,而且是知识
密集型(knowledge-intensive)的活动[CrutiS
88].
国家重点实验室宽带网研究中心
25
国家重点实验室宽带网研究中心
软件过程的可视性
国家重点实验室宽带网研究中心
26
国家重点实验室宽带网研究中心
过程能力和性能预测
改进预测性
随着成熟度增长,项目的目标结果与实际结果之
间的差异小了
改进可控性
随着成熟度增长,实际结果相对预定目标结果的
偏差范围减小
改进有效性
随着组织成熟度的增加,预定目标结果得到改善
国家重点实验室宽带网研究中心
27
国家重点实验室宽带网研究中心
过程能力和性能预测
国家重点实验室宽带网研究中心
28
国家重点实验室宽带网研究中心
跳越成熟度等级
组织也可以使用高等级中所描述的过程
在等级3 以前不讨论工程过程——诸如需求分析、设计、编码和
测试,但是甚至等级l 组织都必须进行这些
等级1 或等级2 组织可以进行同行评审(等级3 的)、Pareto
分析(等级4 的)、或者引入新技术(等级5 的)
度量是等级4 的关注焦点.也是其他成熟度的必备部分
一个组织提高等级采取步骤时,建议建立软件工程过程小组,而
这是等级3 组织的属性
过程的潜力只有在建立基础之后才能得到完全的发挥
同行评审不可能完全有效,除非始终一致地实施这种评审,即使
对非常紧急的项目也是如此
成熟度等级只描述一个等级上占主导地位的问题
国家重点实验室宽带网研究中心
29
国家重点实验室宽带网研究中心
跳越成熟度等级
跳越等级违反生产规律
每个等级形成一个必要的基础,从此出发才能达到下一个等级
等级1 组织,在尚未建立可重复过程(等级2)之前,试图去实施
已定义的过程,通常不会成功,因为项目经理会被进度和成本的
压力压垮。
一个尚无已管理过程(等级4)就试图实施优化过程(等级5)的
组织,由于缺乏对过程更改所产生的后果的了解,多半会失败
过程改进工作应该把焦点集中在经营中组织的需要
具有实施较高成熟度等级的过程的能力并不表示可以跳越
成熟度等级
软件能力成熟度模型�(CMM: Capability Maturity Model )
第二章 软件能力成熟度框架
能力成熟度模型概述
软件能力成熟度框架(续)
软件能力成熟度框架
软件能力成熟度框架
初始级的行为特征
可重复级的行为特征
已定义级的行为特征
已管理级的行为特征
优化级的行为特征
理解成熟度等级—初始级
理解成熟度等级—初始级
理解成熟度等级—可重复级
理解成熟度等级—可重复级
理解成熟度等级—可重复级
理解成熟度等级—可重复级
理解成熟度等级—可重复级和已定义级
理解成熟度等级—已定义级
理解成熟度等级—已定义级
理解成熟度等级—已管理级和优化级
理解成熟度等级—已管理级和优化级
理解成熟度等级—已管理级和优化级
理解成熟度等级—已管理级和优化级
软件过程的可视性
过程能力和性能预测
过程能力和性能预测
跳越成熟度等级
跳越成熟度等级