CMM(Capability Maturity Model for Software)是软件能力成就度模型的缩写。它指对于具体的软件过程进行明确定义、管理、测量和控制的程度,改进软件过程要求企业加强管理机制,并且长期有效地关注软件过程,建立软件过程的制度化,这样才能以越来越好的方式进行软件开发。
应美国联邦政府评估软件供应商的能力的要求,由美国卡内基—梅隆大学软件工程研究院推出的能力成熟度模型,将软件企业的生产能力划分为5个成熟度等级,等级愈高的企业,其软件过程的可见度愈好、软件过程的可控性愈高、产品性能的预见性以及软件项目的风险评估亦愈来愈准确。企业的生产能力以及产品质量也就愈来愈高,它强调企业软件生产过程的持续改进。此外CMM也不仅仅应用于软件开发组织内,它也可作为认证机构的认证工具和用户考核一个企业是否达到其所要求的能力的依据。
CMM一共有5个级别,分别是一级初始级、二级可重复级、三级已定义级、四级已管理级和五级优化级。
级别1:初始级
软件机构不能提供开发和维护软件的稳定环境,,经常做出不切合实际的承诺,危机发生时,项目一般都会脱离原有计划,回到仅有编码和调试的状态,项目经常超出预算和超期,软件项目的成功完全依赖于项目组中特别的人,当他们离开后他们对软件项目过程的影响随之消失,所以项目的开发能力的保证来自于个人能力而非组织能力。
比较典型的特征是项目的需求不断变更,软件设计不断变更,经常会发生推倒重来的事情,项目后期加班严重,最终产品的客户满意度不高等等。
在级别一中,软件过程是一个不定的过程(黑盒),由于没有很好地定义活动和实施,管理人员需要花大量时间确定项目的状态和活动的状态,需求在不被确定的情况下进入软件过程,软件产品的质量只有在发布后才能被评估出来。
级别2:可重复级
建立并实施了软件管理的规程,项目执行经过定义的、文档化的、有以往经验的、可测量的、强制的以及可改进的过程,管理级对软件项目制定了基本的软件管理和控制措施,项目负责人不断跟踪软件成本、进度,一旦出现问题能很快确定,对软件需求和开发过程中的工作产品进行基线(基线:)管理。软件项目的计划和跟踪是稳定的,并可以重复以前的成功,项目的过程处于一个项目管理系统的有效的控制之下,遵守并执行基于以前成功项目所制定的项目计划。
在级别二,因为已经建立基本的项目管理,软件项目的开发过程可以看成是一系列黑盒的串连,在项目的里程碑处具有可视性(可以知道当然的状态和进度),客户可以在里程碑处对产品进行评审。
级别3:已定义级
将组织用于开发和维护的标准过程文档化,指定了一个负责机构过程活动小组(SEPG),在组织内部进行培训,保证全体人员和负责人具有所需的知识和技能。
软件过程被严格定义,包括准备、输入、实施工作的标准和规程、验证机制、输出和完成准则的过程。
无论是软件工程活动还是管理活动,其过程都是稳定的,可重复的,软件开发的成本、进度和功能均可受到良好的控制,软件质量被跟踪。
在三级,软件过程中的任务具有可视性,管理人员和工程人员对自身的活动在一定程序进行相互交流,管理人员对可能发生的风险进行准备,客户可以随时得到关于项目准确的最新情况。
级别4:已管理级
组织对所有的项目的关键软件过程活动进行生产率和质量的测量,收集并分析这些数据,为评估项目的软件过程和产品建立定量的基础。
该级别的软件机构可以对软件过程,因为软件过程是稳定的、可测量的,所限定的数量范围内预测软件的过程趋势和工作产品的质量,当意外发生时,可明确指出变化产生的原因,当超出预计边界时,能采取相应的措施进行纠正。
在该级,管理人员可以测量项目的进度和存在的问题,而且在项目开始之前,客户就能对过程能力和风险有定量的认识。
级别5:优化级
组织强调渐进的过程改进,以预防缺陷为目的的过程中,能有效地确定软件的优势和弱势,并预先加强防范,使用描述软件过程有效性的数据完成新技术的成本和效益分析,并向该机构的软件过程提供相应的更改建议。
软件小组通过分析缺陷产生的原因对软件过程进行评估以预防已知的缺陷再次发生,并在组织内部进行宣传以防止再次发生。
级别5的特点是,过程可以不断得到改进,并且可以通过对已有软件过程进行不断改进来提高过程效率和能力,可以使用新技术和新方法进行革新,技术和过程改进可作为常规的业务活动来进行计划和管理。
在该级对过程进行更改后造成的影响能够被准确的被评估,管理人员能估计和定量跟踪更改的效果和影响。

浙公网安备 33010602011771号