CMM即Capability Maturity Model,中文翻译为"能力成熟度模型",是软件工程研究的一个重要里程碑。CMM的研究始于1986年11月,当时为了满足美国联邦政府评估软件供应商能力的要求,美国卡内基·梅隆大学的软件工程研究院(SEI)牵头,在Mitre公司的协助下,用不到一年的时间,于1987年9月发布了一份能力成熟度框架(Capability Maturity Framework), 以及一套成熟度问卷 (Maturity Questionnaire).
很多人认为这套问卷就代表了CMM模型,其实它只是用于探索软件过程成熟度的一个工具,真正的模型出现在四年以后。SEI总结了自1987年以来对成熟度框架和初版成熟度问卷的实战经验,并以此为基础,推出了CMM1.0 版。这个推出于1991年的 CMM1.0 集中了四年来对软件公司评估的经验以及广泛的用户反馈,在成熟度框架的基础上建立了一个可用的模型,这个模型可以更加有效地帮助软件企业建立和实施过程改进计划 。
CMM1.0 版使用两年之后,于1992年四月进行了一个研讨会,参加研讨会的有约 两百名富有经验的软件专业人员。在广泛听取了他们的反馈意见之后,SEI于 1993 年推出了CMM1.1 版。 近几年来,CMM又推出了2.0 版本,同时进入了ISO 体系,称为 ISO/IEC15504 或 SPICE. SPICE 从1995年起进入实地测试阶段,可能于2001年发布 。
CMM 致力于软件开发过程的管理及工程能力的提高与评估。该模型在美国和北美地区已得到广泛应用同时正在被越来越多的欧洲和亚洲等国家的大型信息技术企业所采纳,实际上已成为软件开发过程改进与评估的事实上的工业标准。
我们的邻居,软件大国印度,十分重视软件开发过程的管理及与其相关的理论与标准的发展。据统计,在印度的2000多家软件公司中有75家软件公司通过了ISO9000认证,60多家软件公司通过了CMM认证,其中达到CMM5级一家,4级三家,3级4家。
CMM与ISO9000的区别主要有以下几点:
1.CMM是专门针对软件产品开发及服务的,而ISO9000则有宽得多的范围。
2.CMM强调软件开发过程的成熟度,即过程的不断改进和提高,而ISO9000则仅描述可接收的质量体系的最低标准。
3.CMM3级的覆盖范围要大于ISO9000的覆盖范围
引进CMM的意义:
1. 对软件企业:
提高软件开发的管理能力:CMM提供了软件企业自我评估的方法和自我提高的手段
提高软件生产率
加强软件生产的国际竞争力
2. 对软件项目发包单位和软件用户:
提供了对软件开发商开发管理水平的评估手段,有助于软件开发项目的风险识别。