CMM,全称为 能力成熟度模型(Capability Maturity Model),英文缩写为SW-CMM(Software Capability Maturity Model),是一种用于评价软件承包能力并帮助其改善软件质量的方法。它侧重于软件开发过程的管理及工程能力的提高与评估,并提供了一个阶梯式的改进框架。
CMM的核心思想是将软件开发视为一组过程,并根据统计质量管理的理论对软件开发进行过程管理,以使其满足工程化、标准化的要求,使企业能够更好地实现商业目标。该模型将软件过程改进的进化步骤组织成五个成熟度等级,分别为:
一级(初始级):
这是一个起点,任何准备按CMM体系进化的企业都自然处于这个起点上,并通过这个起点向第二级迈进。
二级(可重复级):
主要涉及建立软件项目管理控制方面的内容,包括需求管理、软件项目计划、软件项目跟踪与监控、软件子合同管理、软件质量保证和软件配置管理等。
三级(已定义级):
主要涉及项目和组织的策略,使软件组织建立起对项目中的有效计划和管理过程的内部细节,包括组织过程焦点、组织过程定义、培训程序、集成软件管理、软件产品工程、组间协调和同级评审等。
四级(已管理级):
主要的任务是为软件过程和软件产品建立一种可以理解的定量的方式,包括定量过程管理和软件质量管理。
五级(优化级):
主要涉及的内容是软件组织和项目中如何实现持续不断的过程改进问题,包括缺陷预防、技术变更管理和过程变更管理等。
CMM为软件企业的过程能力提供了一个阶梯式的改进框架,它基于过去所有软件工程过程改进的成果,吸取了以往软件工程的经验教训,提供了一个基于过程改进的框架。通过实施CMM,软件组织可以逐步提高其软件开发过程的能力,从而降低开发风险、缩短开发时间、减少开发成本、降低错误发生率,并提高产品质量。
目前,CMM已经成为国际上最流行和最实用的软件生产过程标准之一,被众多国家和国际软件产业界认可,并成为当今企业从事规模软件生产不可缺少的一项内容。