CMM描述了五个级别的软件过程成熟度(初始级可重复级已定义级已管理级优化级 ,成熟度反映了软件过程能力(Software Process Capability)的大小,任何一个软件机构的软件过程必定属于其中某个级别。除了第一级以外,每级成熟度又由若干关键过程域(Key Process Area)构成。五个成熟度及其关键过程领域如图所示:
图中的每个关键过程域分别针对软件过程的某一方面,具体描述了某级成熟度下软件过程在该方面所应达到的的一组目标和实现这些目标的一组关键活动(Key Practice)。所有关键活动被划分为五类,分别为完成该组目标所需的承诺(Commitment to Perform)、前提条件(Ability to Perform)、实际动作(Activities performed)、度量分析(Measurement and Analysis)以及验证(Verifying Implementation)。上述五方面被称为五个Common Features。
CMM的结构如图所示:
需要提出的是,任何一个成熟度级别的关键过程域集都是本级描述的关键过程域集和所有下级的关键过程域集的并集。如3级的关键过程域就应有13个不同的域,其中7个是3级自己包含的,6个属于2级成熟度,而4级应有15个域。
第一级:初始级( The Initial Level )
初始级的软件机构缺乏对软件过程的有效管理,其软件项目的成功来源于个人英雄主义而非机构行为,因此它不是可重复的。
第二级:可重复级( The Repeatable Level )
概述:
第二级软件机构的主要特点是:项目计划和跟踪的稳定性,项目过程的可控性和以往成功的可重复性。更具体的说:
- 机构建立了管理软件项目的策略和实现这些策略的过程。
- 新项目的计划和管理基于类似项目的经验。
- 过程能力的增强基于以各个项目为基础的有纪律的基本过程管理。
- 不同的项目可有不同的过程,而对机构的要求是具有指导项目建立适当管理过程的策略。
- 每个项目都确定了基本的软件管理控制,包括:
- 基于前面项目的经验和新项目特点,做出现实的项目承诺(如预算、交付期、软件质量等);
- 软件项目管理者要跟踪开支、日程、软件功能;
- 满足承诺的过程中的出现的问题要及时发现,妥善解决;
- 定义了软件项目标准,且机构确保其被遵守。
构成:
本级的关键过程领域(KPA)包括:
客户的需求是软件项目的基础。软件需求管理的目的是在客户和软件项目之间达成对客户需求的一致理解。
为软件工程和项目管理建立一个合理的计划。
使管理者对实际的软件项目进展过程有足够的了解,以在项目效能偏离计划太多是采取有效措施。
选择合格的分包商,并有效管理之。
对软件项目过程及其间生产的各个产品进行监管以保证最终软件质量。
在整个软件生命周期里建立并维护软件项目的工作产品的完整性。
第三级:已定义级( The Defined Level )
概述
第三级的主要特征在于软件过程已被提升成标准化过程,从而更加具有稳定性、可重复性和可控性。处于第三级的企业具有如下一些特征:
- 机构采用标准的软件过程,软件工程和管理活动被集成为一个有机的整体。标准化的目的是使之可使管理者和技术人员有效工作。
- 有一组人员专门负责机构的软件过程,并且在机构中有培训计划来确保 stuff 和 manager 有知识和技能完成所赋予的角色。
- 标准的软件过程结合项目的特点即形成定义的软件过程,它包括一组集成的定义良好的软件工程和管理过程。
- 一个定义良好的过程包括就绪准则、输入、完成工作过程、验证机制、输出和完成准则。
- 在已建立的产品线上 cost, schedule, functionality 均可控制,软件质量被加以跟踪。
- 过程能力体现在在机构范围内对一个定义的软件过程活动、角色和责任的共同理解。
构成
第三级主要处理以下的 KPA:
确立机构对于改进机构的软件过程能力的软件过程活动的责任。
开发和维护一组有用的软件过程assets和提供一个用于定义定量过程管理的有意义的数据的基础
开发个体的技能和知识以使他们能够更加有效的完成他们的角色
基于业务环境和项目的技术需要,从机构的标准软件过程和相关的过程assets经过剪裁,将软件工程和管理活动集成为一个有机的定义的软件过程。
一致地完成定义良好的工程过程。它描述了项目的技术活动,如需求分析,设计,编码和测试。
确立软件工程组主动介入其它工程组以便项目能更好满足客户要求的手段
早而且有效的排除软件工作产品中的缺陷。它可通过 inspection,structured walkthrough等手段进行。
概括来说,第三级企业的重点是 Engineering processes and organizational support 。
第四级:已管理级( The Managed Level )
概述:
第四级的软件机构中软件过程和软件产品都有定量的目标,并被定量地管理,因而其软件过程能力是可预测的,其生产的软件产品是高质量的。具体地说,第四季的机构具有如下特征:
- 软件过程和产品有定量质量目标。
- 重要的软件过程活动均配有生产率和质量度量;
- 数据库被用来收集和分析定义软件过程的数据;
- 项目的软件过程和质量的评价有定量的基础;
- 项目的产品和过程控制具有可预测性。
- 缩小过程效能落在可接受的定量界限内的偏差;
- 可区分过程效能的有效偏差和随机偏差;
- 面向新领域的风险是可知并被仔细管理;
构成 :
本级的关键过程领域包括:
定量地控制软件项目的过程效能。
定量了解项目软件产品的质量,并达到既定的质量目标。
第五级: The Optimizing Level
概述
概括来说,第五级的主要特点是技术和过程改进被作为常规的业务活动加以计划和管理。处于第五级的企业具有如下一些特征:
- 机构集中于连续的过程改进
- 具有标识弱点和增强过程的手段。
- 采用过程数据分析使用新技术的代价效益并提出改进。
- 项目队伍能够分析出错原因并防止其再次出现。
- 防止浪费是第五级的重点。
- 改进的途径在于已有过程的增量改进和使用新技术和新方法的革新
构成
识别出错原因,防止错误再现 (通过改变定义的软件过程)
识别有益的新技术 (工具、方法和过程),并按有序的方式将其转移至机构之中。其重点在于在变化的世界中有效的完成革新。
连续改进机构所采用的软件过程,以改进软件质量,提高生产率和减少产品开发时间
概括来说,第五级企业的重点是连续的过程改进 。
纵观整个 CMM,软件企业提高自身成熟度的历程是一个从无序到有序,从特殊到一般,从定性到定量,最后不断自我完善的过程。