CMM概括
一、CMM的基本框架
1.CMM的设计思想
任何软件开发和软件企业的发展都离不开软件过程,而软件过程必然要经历一个从不成熟到成熟,从不完善到完善的发展过程。它不是一朝一夕就能成功的,需要持续不断的对软件过程进行改进,才能取得最终的成效。CMM就是根据这一指导思想设计出来的。为此,模型必需满足如下四点对企业的指导作用:
1)为了正确和有序地引导软件过程活动的开展,要建立一个能够有效地描述和表示的软件过程的改进框架,使其能够对各阶段软件过程的任务和管理起指导作用。
2)以产品质量的概念和软件工程的经验教训为基础,指导企业控制开发、维护软件的生产过程和如何制定一套与之相适应的软件工程及管理体系。
3)指导软件企业通过判断自身当前的过程成熟度,针对软件质量和软件过程提高中最为关键的问题,来选择过程的提高策略。
4)引导企业将注意力放在具体的和经过努力可实现的目标上,并努力通过模型中提供的措施和手段去实现这些目标。
2.CMM的分级标准
1) 建立分级标准的作用
CMM模型描述和分析了软件过程能力的发展程度,确立了一个软件过程成熟程度的分级标准,如图2.1示。其作用:
①一方面软件组织利用它可以评估自己当前所处的位置——过程成熟程度,并以此提出严格的软件质量标准和改进过程的方法和策略,通过不断的努力达到更高的成熟度。
②另一方面该标准也可作为用户对软件企业的一种评价标准,使之在选择软件开发商时不再是盲目的和无把握的。
2)CMM的分级结构及其过程描述
①初始级:软件过程的特点是无秩序或说无定规的,有时甚至是混乱的。软件过程定义几乎处于无章法、无步骤可循的状态,软件产品所取得的成功往往依赖于极个别人的努力和机遇。
②可重复级:已建立了基本的项目管理过程,可用于对成本、进度和功能特性进行跟踪。对类似的应用项目,有章可循并能重复以往所取得的成功。
③已定义级:用于管理的和工程的软件过程均已文档化、标准化,并形成了整个软件组织的标准软件过程。全部项目均采用与实际情况相吻合的、适当修改后的标准软件过程来进行操作。
④已管理级:软件过程和产品质量有详细的度量标准。软件过程和产品质量得到了定量的认识和控制。
⑤优化级:通过对来自过程、新概念和新技术等方面的各种有用信息的定量分析,能够不断地、持续地对促进过程进行改进。
除第一级外,每一级都设定了一组目标,如果达到了这组目标,则表明达到了这个成熟级别,自然可以向上一更为成熟的高一级别迈进。CMM体系不主张跨级别的进化,因为从第二级开始,每一个低级别的实现均是更高级别实现的基础。
3.CMM各级的主要特性
前面已经反复提到,CMM标准共分五个等级,从第一级到第五级分别为:初始级、可重复级、定义级、管理级和优化级,从低到高,软件开发生产的计划精度越来越高,每单位工程的生产周期越来越短,每单位工程的成本也越来越低。需要提出的是,任何一个成熟度级别的关键过程域集都是本级描述的关键过程域集和所有下级的关键过程域集的并集。如3级的关键过程域就应有13个不同的域,其中7个是3级自己包含的,6个属于2级成熟度,而4级应有15个域。
这五个级别具体内容包括:
第一级:初始级(The Initial Level)
初始级的软件机构缺乏对软件过程的有效管理,其软件项目的成功来源于个人英雄主义而非机构行为,因此它不是可重复的。
第二级:可重复级(The Repeatable Level)
概述:
第二级软件机构的主要特点是:项目计划和跟踪的稳定性,项目过程的可控性和以往成功的可重复性。更具体的说:
机构建立了管理软件项目的策略和实现这些策略的过程。
新项目的计划和管理基于类似项目的经验。
过程能力的增强基于以各个项目为基础的有纪律的基本过程管理。
不同的项目可有不同的过程,而对机构的要求是具有指导项目建立适当管理过程的策略。
每个项目都确定了基本的软件管理控制,包括:
基于前面项目的经验和新项目特点,做出现实的项目承诺(如预算、交付期、软件质量等);
软件项目管理者要跟踪开支、日程、软件功能;
满足承诺的过程中的出现的问题要及时发现,妥善解决;
定义了软件项目标准,且机构确保其被遵守。
构成:
本级的关键过程领域(KPA)包括:
需求管理(Requirements Management)
客户的需求是软件项目的基础。软件需求管理的目的是在客户和软件项目之间达成对客户需求的一致理解。
软件项目计划(Software Project Planning)
为软件工程和项目管理建立一个合理的计划。
软件项目的跟踪和监督(Software Project Tacking and Oversight)
使管理者对实际的软件项目进展过程有足够的了解,以在项目效能偏离计划太多是采取有效措施。
软件子合同管理(Software Subcontract Management)
选择合格的分包商,并有效管理之。
软件质量保证(Software Quality Assurance)
对软件项目过程及其间生产的各个产品进行监管以保证最终软件质量。
软件配置管理(Software Configuration Management)
在整个软件生命周期里建立并维护软件项目的工作产品的完整性。
第三级:已定义级(The Defined Level)
概述
第三级的主要特征在于软件过程已被提升成标准化过程,从而更加具有稳定性、可重复性和可控性。处于第三级的企业具有如下一些特征:
机构采用标准的软件过程,软件工程和管理活动被集成为一个有机的整体。标准化的目的是使之可使管理者和技术人员有效工作。
有一组人员专门负责机构的软件过程,并且在机构中有培训计划来确保stuff和manager有知识和技能完成所赋予的角色。
标准的软件过程结合项目的特点即形成定义的软件过程,它包括一组集成的定义良好的软件工程和管理过程。
一个定义良好的过程包括就绪准则、输入、完成工作过程、验证机制、输出和完成准则。
在已建立的产品线上cost, schedule, functionality 均可控制,软件质量被加以跟踪。
过程能力体现在在机构范围内对一个定义的软件过程活动、角色和责任的共同理解。
构成 :
第三级主要处理以下的KPA:
机构过程关注(Organization Process Focus)
确立机构对于改进机构的软件过程能力的软件过程活动的责任。
机构过程定义(Organization Process Definition)
开发和维护一组有用的软件过程assets和提供一个用于定义定量过程管理的有意义的数据的基础
培训计划(Training Program)
开发个体的技能和知识以使他们能够更加有效的完成他们的角色
集成软件管理(Integrated Software Management)
基于业务环境和项目的技术需要,从机构的标准软件过程和相关的过程assets经过剪裁,将软件工程和管理活动集成为一个有机的定义的软件过程。
软件产品工程(Software Product Engineering)
一致地完成定义良好的工程过程。它描述了项目的技术活动,如需求分析,设计,编码和测试。
组间协调(Intergroup Coordination)
确立软件工程组主动介入其它工程组以便项目能更好满足客户要求的手段
同行评审(Peer Reviews)
早而且有效的排除软件工作产品中的缺陷。它可通过inspection,structured walkthrough等手段进行。
概括来说,第三级企业的重点是Engineering processes and organizational support。
第四级:已管理级(The Managed Level)
概述:
第四级的软件机构中软件过程和软件产品都有定量的目标,并被定量地管理,因而其软件过程能力是可预测的,其生产的软件产品是高质量的。具体地说,第四季的机构具有如下特征:
软件过程和产品有定量质量目标。
重要的软件过程活动均配有生产率和质量度量;
数据库被用来收集和分析定义软件过程的数据;
项目的软件过程和质量的评价有定量的基础;
项目的产品和过程控制具有可预测性。
缩小过程效能落在可接受的定量界限内的偏差;
可区分过程效能的有效偏差和随机偏差;
面向新领域的风险是可知并被仔细管理;
构成:
本级的关键过程领域包括:
定量过程管理(Quantitative Process Management)
定量地控制软件项目的过程效能。
软件质量管理(Software Quality Management)
定量了解项目软件产品的质量,并达到既定的质量目标。
第五级:The Optimizing Level
概述
概括来说,第五级的主要特点是技术和过程改进被作为常规的业务活动加以计划和管理。处于第五级的企业具有如下一些特征:
机构集中于连续的过程改进
具有标识弱点和增强过程的手段。
采用过程数据分析使用新技术的代价效益并提出改进。
项目队伍能够分析出错原因并防止其再次出现。
防止浪费是第五级的重点。
改进的途径在于已有过程的增量改进和使用新技术和新方法的革新
构成:
缺陷预防(Defect Prevention)
识别出错原因,防止错误再现(通过改变定义的软件过程)
技术变更管理(Technology Change Management)
识别有益的新技术(工具、方法和过程),并按有序的方式将其转移至机构之中。其重点在于在变化的世界中有效的完成革新。
过程变更管理(Process Change Management)
连续改进机构所采用的软件过程,以改进软件质量,提高生产率和减少产品开发时间
概括来说,第五级企业的重点是连续的过程改进。
4.CMM内部结构和特性简述
上面提到了CMM把软件开发组织的能力成熟度分为五个等级。除了第1级外,其他每一级均由若干关键过程域组成,每个关键过程域中规定了5种公共特性:执行约定、执行能力、实施活动、度量和验证的标准。换句话说,每一个关键过程域由若干关键实践活动所描绘,这些实践活动以5个公共特性进行归类,这些公共特性是关键实践描述的对象、也是基础和依据。CMM给每个关键过程规定了一些具体目标,按5个公共特性归类的关键惯例是按该关键过程的具体目标选择和确定的。如果恰当地处理了某个关键过程涉及的全部关键惯例,这个关键过程的各项目标就达到了,也就表明该关键过程实现了。这种成熟度分级的优点在于,这些级别明确而清楚地反映了过程改进活动的轻重缓急和先后次序。(关于关键过程域、关键实践、公共特性等概念后面会有详细解释)
二、CMM与软件过程可视性
1.软件过程的概念
软件过程是人们用于开发和维护软件及其相关产品的一系列活动、方法、实践和革新。其外部视图如P23页图2.2所示。
2.软件过程可视性的重要性与级别
软件工程和CMM都强调软件过程可视性的极为重要性,软件工程强调用软件开发方法来解决软件生产中的质量与效率的问题,而CMM则追求软件组织成熟度的不断提高,组织管理的不断进化来使软件质量、生产效率和生产周期得到明显的改善,二者不仅目标相同,而且都强调开发的可视性来支持开发管理。因此,软件过程可视性的提高,就成为提高软件开发组织成熟级别的关键。
软件过程的成熟度是可视的,在CMM中分成五级,反映了其不断改进和逐步完善的过程。
在初始级中,整个软件过程形同一团黑云,对管理人员和用户而言,只能看到项目的要求和结果,不能看到项目的进展状况和项目的软件过程,是否满足要求要到交付时刻才能知晓。
过度到可重复级,软件过程的可视性有所好转,开发分阶段进行,用一系列的黑盒表示。用户需求和阶段产品在一定程度上可以控制。管理人员可在若干关键点设置管理活动和检查质量并作出反应,用户也可通过关键点了解项目进展情况。
发展到已定义级,黑盒的内部结构逐步显示出来,组织拥有标准软件过程并用于各软件项目中。因此,各管理人员明确自己在过程中的管理责任和任务,并能预见可能的风险,为此作出一定的准备。由于已定义级的过程提供了很好的可视性,项目外的用户也能快速地得到较为准确的情况。
在管理级,管理者可以根据客观的度量,预见过程的经费支出和其他情况,定量地、有目标地做出决定。用户也能定量地理解过程的能力和所存在的风险。整个软件过程可以定量地指导和控制。
进化到优化级,人们可以很清楚地看到软件过程的内部结构。为了提高生产率和质量,组织上已经形成了有效地、不断地、系统地改进方法,并且制度化。对现有过程的认识,不仅仅考虑到过程的可能变化所产生的影响,而是能自觉地识别那些不够有效和可能出错的活动,加以改进与替换,达到更进一步的效果。管理人员有能力评估和定量跟踪变化的影响和效果,用户与开发组织关系良好。
三、CMM的阶梯式进化框架
1.进化框架
CMM为软件企业的过程能力提供了一个阶梯式进化框架,它采用分层的方式来解释它的组成部分,以适应不同成熟度企业的需要,如图2.4示。在第二至第五个成熟等级中,每个等级包含一个内部结构的概念,关于内部结构详细描述将在下面CMM内部结构的一栏中进行。
1)初始级 初始级的软件过程是混乱无序的,对过程几乎没有定义,项目的执行是随意的甚至是混乱的,项目的成功完全依赖个人的才能和经验,没有组织、标准、规程的保证,质量评判没有客观基准,管理方式属于反应式的。也许,有些企业制定了一些软件工程规范,但往往也是执行得不彻底。纵使有较好的执行,但若这些规范未能覆盖基本的关键过程要求,且执行没有政策和资源等方面的保证时,那么它仍然被视为初始级。初始级是混沌的过程。
2)可重复级 根据多年的经验和教训,人们总结出软件开发的首要问题不是技术问题而是管理问题。因此,第二级的焦点集中在软件管理过程上。一个可管理的过程则是一个可重复的过程,一个可重复的过程则能逐渐进化和成熟。第二级的管理过程包括了需求管理、项目管理、质量管理、配置管理和子合同管理五个方面。其中项目管理分为计划过程和跟踪与监控过程两个过程。通过实施这些过程,从管理角度可以看到一个按计划执行的且阶段可控的软件开发过程。
实现二级(可重复级)已经不简单了。对一个软件企业来说,达到二级的要求就基本上进入了规模开发,开始跳出作坊式的开发模式,能把一个项目的经验或好的方法重现在下一个项目中,基本具备了一个现代化软件企业的基本架构和方法,具备了承接外包项目的能力。可重复级是经过训练的软件过程,其等级标志是分工合同化,主要工作内容为管理各种开发文档。可重复级的软件过程能力可归结为:规则化的或说定规的。
从二级一直往上走,是不间断的改进过程。效率不断在提高,时间控制更严格,品质更有保证,管理更有序。可以逐渐具备承接跨地区、跨部门的大型项目的实力。
3)已定义级 已定义级建立了组织的标准软件过程且已文档化,它包括了软件工程和管理过程的所有方面,集成为一个标准一致的有机整体,提供给各个项目剪裁使用。
在第二级仅定义了管理的基本过程,而没有定义执行的步骤标准。在第三级则要求制定企业范围的工程化标准,而且无论是管理还是工程开发都需要一套文档化的标准,并将这些标准集成到企业软件开发标准过程中去。所有开发的项目均需依据这个标准过程,剪裁出项目适宜的过程,并执行这些过程。过程的剪裁不是随意的,在使用前需经过企业有关人员的批准。定义级是标准一致的软件过程,等级标志是流程程序化,主要工作内容是管理软件开发过程。
4)已管理级 在已管理级,软件产品和软件过程均建立了量化的指标和质量的指标,评价软件过程的产品(最终产品和中间产品)和质量,是企业评价计划的一部分。
第四级的管理是量化的管理,是可量化级,其软件过程具有精确的定义、连贯的评价方法。所有过程需建立相应的度量方式,所有产品的质量(包括工作产品和提交给用户的产品)需有明确的度量指标。这些度量应是详尽的,且可用于理解和控制软件过程和产品,量化控制将使软件开发真正变成为一种工业生产活动。管理级是可预测的软件过程,等级标志是记录表格化,主要工作内容是度量软件开发过程和产品质量。第四级软件产品是高质量的。
5)优化级 第五级的目标是达到一个持续改善的境界。所谓持续改善是指可根据过程执行的反馈信息来改善下一步的执行过程,即优化执行步骤。软件过程的不断改进成为整个企业的主要着眼点和前进的动力。如果一个企业达到了这一级,那么表明该企业能够根据实际的项目性质、技术等因素,不断调整软件生产过程以求达到最佳。优化级是可持续改进的软件过程,等级标志是资源最优化,主要工作内容是提高软件企业资源的利用水平。
从效果而言,在上述不同阶段,软件开发 生产的成熟程度给软件企业带来了完全不同的效果。第一阶段到第五个阶段,软件开发生产的计划精度越来越高,每单位工程的生产周期越来越短,每单位工程的成本越来越低。
2.成熟度级别进化
每一级向上一级迈进的过程中都有其特定的改进计划,具体情况如下。(各级的过程特征及其改进方向详见P27~P31相关表)
1)初始级的改进方向是:①建立项目过程管理,实施规范化管理,保障项目的承诺;②进行需求管理方面的工作,建立用户与软件项目之间的沟通,使项目真正反映用户的要求;③建立各种软件项目计划,如软件开发计划、软件质量保证计划、软件配置管理计划、软件测试计划、风险管理计划和过程改进计划等;④积极开展软件质量保证活动(SQA)。
2)可重复级的改进方向是:①不再按项目制定软件过程,而是总结各种项目的成功经验,使之规则化,把具体经验归纳为全组织的标准软件过程。把改进组织的整体软件过程能力的软件过程活动,作为软件开发组织的责任;②确定全组织的标准软件过程,把软件工程及管理活动集成到一个稳固确定的软件过程中,从而可以跨项目改进软件过程效果,也可以作为软件过程剪裁的基础;③建立软件工程过程小组(SPEG)长期承担评估与调整软件过程的任务,以适应未来软件项目的要求;④积累数据,建立组织的软件过程库及软件过程相关的文档;⑤加强培训。
3)已定义级的改进方向是:①着手软件过程的定量分析,以达到定量地控制软件项目过程的效果;②通过软件的质量管理达到软件的质量目标。
4)已管理级的改进方向是:①防范缺陷,不仅在发现了问题时能及时改进,而且应采取特定行动防止将来出现这类缺陷;②主动进行技术改革管理、标识、选择和评价新技术,使有效的新技术能在开发组织中实施;③进行过程变更管理,定义过程改进的目的,经常不断地进行过程改进。
5)优化级的改进目方向是:①保持持续不断的软件过程改进。CMM5级是优化级,之所以称之为优化级不是因为它比第4级更高,它强调的是一个持续不断的优化过程。如果你在某一个阶段停顿下来,那么不进则退,你就有可能会掉下去。
3.成熟度举例——软件成熟度企业与不成熟企业的一个侧影
大家都见过或听说过某些软件企业人才跳槽后的故事吧。的确存在这样的事情,这些软件企业当出现一些关键的开发人员跳槽离开后,进行中的项目便瘫痪了下来,甚至前功尽弃,已运行中的项目也难以继续维护,给企业造成很大的损失。这就是不成熟企业的一个特征。
而在CMM框架中,运用2级中的一个基本软件工程(KPA)就可以使员工自觉而规范地管理软件生产过程中所有的资源、阶段性产品、产品源代码、文件以及最终生成的产品。严格遵循这套管理方法,程序员写完一段代码,经过一定测试之后,一旦提交到某个公共地方时,这个东西就不是你的了,已经成为项目小组或者是整个企业的了,而且跟随着完善的文档控制。如果你想对它进行任何修改,都要按照规范的程序把它从公共区域提取出来。规范的过程控制,将软件企业由于人员流动带来的风险降到了最低,同时还促使他们养成良好的职业素养。
四、CMM的内部结构
1.内部结构组成
CMM为软件过程能力的提高提供了一条改进的途径。CMM由5个成熟度等级组成,每个成熟度等级有着各自的功能。除第一级外,CMM的每一级按完全相同的内部结构构成的,不同的成熟度等级反映了软件组织的软件过程能力和该组织可能实现预期结果的程度。
在CMM中,除第1级外,每个成熟度等级都标志了该级别的软件组织所具有的过程能力。每个成熟度等级(第1级除外)规定了若干不同的关键过程域,一个软件组织如果希望达到某一个成熟度级别,就必须完全满足关键过程域所规定的要求,即满足关键过程域的目标。每一个关键过程域都含有属于5种类别(公共特性)中的若干关键实践,通过实现这些关键实践来达到关键过程域的目标。
2.各构成要素描述
1)关键过程域(KPA):是指在有关基础设施的保证支撑下的一系列相互关联的操作活动,这些活动反映了一个软件组织改进软件过程时必须集中力量改进的几个方面。可以简单地说,关键过程域是互相关联的若干软件实践活动和有关基础设施的一个集合。换句话说,关键过程区域标识了达到某个成熟度等级时所必须满足的条件。在CMM中一共有18个关键过程域,分布在第二至五级中,每个关键过程域规定了一个(组)必须满足的目标,并由五个公共特性归类的若干关键实践活动描述实现之。
2)目标:是指某个关键过程域中的关键实践,它表示每一个关键过程域的范围、边界和意图。目标被用来判断一个组织或项目是否有效地实现了某个特定的关键过程区域所规定的内容,即目标确定了关键过程区域的界限、范围、内容和关键实践。
每一个KPA都规定了一组目标,若这组目标在每一个项目都能实现,则说明企业满足了该KPA的要求。若满足了一个级别的所有KPA要求,则表明达到了这个级别所要求的能力。例如,可重复级中需求管理关键过程域的目标是:在软件需求上建立、维护同用户的协议;软件项目计划关键过程域的目标则为:建立一个为开展和管理软件工程的合理设计;又如,软件项目跟踪和监控KPA的目标是:提供对实际进程的可见和监督,以便及时采取纠正措施。
3)公共特性:表征各种实践活动的分类,一共分为五类。这些特性(有时又称属性)有效地指出了一个关键过程域的实现范围、结构要求和实施内容。具体是:
①执行约定(commitment to perform):又称实施保证,实施保证是企业为了建立和实施相应KPA所必须采取的活动,这些活动主要包括制定企业范围的政策和高层管理的责任。
②执行能力(ability to perform):执行能力是企业实施KPA的前提条件。企业必须采取措施,在满足了这些条件后,才有可能执行KPA的执行活动。实施能力一般包括资源保证、人员培训等内容。
③实施活动(actives performed):实施活动也叫执行活动,执行过程描述了执行KPA所需求的必要角色、任务和步骤。在五个公共属性中,执行活动是唯一一项由项目来执行相关的属性,其余四个属性则涉及企业CMM能力基础设施的建立。执行活动一般包括计划、执行的任务、任务执行的跟踪以及改进措施等。
④度量和分析(measurement and analysis):度量分析描述了过程的度量和度量分析要求。典型的度量和度量分析的要求是确定执行活动的状态和执行活动的有效性。
⑤验证实施(verifying implementation):验证实施是验证执行活动是否与所建立的过程一致。实施验证涉及到管理的评审和审计以及质量保证活动。实施验证活动可通过管理和软件质量保证进行核查。
4)关键实践(KP):是指关键过程域中的一些主要实践活动。具体就是指为达到关键过程目标,建立起那些对软件过程活动起关键作用的方针、规程、措施、标准、活动以及相关基础设施的实践。每个关键过程域由若干关键实践组成,通过这些关键实践来达到关键过程域的目标。一般情况下,关键实践描述了应该“做什么”,但并不规定“如何做”去达到这些目标。有关关键实践的举例:
例如:可重复级需求管理关键过程域中,记录和管理系统需求的策略的实践活动,就是一个关键实践(执行约定);建立分析责任和分配系统需求这一实践活动,也是该过程域的一个关键实践(执行能力);还有,分配需求、提供资源和资金以及开展需求培训(执行能力),也都是该过程域的一些关键实践活动。当然,该过程域还有度量需求管理活动状态(度量与分析)……
在一些文献中使用了“关键惯例”、“优秀实践”等词。关键惯例与关键实践在概念上基本相同,只是“关键惯例”似乎更加突出了使用以往成功经验和成果之意。“优秀实践”也大概如此。
上面提到了CMM把软件开发组织的能力成熟度分为5个等级。除了第1级外,其他每一级由几个关键过程域组成。每一个关键过程域都由上述分为5种公共特性的实践活动予以描述。关键过程域的分类详见图2.7。它列出了四个成熟度等级的共18个关键过程域。
3.功能综述
从上面所示的结构模型可以看出,CMM包括两大部分“软件能力成熟度模型”和“能力成熟度模型的关键惯例”。“软件能力成熟度模型”主要是描述此模型的结构,并且给出该模型的基本构件的定义。“能力成熟度模型的关键惯例”详细描述了每个“关键过程方面”涉及的“关键惯例”。这里“关键过程方面”是指一组相关联的活动,也就是关键过程域;每个软件能力成熟度等级包含若干个对该成熟度等级至关重要的过程方面,它们的实施对达到该成熟度等级的目标起到保证作用。这些过程域就称为该成熟度等级的关键过程域。反之,非关键过程域是指对达到相应软件过程成熟度等级的目标不起关键作用。可以归纳为:关键过程域是互相关联的若干软件实践活动和有关基础设施的一个集合。而“关键惯例”是指使关键过程方面得以有效实现和制度化的作用最大的基础设施和活动,对关键过程的实践起关键作用的方针、规程、措施、标准、活动以及相关基础设施的建立。关键实践一般只描述“做什么”而不强制规定“如何做”。各个关键惯例按每个关键过程方面的五个“公共特性”【执行约定(对执行该过程的承诺),执行能力(执行该过程的能力),实施活动(该过程中要执行的活动),度量和分析(对该过程执行情况的度量和分析),验证实施(证实所执行的活动符合该过程)】归类,逐一详细描述。当作到了某个关键过程的全部关键惯例就认为实现了该关键过程,如果实现了某成熟度级别以及比其低级所含的全部关键过程就认为达到了该级。
CMM总结:五层结构图
我们看到,在第五级上,技术和过程的改进像普通商业活动一样有计划、有管理地进行。由于组织不断的致力于改进过程的能力,所以软件开发组织的能力可持续改进。这种改进不仅表现在对存在的软件过程逐步改进,不表现在采用新技术和新方法方面的革新。
画一个图吧:(CMM的五层结构图)
-----------------
/ 优 化 级 /
/ (5) /
-----------------
↑
| 不断改进的过程
|
-----------------
/ 可 管 理 级 /
/ (4) /
-----------------
↑
| 能预见的过程
|
-----------------
/ 确 定 级 /
/ (3) /
-----------------
↑
| 标准一致的过程
|
-----------------
/ 可 重 复 级 /
/ (2) /
-----------------
↑
| 有纪律的过程
|
-----------------
/ 初 始 级 /
/ (1) /
-----------------