CMM简介
(本文转载自软件工程专家网www.21cmm.com)
CMM是软件过程能力成熟度模型(Capacity Maturity Model)的简称,是卡内基-梅隆大学软件工程研究院为了满足美国联邦政府评估软件供应商能力的要求,于1986年开始研究的模型,并于1991年正式推出了CMM 1.0 版。CMM自问世以来备受关注,在一些发达国家和地区得到了广泛应用,成为衡量软件公司软件开发管理水平的重要参考因素和软件过程改进事实上的工业标准。据了解,美国、印度、日本等国家已有数十家公司通过了CMM不同等级的认证。
1986年11月,SEI应美国联邦政府的要求,在Mitre公司的协助下,于1987年9月开发了一套软件能力成熟度框架和一套软件成熟度问卷,用来评估软件供应商的能力。这就是最早用于探索软件过程成熟度的一个工具。
四年以后,也就是991年,SEI自己总结了CMM成熟度框架和初版成熟度问卷的实践经验,并以此为基础推出民用CMM1.0版。
CMM1.0版合用两年之后,1992年4月,SEI举行了CMM一个的研讨会,参加研讨会的有大约200名富有经验的软件专家。SEI在广泛听取他们的意见之后,又于1993年推出 CMM1.1版。这也是目前世界上比较流行和通用的CMM版本。
十几年来,此项工作一直在不断进行。按照SEI原来的计划,CMM的改进版本2.0应该在1997年11月完成,然后在取得版本2.0得实践反馈意见之后,在1999年完成准CMM2.0版本。但是,美国国防部办公室要求SEI推迟发布CMM2.0版本,而要先完成一个更为紧迫得项目CMMI。
CMMI(Capability Maturity Model Integration)即能力成熟度模型集成,这也是美国国防部的一个设想,他们想把现在所有的以及将被发展出来的各种能力成熟度模型,集成到一个框架中去。这个框架有两个功能,第一,软件获取方法的改革;第二,建立一种从集成产品与过程发展的角度出发、包含健全的系统开发原则的过程改进。
随着人们对CMM研究的不断深入,其他学科也结合本系统的特点,陆续推出了自己的CMM模型。例如,人力资源能力成熟度模型、系统工程能力成熟度模型等等。为了以示区别,国内外很多资料把CMM叫做SW-CMM。
软件过程成熟度的提高是一个渐进的过程,需要一个长远的、可持续发展的过程作为保证。为建立一个面向过程持续提高的基础和文化,有些软件企业可能要花费很大的精力和时间。但是这种努力对任何一个软件企业来说都是非常必要的。
CMM目前代表着软件发展的一种思路,一种提高软件过程能力的途径。尽管它存在着某些不足。例如,成熟级别、关键过程域、公共属性和关键实践还需要在软件行业进一步深入地讨论和修订,但它确实为软件行业的发展提供了一个良好的框架,而且是浓度软件过程能力提高的有用工具。
增强我国软件企业的竞争力,提高国产软件的水平是国人的共同愿望,但目前我国软件水平,尤其是软件开发能力和软件生产能力还很差,这也是不争的事实。那么,如何提高我国软件的开发和生产能力,从而提高软件整体水平?软件企业实施CMM也许不失为一条有效的途径。
一个企业的软件能力更取决于该企业的过程能力,特别是在软件开发和生产中的成熟度。其过程能力越是成熟,该企业的软件生产能力就越有保证。目前,我国已有一些软件企业正在尝试实施CMM。
当然,CMM不是万能的,并不一定对所有的软件企业都适合,实施CMM的企业也有失败的例子。我们希望通过本专栏能使更多的企业了解CMM,尽快找到适合本企业的发展之路,从而提高中国软件企业的竞争力。