CMM是Capability Maturity Model for Software (软件能力成熟度模型)的英文简称,是由专业组织--美国卡内基-梅隆大学的软件工程研究所(SEI)开发的软件成熟度模型,是目前国际上最流行、最实用的软件生产过程标准和软件企业成熟度等级认证标准。
CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化,使企业能够更好的实现商业目标。它侧重于软件过程开发的管理及软件工程能力的改进与评估,因此CMM被用作评价软件承包商的能力并帮助组织改善软件过程质量,协助软件开发机构建立严格、标准的软件开发过程,最及时、高效地组织软件开发队伍进行软件开发,所以CMM成为当今企业从事规模软件生产不可缺少的一项内容。
在形式上,CMM把软件开发机构按照不同开发水平划分为5个级别:Initial(初始化)、Repeatable(可重复)、 Defined(已定义 )、Managed(已管理)和 Optimizing(优化中)。
Initial级:软件过程没有任何标准和规章,完全是手工作坊的方式,软件产品的质量具有不可预测性。
Repeatable级:软件制作已基本形成固定过程,并引入了简单的过程管理。软件企业可依据一定的标准重复利用类似的软件产品,以前的开发经验成为开发新产品能否成功的极为重要制约因素。
Defined级:软件产品开发和维护的基本过程被记录下来成为文档,软件工程和过程管理也紧密的结合起来,形成了"标准软件过程"。
Managed级:针对软件过程的每一个阶段都进行了监控、取样和定量分析,形成了一个关于软件制作和维护流程的数据库并不断更新,以保证软件过程保持较高的质量。
Optimizing级:整个软件开发机构的重心转移到优化软件过程。基于Managed级取得的关于软件过程的数据,软件开发机构进行成本收益综合分析,明确软件开发中出现的问题和错误,并找到方法杜绝错误的再次发生。
CMM提供了一个框架,将软件过程改进的进化步骤组织成以上5个成熟等级,为过程不断改进奠定了循序渐进的基础。这5个成熟度等级定义了一个有序的尺度,用来测量一个组织的软件过程成熟和评价其软件过程能力,这些等级还能帮助组织自己对其改进工作排出优先次序。每一个级别包含若干关键域,评估师为申请企业做评估主要考察这些关键域及其实践的执行情况。 |