CMM是优雅的
这个完美的分段式结构在CMMI中继续采用,并且更加精致和完善。
CMM的结构主要包括如下几部分。
结构 |
说明 |
等级 | CMM划分为五个等级,描述了每个等级的组织过程特征,每个等级代表一种组织的过程能力等级;指明了组织级过程改进的整体策略(关注于那些过程域) |
关键过程域 | |
目标 | 每个过程域均有自己的目标,这些目标用于支持过程能力等级特征 |
关键实践 | 组成一个过程域的活动,从逻辑上描述了实现这个过程域目标必须或者推荐执行的活动;属于具体的操作指导 |
公共特性 | 关键实践按照公共特性被组织起来,这些公共特性反映了过程有效执行的特征 |
下面对CMM结构的各个组成部分分别进行说明。
CMM的等级划分
Crosby(克罗斯比)最早在《质量是免费》中提出了管理过程等级的划分,也是为五级。
CMM基于全面质量管理的理论,参照当时软件工程的实践将过程能力划分为五个等级,用于评估一个软件组织的过程成熟度。
每个成熟度等级说明了组织软件开发过程的特征,如下:
等级 |
等级特征 |
等级一 | |
等级二 | 有纪律的,可以重复以前项目的成功经验,实现部分的可视性 |
等级三 | 项目活动是标准和一致的,不同项目采用相同的标准,从而保持稳定的性能 |
等级四 | 对过程建立了度量,性能只在一定范围内变动,从而可以进行有效的预测 |
等级五 | 为了提高过程能力不断进行改进活动,并可以度量其结果 |
管理内容 能力等级 |
组织过程管理 |
定量管理 |
不断改进 | |
等级一:初始 | ||||
等级二:可重复 | ||||
等级三:已定义 | ||||
等级四:定量管理 | ||||
等级五:不断改进 |
类别 |
过程域 |
管理过程 |
项目管理:需求管理、软件项目策划、软件项目跟踪和监督、软件子合同管理、 集成软件管理、组间协调、定量过程管理 |
支持:软件配置管理、软件质量保证 | |
组织过程 |
组织过程焦点、组织过程定义、培训大纲、定量过程管理 |
工程过程 | 软件产品工程、同行评审、软件质量管理、缺陷预防 |
目标
每个关键过程域包括两个或者四个的目标;这些目标用于描述这个关键过程域的意义和价值,是对过程进行评价和改进的标准;在某个等级上所有关键过程域的目标集合构成了这个等级的特征;每个目标均有一组关键实践用于实现这个目标,可以说目标是关键实践的选择依据,作为评估标准具有如下作用:
目标用来确定一个机构或项目组是否有效地执行了该KPA
目标概述了该KPA包括的关键实践(KP)
在为适应关键实践而采取选择时,目标能用来确定这种适应是否有效
公共特性
五个公共特性:方针、能力、活动、测量、验证
这是企业管理的五个主要环节;一个好的管理要建立大政“方针”的明确承诺和要求、要提供必要的资源和“能力”,这样才能进行必要的“活动”,要“验证”活动被执行(类似于QA),要对活动进行“测量”保证了解活动的情况和质量(类似于QC)。
公共特性 |
中文 |
说明 |
CO | 执行承诺 | 要怎样? |
AB | 能力 | 能做到吗? |
AC | 活动 | 做什么? |
VE | 验证 | 做了没有? |
ME | 测量 | 做的怎样? |
活动:实现某个关键过程域所必需的岗位、活动(按照计划或按照规程活动)、产品等。
验证:监督管理过程的活动,一般包括高级管理者、项目经理、SQA的进度管理
测量:说明这个过程活动的状态和质量的信息。
关键实践 (KP)
在关键过程域的目标之下,有一组相关联的关键实践(Key Practices),这些关键实践是评价一个组织过程能力的某种指示器,可以基本等价的说明过程能力。
一个过程域的所有关键实践按照公共特性组织起来;这些关键实践一般情况下是达到目标所必要的;因为CMM是作为评估标准出现的,所以是“必要”的才能保证评估的标准。子实践和说明中,罗列了较多的推荐的最佳实践。
关键实践的几个特点:
描述了对有效执行和制度化该KPA起主要作用的从属活动和基础构造
因为CMM是作为评估标准出现的,所以规定做什么,而不去规定如何实现
实现该KPA的目标所允许做的实践活动
基于过程模型(CMM)的改进
CMM模型的过程改进价值
过程改进是从全面质量管理理论中派生出来的;基础是建立稳定的过程、分析过程、改进过程;目标是增进过程效率和过程质量;通过过程度量的手段(统计过程控制),来量化过程、进行控制,进行预测。
CMM的框架结构具有双重属性。一方面,它是描述性的模型,这点可以从它对那些当一个企业处于某一个特定的能力成熟度级别时所要求具备的必不可少的各种特性的描述看出。另一方面,它又是指示性的模型,这点可以从它以详细的实践活动来说明一个正在执行政府大规模软件合同的企业在处于某一个特定的能力成熟度级别时的特征的表达方式看出来。 CMM这种双重属性的目的是要有意的使它处于一个适当的抽象程度,从而避免不适当地限制一个企业如何去改进它的软件过程。CMM只描述软件过程改进要进行哪些方面的行动,要满足那些目标,但却不指定具体怎样去做。尽管软件机构可以用不同的方式实现CMM。但是要将CMM的提出的特性与软件开发中现有的过程联系起来是相当困难的。我们在使用CMM时必须牢记这个特点:CMM只指明要做什么,但不规定如何去做。因此我们可以选用我们认为最适当的办法去完成所要求做的事。
过程模型集合了领域内必要实践、补充了最佳实践,并指明了改进的先后顺序。所以可以认为CMM对过程改进提供了足够的支持和帮助
过程改进路径说明
首先分析各个等级之间的差距和区别,然后明确向更高等级改进的主要方面,并结合CMM的关键过程域就可以得到过程改进的基本路径了。
过程能力描述如下:
管理内容 能力等级 |
项目管理 |
组织过程管理 |
定量管理 |
不断改进 |
等级一:初始 | ||||
等级二:可重复 | ||||
等级三:已定义 | ||||
等级四:定量管理 | ||||
等级五:不断改进 |
路径 |
说明 |
一级到二级 | 加强项目管理,实施支持过程 |
二级到三级 | 根据项目管理的经验,建立、稳定组织标准过程 |
三级到四级 | 在标准过程基础上建立针对性的度量体系;度量、稳定过程性能 |
四级到五级 | 根据度量的结果进行不断的改进 |
广泛实施,成功应用
作为美国国防部(BOB)评估软件供应商的标准,作用显著。
后来发现标准本身所明确的要求也是企业进行改进的良好指南。
标准一旦可被确定,那么标准本身也就是进行改进的指南。
作为过程改进的指南发挥更加广泛用途,影响深远。
理解CMM需要注意以下问题
它仅指明该做的关键内容,仅描述软件过程的本质属性,而并非面面俱到。抓问题的主要方面的思想贯穿在整个CMM模型中
它是从软件过程的角度考虑问题,而并非关注软件开发工具,与框架软件生存周期无关,也与所采用的开发技术无关
CMM为改善整个企业的软件过程提供了指南,而并非针对某个具体项目。CMM并不能保证在这个过程框架下,产品开发百分之百的成功。产品的成功是多种因素的组合,例如市场等因素
CMM1.1是针对大型软件企业(500人以上)的,对小型的软件企业(50人以下)需要裁减
CMM认为过程的不断改进基于许多小的、步骤的进化而不是革命性的创新
基于CMM的过程改善投资力度大、周期长,而技术投资则可能在短期内有较快回报。单独依靠技术改进可能在短期内取得较快回报,但最终可能一无所获。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/