标题：CMM5
引言
信息技术的发展，使得软件规模越来越大。传统的“软件作坊”，生产往往依赖于人们急于创造财富的激动情绪，生产处于无序、混沌的一种状态，软件产品的质量不能保证，甚至中途撤消软件项目。这种生产方式已经不能满足日益增长的软件需求了。
人们认识到，软件过程是否完善是软件风险大小的决定因素。
1986年11月,美国卡内基梅隆大学的软件工程研究所(SEI)应美国联邦政府的要求，针对美国国防部对软件承包商的能力评价问题，研究"过程成熟度框架"。
它主要用于软件开发过程和软件开发能力的评价和改进。CMM自1987年开始实施认证，现已成为软件业最权威的评估认证体系。
CMM综述
2.1什么是CMM？CMM (软件能力成熟度模型)是英文 Capability Maturity Model for Software缩写，SW-CMM 的简称。
CMM 的定义是：有关软件企业或组织的软件过程进程中各个发展阶段的定义、实现、质量控制和改善的模型化描述。这个模型用于确定软件企业或组织的软件过程能力和找出软件质量及过程改进方面的最关键问题，为企业或组织的过程改进提供指南。
CMM 的核心思想是将软件开发视为一组过程，并根据统计质量管理的理论对软件开发进行过程管理，以使其满足工程化、标准化的要求，使企业能够更好地实现商业目标。它侧重于软件开发的管理及软件工程能力的提高2.2 CMM的成熟度等级CMM 提供了一个软件能力成熟度模型的框架，它将软件过程改进的进化步骤组织成五个成熟度等级，为软件过程不断改进奠定了一个循序渐进的基础。每一个成熟度等级为继续改进过程提供一个台基。第一级实际上是一个起点，任何准备按 CMM 体系进化的企业都自然处于这个起点上，并通过这个起点向第二级迈进。除第一级外，每一等级包含一组过程目标，通过实施相应的一组关键过程域来达到这一组过程目标。当这一组目标达到时，就能使软件过程的一个相应的重要成分得以稳定。每达到成熟度框架的一个等级，就建立起软件过程的一个相应的稳定成分，从而导致软件开发组织过程能力一定程度的增长。2.3 CMM的关键过程域在CMM中每个成熟度等级(第1级除外)规定了不同的关键过程域,一个软件组织如果希望达到某一个成熟度等级,就必须完全满足关键过程域所规定的不同要求,即满足每个关键过程域的目标。所谓关键过程域是指一系列相互关联的操作活动,这些活动反映了一个软件组织改进过程时必须集中精力改进的几个方面。换句话说,关键过程域标识了达到某个成熟度等级时所必须满足的条件。在 CMM 中一共有18个关键过程域,分布在2至5级中：
第 2 级(可重复级)有6个关键过程域,主要涉及建立软件项目管理控制方面的内容。
即：需求管理(RM)、软件项目计划(SPP)、软件项目跟踪与监控(SPTO)、软件子合同管理(SSM)、软件质量保证(SQA)、软件配置管理(SCM) 
第 3 级(定义级)有7个关键过程域,主要涉及项目和组织的策略,使软件组织建立起对项目中的有效计划和管理过程的内部细节。
即：组织过程焦点(OPF)、组织过程定义(OPD)、培训程序(TP)、集成软件管理(ISM)、软件产品工程(SPE)、组间协调(IC)、同级评审(PR) 
第 4 级(管理级)有2个关键过程域,主要的任务是为软件过程和软件产品建立一种可以理解的定量的方式。
即：定量过程管理(QPM)、软件质量管理(SQM) 
第 5 级(优化级)有3个关键过程域,主要涉及的内容是软件组织和项目中如何实现持续不断的过程改进问题。
即：缺陷预防(DP)、技术变更管理(TCM)、过程变更管理(PCM)
软件企业与CMM
3.1实施CMM对软件企业的意义中国正式加入WTO之后，中国软件市场已经是世界市场的一部分，中国软件企业已经直接面对国际IT企业的残酷竞争，中国企业除了要在国内占领市场之外，还应该放眼世界，走出国门，这样才能更好的生存和发展。
如何进入国际市场，成为了所有一切的前提。中国软件要赢得国际市场的信任和青睐，首先必须达到国际标准，通过国际标准的认证。现在想在软件产业化方面有所作为的企业，已经充分意识到加强国际标准认证的重要性和紧迫性。
鉴于CMM认证在国际上的声誉地位以及CMM对于软件企业能带来的实质性的质量的改进革新，以及我国政府大力支持CMM认证的政策，在企业内部实行项目管理和进行CMM认证：
3.1.1能将以前的隐性管理变为显性管理，把CMM带来的管理需求推到前台，并且确定用户在软件开发过程中的核心地位，使研发过程逐步透明化，项目进度得到更好的控制，实现全过程的质量管理。
3.1.2可以创造一个良好的软件开发环境和企业文化。软件开发人员严格遵守共同的规则规范，每一步都有明文记录，将上一次的经验运用到下一次步骤或项目中去；还能够做到分工明确，责任清楚，从而实现自身价值。
3.1.3 CMM是评价一个软件企业项目管理及研发实力的国际准则，它标志着企业走上标准化、规范化国际化的发展道路。
所以，CMM认证已成为软件企业的首选行动选择。通过CMM认证最直接的收益就是得到越来越多的国外企业的信任，也就能接到越来越多的订单。
原领导摩托罗拉中国研究中心通过CMM认证的李启煊先生曾说：“中国软件企业一定要进行CMM认证，如果我们连这点都做不到，将不但被国际软件产业价值链排除在外，不久以后甚至连中国本土的市场也会全部失去，因为CMM是目前提高软件企业竞争力的最佳途径。”3.2软件企业如何实施CMM3.2.1领导重视，全员参与。
将CMM变成习惯思维而不是应付差事。
3.2.2以CMM为软件过程改进指导书，结合企业现状作适当配置。
不要一味不变的本本理论。
3.2.3运用管理工具。
实施CMM需要的工具有：软件开发过程框架、需求管理工具、面向对象的分析设计工具、配置管理工具、变更管理工具、软件测试工具等等。
3.2.4建立软件工程过程小组(SEPG)，负责软件过程改进。
制定出规范、规程，并经过与项目组反复讨论后确定，以保证其科学有效。此外，还要提供培训和咨询服务，解答项目人员的疑问，对项目进行检查并形成各种工作报告等等。3.3软件企业实施CMM的范例3.3.1 软件企业实施CMM的过程：
软件开发组织中实施CMM评估应该按照以下两个阶段进行：
第一阶段：申请评估的软件开发组织首先应该自己组织CMM培训，强化组织成员的CMM理念，在整个组织中树立起过程管理和质量管理意识，并着重培养一批具有初步经验的CMM实施管理人员。在此基础上，选取一些合适规模的中小型项目进行试点，初步积累一些实施CMM的经验，为进行正式的CMM评估打下基础。
第二阶段：在第一阶段取得收获的基础上，聘请有实施CMM成功经验的单位作为咨询顾问，在组织内全面实施CMM。并且在咨询专家的指导下提出评估申请，并着手准备组织预评估和正式评估。
3.3.2 某软件企业实际实施CMM的范例：
在正式决定实施CMM2级的初期，企业上下都非常乐观，认为在自己的企业实施CMM是一件轻而易举的事。
实施CMM首先从培训和过程文档的编写开始。经过培训，大家都认为基本掌握了CMM的知识要点，领会了基于过程改进企业软件能力的思想。
SEPG组开始定义企业的软件过程规范和文档模板的时候，就开始暴露出一些问题。因为SEPG组成员基本上都有本职工作，过程文档的编写时间得不到保证，导致过程规范文档的编写不能保证进度。而且在文档编写中，缺乏整体控制。SEPG组在制订过程文档的同时，软件部门也在酝酿进行组织结构调整，这两件事同时在进行，分别由不同的人员在运作，相互间的沟通渠道也不顺畅。
在经过了几轮修正后，尽管过程文档还存在不少的问题，但是SEPG组认为即便再次修改也很难有较大改善。由于进度已经明显的滞后，在企业高层领导的批准下，经过对项目组成员的培训，开始了CMM的试运行工作。
部门对于项目计划比较重视，但忽视了项目策划过程。在试运行的项目中，SEPG组要求项目经理需要把项目策划过程逐一地留下证据，便于SQA人员的审核。在实际的操作过程中，前期工作留下的隐患开始逐步暴露出来。首先暴露出来的问题是项目估计规程存在一些不合理的地方。其次，由于以前基本没有科学地进行估计，也没有适用的历史数据，项目组成员在进行估计时有一种无从下手的感觉。再次，项目成员对于过程文档的理解不够深入，经常理解错误。导致项目组在项目策划过程中消耗了很长的时间，也带来了一些争执和冲突。
项目计划出来以后，和以前的项目计划比较，发现工作量增加了很多。究其原因：1.新的计划是经过详细的估计过程逐步得到的，而以前的计划则属于是“拍脑瓜”的结果。2.原计划中，管理活动考虑较少，而新的计划增加了一些可以预期的管理活动。3.由于是初次使用科学的方法进行估计，但是估计过程中的参数选择可能与企业现状不符。
高级经理在看到这个计划后，虽然也觉得新的项目策划过程更加科学，但是，迫于绩效考核的压力，不大情愿批准这样的计划，甚至不愿意把这些项目投入到CMM的试运行中。
在实施的过程中，也存在一些问题困扰着SEPG组。
例如: 企业实施CMM时都想尽快地见到实效，可是在实施初期，过程规范很难一步到位，过程规范的探索和改进会增加软件项目的工作量。实施CMM可能会在相当长的时间内，企业需要付出很多学费，而效果却需要很长的时间才能显露出来。
值得庆幸的是，上述的一些问题已经开始被SEPG组所识别，并且得到了公司各方的重视。同时，咨询公司也在积极地指导我们解决试运行过程中碰到的问题。希望在不久的将来，CMM能够得到大家的认可，主动地按照相应的过程规范来运作软件项目，并且可以顺利地通过评估。