CMM是CapabilityMaturityModelforSoftware的简称,中文叫“软件能力成熟度模型”,是对组织软件过程能力的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化,使企业能够更好的实现商业目标。它侧重于软件过程开发的管理及软件工程能力的改进与评估,因此CMM被用作评价软件承包商能力并帮助组织改善软件过程质量,是目前国际上最流行、最实用的一种软件生产过程标准,成为当今企业从事规模软件生产不可缺少的一项内容。CMM是由美国卡内基-梅隆大学软件工程研究所(CMUSEI)研究制定,并在全世界推广实施的一种软件评估标准,主要用于软件开发过程和软件开发能力的评估和改进。CMM把软件开发过程的成熟度由低到高分为五级,等级越高,表明该企业软件开发失败风险越低,整体开发时间越短,并能减少开发成本,降低错误发生率,提高产品质量。按照《使用软件工程》的标准,CMM将软件分为5个等级:(如图一所示)图一1.初始级(initial)工作无序,项目进行过程中常放弃当初的规划管理无章,缺乏健全的管理制度开发项目的成效不稳定,产品的性能和质量依赖于个人能力和行为。2.可重复级(Repeatable)管理制度化,建立了基本的管理制度和规程,管理工作有章可循初步实现标准化,开发工作较好的实施标准稳定课跟踪,新项目的计划和管理基于过去的实践经验,具有重复以前成功项目的环境和条件3.已定义级(Defined)开发的过程,包括技术工作和管理工作,均已实现标准化,文档化。建立了完善的培训制度和专家评审制度全部技术活动和管理活动均可稳定实施项目的质量,进度和费用均可控制。对项目进行中的过程,岗位和指责均有共同的理解。4.已管理级(Managed)产品和过程已建立了定量的质量目标。过程中活动的生产率和质量是可度量的。已建立过程数据库。已实现项目产品和过程的控制可预测过程和产品质量趋势。5.优化级(Optimizing)可集中精力改进过程,采用新技术,新方法。拥有防止出现缺陷,识别薄弱环节以及加以改进的手段可取得过程有效性的统计数据,并可据此进行分析,从而得到更佳方法。目前业界的通行标准:每千行源代码所包含的BUG数,CMM1级为11.95个,CMM2为5.52个,CMM3为2.39个,CMM4为0.92个,而CMM5则只有0.32个。在可靠性提高的同时,CMM5软件开发周期是CMM1的36%,而生产成本是CMM1的19%,平均每个软件开发人员的生产率会提高四倍。