CMMI软件能力成熟度模型集成
CMMI业务介绍
(1)背景介绍: CMM是“软件能力成熟度模型”的英文简写,该模型由美国卡内基-梅隆大学的软件工程研究所(简称SEI)受美国国防部委托,于1991年研究制定,初始的主要目的是为了评价美国国防部的软件合同承包组织的能力,后因为在软件企业应用CMM模型实施过程改进取得较大的成功,所以在全世界范围内被广泛使用。
CMMI是SEI于2000年发布的CMM的新版本,目前CMMI已经发展到1.2版本,并且只接受1.2版本的评估结果。CMMI目前包含了三个模型,分别是CMMI-DEV、CMMI-SVC以及CMMI-ACQ模CMMI-DEV最新版本是SEI于2006年8月份发布的CMMI for Development v1.2版本。该版本集成了软件工程、硬件工程和系统工程三大学科领域。                
CMMI-DEV模型按照阶段式表达方式将成熟度分为五个等级,每个等级包含相应的过程域.     
CMMI-SVC该模型SEI于2009年2月份发布,最新版本是CMMI for Services v1.2版本。该模型可以应用于IT、医疗卫生、教育等各类服务领域。
该模型采用了CMMI的基础架构,在此基础上增加了服务相关的特有过程域。对于已经实施CMMI- DEV 的企业,提供了快速、便捷的理解和导入机制。
CMMI-SVC模型按照阶段式表达方式也分成五个等级,每个等级包含相应的过程域.
CMMI-ACQ该模型SEI于2007年11月份发布,最新版本是CMMI for Acquisition v1.2版本。该模型基于CMMI模型体系架构,整合了CMMI采购模型、软件采购模型以及政府及产业采购的最佳实践等,用于指导采购方进行采购管理。该模型适用于政府、电信、金融等领域的采购管理。
SPCA“软件过程及能力成熟度评估”(简称SPCA)是软件过程能力评估和软件能力成熟度评估的统称,是中国信息产业部会同国家认证认可监督委员会在充分研究了国际软件评估体制,特别是美国卡内基-梅隆大学SEI所建立的软件能力成熟度模型CMMI,并考虑了国内软件产业实际情况之后所建立的软件评估体系。
SPCA依据的评估标准是信息产业部《SJ/T 11234-2001 软件过程能力评估模型》和《SJ/T 11235-2001 软件能力成熟度模型》两个标准,这两个标准是在深入研究了CMM、CMMI、ISO/IEC TR15504、ISO9000、TL 9000以及其他有关的资料和文件以及国外企业实施CMM的实际情况后,结合国内企业的实际情况,以CMMI作为主要参考文件最终形成的,已于2001年5月1日发布实施。
SJ/T 11234《软件过程能力评估模型》针对软件企业对自身软件过程能力进行内部改进的需要,而SJ/T 111235《软件能力成熟度模型》则针对软件企业综合能力第二方或第三方评估的需求。两个模型分别适应于不同的目的。
SPCA评估遵循《软件过程及能力成熟度评估指南》,该指南由国家认监委和信息产业部2002年8月共同发布,作为利用SJ/T11234或SJ/T11235实施评估的操作指南。评估过程由经过培训的专业队伍以评估参考模型作为确定过程的强项和弱项的基础而对一个或多个过程进行检查。从不同用途考虑,评估分为内部过程改进评估和顾客选择评价两种。
(2)标准特点: CMMI/SPCA的思想来源于已有多年历史的产品质量管理和全面质量管理。Watts Humphrey和Ron Radice在IBM公司将全面质量管理的思想应用于软件工程过程,收到了很大的成效。SEI的软件能力成熟度框架就是在以Humphrey为主的软件专家实践经验的基础上发展而来的。软件能力成熟度模型中融合了全面质量管理的思想,以不断进化的层次反映了软件过程定量控制中项目管理和项目工程的基本原则。CMMI/SPCA所依据的想法是只要不断地对企业的工程过程的基础结构和实践进行管理和改进,就可以克服软硬件生产中的困难,增强开发制造能力,从而能按时地、不超预算地制造出高质量的软件产品。
CMMI模型分成连续式和阶段式两种表达方式.
每个过程中设定了通用目标和特殊目标,每个目标下由若干实践组成。这些实践是根据各个组织长期开发实践活动的成功经验逐渐总结、提炼形成的,被认为是具有共性的最佳实践。
 (3)好处/作用:实施CMMI/SPCA,可以帮助IT企业对软件/系统工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件、硬件和系统集成项目,从而提高企业的管理水平,增强企业的国际竞争能力。实施CMMI/SPCA对企业的好处主要体现为:
第一、能保证软件开发的质量与进度,能对“杂乱无章、无序管理”的项目开发过程进行规范。
第二、有利于成本控制。因为质量有所保证,浪费在修改、解决客户的抱怨方面的成本会降低很多。现在绝大多数情况是缺少规范制度,只是求快。项目完成后,要花很多时间修修补补,费用很容易失控。
第三、有助于提高软件开发者的职业素养。每一个具体参与其中的员工,无论是项目经理,还是工程师,甚至一些高层管理人的做事方法逐渐变得标准化、规范化。
第四、能够解决人员流动所带来的问题。公司通过过程改进,建立了财富库以共享经验,而不是单纯依靠某些人员。
第五、有利于提升公司和员工绩效管理水平,以持续改进效益。通过度量和分析开发过程和产品,建立公司的效率指标。
等等。
我国政府一直重视软件和IT产业的规范和发展,强调提高我国软件开发和软件产品质量的重要性。国务院 “18号文件” 《鼓励软件产业和集成电路产业发展的若干政策》明确提出鼓励软件出口型企业软件能力成熟度认证,其认证费用通过中央外贸发展基金适当予以支持。目前各省市高新区、软件园或信息产业主管部门大都有对通过CMMI/SPCA评估的企业给予资金奖励的制度。特别是SPCA评估得到了中国政府的直接支持,反映了政府大力支持和推动我国软件业发展的政策导向。可以相信对于通过SPCA评估的企业将得到更多得政策支持。
 (4)适用范围: CMMI/SPCA评估为软件开发/外包、硬件、系统集成(IT)和服务企业提供了业界最佳实践,有利于这些企业提升管理水平,增强竞争能力。
根据企业的业务及产品情况。一般可按如下原则选择:
1、国内软件开发企业:CMMI-DEV软件工程领域、SPCA
2、软件外包企业(特别是承包美国软件项目):CMMI-DEV软件工程领域
3、系统集成企业:CMMI-DEV系统工程领域
4、硬件企业:CMMI-DEV硬件工程领域
5、IT服务企业:CMMI-SVC
6、在国际市场竞争中显示研发和服务能力:CMMI-DEV和CMMI-SVC
7、内部软件过程改进:SPCA,因为评估成本较低
8、承担较多政府项目和国内项目:SPCA,有利于享受信息产业政策
 (5)基本条件:
(a) 评估机构及人员要求:开展CMMI评估必须是SEI授权的合作机构,评估活动由SEI授权的主任评估师进行,并遵守SEI发布的评估需求(ARC)和评估方法(SCAMPI);开展SPCA评估必须得到信息产业部和国家认证认可委员会的批准,评估过程遵守国家发布的SPCA评估方法。
(b) 对于CMMI评估,一般要求企业的项目或产品活动应能覆盖所申请CMMI等级的要求;而对于SPCA评估,一般要求为:企业成立5年以上,软件开发人员20人以上,评估项目和人员覆盖率达到70%。
(6)基本流程: CMMI/SPCA实施的基本流程如下:基础培训-->差距分析-->文件评审-->项目试点-->制度化-->预评估-->最终评估。
其中制度化过程的时间一般不低于6个月。
 (7)基本步骤:企业实施CMMI/SPCA的基本步骤为:
CMMI培训→成立SEPG、SQA组→建立和完善文件体系→试点实施→推广并制度化→参加预评估→参加、准备最终评估→持续改进。