1.概念:
CMM是Capability Maturity Model for Software的简称,中文叫“软件能力成熟度模型”,是对组织软件过程能力的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化,使企业能够更好的实现商业目标。它侧重于软件过程开发的管理及软件工程能力的改进与评估,因此CMM被用作评价软件承包商能力并帮助组织改善软件过程质量,是目前国际上最流行、最实用的一种软件生产过程标准,成为当今企业从事规模软件生产不可缺少的一项内容。
CMM是由美国卡内基-梅隆大学软件工程研究所(CMU SEI)研究制定,并在全世界推广实施的一种软件评估标准,主要用于软件开发过程和软件开发能力的评估和改进。CMM把软件开发过程的成熟度由低到高分为五级,等级越高,表明该企业软件开发失败风险越低,整体开发时间越短,并能减少开发成本,降低错误发生率,提高产品质量。
2.标准划分— 摘自《使用软件工程》
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%,平均每个软件开发人员的生产率会提高四倍。