本人在某上市软件公司担任SQA和SEPG,进行基于CMM的过程改进。近期学习CMMI,
对CMMI有了一些了解。总结如下,希望大家指正。如果有意见请发邮件到:
1、CMMI基本介绍
1.1、起因和缘由
工程环境和过程更加复杂,独立的CMM面对更加复杂化的要求不能适应了。
针对分段工作的弊端(重复返工),工作更加集成化,这样需要集成化的专业知识,也需要集成化的过程。
多种模型的衍生,造成了理解和培训上的困难。
同时多种衍生模型的实践提供了必要的信息和信心,可以建立这样集成的能力程度模型
1.2、目标
成本效益:减少理解和培训上的成本;
改进模型:统一模型利于统筹进行分析和计划;
避免封闭的过程改进:过程按照学科单独进行,没有顾及整体效益;
交流:跨越部门学科的过程带来更多的交流,从而利于紧密的、有效的、精简的、继承的过程,对过程改进有全局效益
统一模型的过程改进(不仅仅是软件过程能力)提供更大的适应性和扩充性,减少冲突和冗余
1.3、CMMI框架结构的基本思想
CMMI的框架结构基于对对过程和过程改进理论的深刻认识
公共性的基础:
项目管理和过程管理适用于任何学科
如果进行适当的抽象,则工程过程可以直接应用于任何工程形式
支持过程对不同学科提供不同的实现,但是目标和实践可以保持不变
模型结构思路:
根据信息的不同作用进行分类,划分为十二种构件
整个模型由此十二种构件组成,并且具备一定的结构
每个构件由一个或者多个资料组成
整个模型汇编数了千个小的资料
模型的不同表示法,就是通过构件的不同结构来体现
模型结构的优点:
模型由数千个小的资料组成,不同表示法共同使用这些资料
这样来确保两种表示法的“等价性”
模型通过十二种构件来组织,建立了一个公共的框架容纳未来的内容
所有小资料均归属于不同得构件,模型的改进可以通过小资料的改进来实现
2、CMMI的构件
CMMI建立了一个自动、可扩展的框架,其中可以放入模型集成构件、培训资料、评估资料,确保在已定义规则下可以将更多学科加入该框架。
公共性是完全可以理解的,过程管理和项目管理可以应用于人和学科
CMMI具有多个模型,每个模型通过汇编数千个小资料(构件),这些资料存放在数据库中便于统一引用。
2.1、内容分类
CMMI模型中,用术语“Required”(必需的)、“Expected”(期望的)、“Informative”(提供信息的)对所有内容(构件)进行分类。
分类 |
说明 |
“Required”(必需的) |
最重要的部分,确认必要条件,是进行评估的基础 |
“Expected”(期望的)
|
在某些情况下,有些组织部一定按照这个执行;但这些资料主要是一些最佳实践,在过程改进中起主要作用 |
“Informative”(提供信息的) |
模型中最多的部分,可用于说明和培训 |
“提供信息的”包括十种资料
资料名称 |
说明 |
目的 |
概括了过程域的特定目标 |
介绍性说明 |
通常包括了该过程域的重要性、范围、最佳实践、与其他过程域的相互关系;是针对过程域的说明 |
引用 |
用于实现跨过程域的说明,建立了一种类似于超级连接的方式;说明了过程域的相关性 |
名字 |
CMMI中每个“必需的”和“期望的”构件都有一个名字 |
实践/目标对应表 |
将每个实践对应到目标 |
注释 |
件的说明 |
典型工作产品 |
当执行一个“实践”时,通常是会输出工作产品;列举一些例子 |
子实践 |
子实践提供了对实践含义和活动的分解,以及用途的详细说明 |
学科扩充 |
是用于说明特定实践的,按照学科进行分别描述;CMMI是独立于学科的,具有通用性; |
公共实践的详细描述 |
是用于说明公共实践的,即公共实践在不同过程域中的解释;
CMMI的公共实践是独立于过程域的,具有通用性;但是通用性可能带来过分广泛的解释说明或者过于抽象,不利于具体应用和评估;为了解决这个问题,CMMI结构提供了“公共实践的详细描述”这个补充说明,针对具体过程域对公共实践进行更加细致的、适用本过程域的说明,这样兼顾了体系的抽象和具体的可理解性
|
2.2、构件之间的关系
序号 |
说明 |
1 |
唯一“需要的”CMMI模型构件是“目标” |
2 |
可用于多个过程域的“目标”称为“公共目标”,前缀为GG |
3 |
只用于一个过程域的“目标”称为“特定目标”,前缀为SG |
4 |
唯一“期望的”CMMI模型构件是“实践” |
5 |
可用于多个过程域的“实践”称为“公共实践”,前缀为GP |
6 |
只用于一个过程域的“实践”称为“特定实践”,前缀为SP |
7 |
CMMI模型中,每个“实践”都指向一个“目标” |
8 |
但是,“实践”不是“需要的”构件,一个达到了相应等级的组织,可能并不完全实现了所有的“实践”,而是采用一些其他的替代实践达到了“目标”。为了保证CMMI的灵活性,采用了这个思路;这在其他模型中是没有的;这个思路还有待继续考察 |
3、过程域分析
CMMI中有24个过程域,这些过程域的选择有其自身必然的缘由。分析如下:
过程域选择思路分析:
所有企业最关注的内部管理活动是“生产活动”(工程过程)
项目管理作为基础性的管理内容必须包括
作为支持、控制“生产活动”和“项目管理”的组织级的过程必须提供
模型应当涉及“生产活动”的各个部分
模型应当涉及项目管理的基本内容
对于关键性的组织过程必须提供
3.1、过程管理
成熟度等级 |
过程域 |
依赖 |
ML5 |
组织级改革和实施(OID) |
其中OPF和OPD是OPP的基础, OPP是OID的基础 |
ML4 |
组织过程性能(OPP) |
ML3 |
组织过程焦点(OPF)、组织过程定义(OPD) |
3.2、项目管理
SE/SW/IPPD的项目管理包括一个附加过程域“集成化群组IT”和一个“集成化项目管理”过程域的扩充版本“集成化项目管理(IPPD)”。
成熟度等级 |
过程域 |
依赖 |
ML4 |
项目定量管理(QPM) |
PP和PMC是IPM的基础,IPM是QPM的基础 |
ML3 |
集成化项目管理(IPM) |
ML2 |
项目计划(PP)、项目监督和控制(PMC) |
3.3、工程过程
在项目管理和过程管理两个分组中,有些过程域相互依赖,并以其他过程域为先决条件。工程过程分组中,缺乏这样的依赖关系。相反,它假定所有过程域以一种集成化的方式一起运作。在CMMI中,工程过程域将软件和系统工程过程集成到一个“面向产品”的过程域集。这个过程域集是基本的业务过程,其它所有的过程均是为这个过程域集提供支持和改善的。
注意,在这里CMMI对生产过程进行了抽象,而不是面向具体学科的,要避免烟囱式的过程改进。该过程域集可以递归的应用到所有层次的产品开发上。注意“产品构件”指的是“产品”的构造块。
3.4、支持过程
支持过程提供了其他CMMI中过程域使用的基本过程。
它与能力等级中的共性实践相关,这些共性实践,在这个过程域中被扩展为过程。可以这样理解,实践是一种对活动得描述,过程也是一种对活动得描述,只是过程对活动的描述更加详细。支持过程主要是针对项目管理内容的。
支持过程和共性实践的对应表
过程域 |
共性实践 |
配置管理CM
|
“GP2.6管理配置”紧密相关 |
过程和产品质量保证PQA |
“GP2.9客观的评价依赖性”紧密相关 |
度量和分析MA |
“GP2.2计划过程”来定义度量目的,“GP2.8监督和控制过程”包括度量性能 |
因果分析和解决方案CAR |
与 “GP5.2纠正问题的公共原因”紧密相关 |
决策分析和解决方案DAR |
可用于多个过程域的“实践”称为“公共实践”,前缀为GP |
4、CMMI的表示法
4.1、共性内容和特定内容说明
概念说明
概念 |
包括内容 |
共性内容
|
包括CMMI中的共性目标,以及相应的共性实践 |
特定内容 |
包括CMMI中的特定目标,以及相应的特定实践 |
共性内容是属于项目管理和过程管理的,由于项目管理和过程管理普遍适用于任何学科、任何过程;所以具有通用性,适合于所有过程域。
特定内容是指某个过程域专有的内容,其中的特定目标说明了这个过程域的目的,特定实践是这个过程域必要的活动。
共性目标和共性实践是基于能力维表示的一组目标和内容,体现了过程改进的内涵。
两种表示法的区别在于,对共性内容和特定内容的组织形式。
4.2、 表示法的介绍
两种表示法的基本区别
表示法 |
说明 |
连续式
|
如果集中注意于单个过程域的改进,则可选择连续式;
“能力等级”
单个过程域来考虑 |
阶段式
|
用来定义整个组织的过程成熟度,强调过程域集合共同的改进,则可选择阶段式;
“成熟度等级”
将组织作为整体来考虑 |
CMMI模型为每个学科的选择都提供了两种表示法,用于保留原来的财富。
阶段式模型为组织级的过程改进提供了预定义的路线,将路线图描绘为“成熟度等级”的一系列阶段。每个成熟度等级都指出了一个组织应当在何处进行组织级的改进,通过达到相应的目标表示完成相应的阶段。
连续式在完成改善的次序上缺乏专门的指导。实践以支持单个过程域的改善和增长的方式来组织。大多数和改进相关的实践都是共性的,他们是单个过程域的外部形式,并可应用于所有过程域。通过在这些过程域中实现共性实践,来改善这个过程域的能力。在连续式模型中没有专门陈述目标,而是更加强调实践。组织根据连续式评估的结果是一张《能力特征图》,用以描述组织各个过程域的能力等级。组织可以通过定义各个过程域的能力等级来确定改进的目标,即确定一张《能力特征图》为改进目标。
4.3、连续式表示法
连续式的能力等级
等级编号
|
等级
|
说明
|
0 |
未执行、未完成
|
对某个过程域,它的特定实践(必要活动)被执行,基本满足了特定目标(此过程域的基本目的) |
1 |
已执行 |
|
2 |
已管理 |
按照项目方式对“特定实践”组成的过程进行管理 |
3 |
已定义 |
按照组织统一的过程执行“特定实践”,并进行管理 |
4 |
定量管理 |
在过程域中引入度量,并利用度量进行管理 |
5 |
优化的 |
不断改进这个过程域的过程性能 |
连续式的分组
分组名称 |
过程域 |
过程管理
|
组织过程焦点OPF
组织过程定义OPD
组织过程性能OPP
组织级改革和实施OID
组织级培训OT |
项目管理 |
项目计划PP
项目监督和控制PMC
集成化项目管理IPM
项目定量管理QPM
供应商合同管理SAM
风险管理RSKM
集成化项目管理IPM(IPPD)
集成化群组IT(IPPD附加的) |
工程过程 |
需求管理REQM
需求开发RD
技术解决方案TS
产品集成PI
验证VER
确认VAL |
支持过程 |
配置管理CM
过程和产品质量保证PPQA
度量和分析MA
因果分析和解决方案CAR
决策分析和解决翻案DAR |
连续式模型通过能力等级描述过程能力,能力等级包括了共性目标,以及相关的共性实践,这些在过程域中被添加到特定目标和特定实践中,较高能力等级,包括所有下级的能力等级的目标和实践,类似于阶段式,见下图:
在CMMI的标准的连续式表示法中,因为公共内容在所有过程域中一致,所以对每个过程域只是描述了它的特定内容。
共性目标
能力等级 |
共性目标 |
CL0
|
无目标 |
CL1 |
GG1:过程通过转换可标示的输入产品,来产生可标示的输出产品;支持过程域的特定目标实现
|
CL2 |
GG2:过程作为已管理的过程被制度化 |
CL3 |
GG3:过程作为已定义的过程被制度化 |
CL4 |
GG4:过程作为已定量管理的过程被制度化
|
CL5 |
GG5:过程作为要优化的过程被制度化 |
一个能力等级只有一个共性目标,共性目标强调了制度化方面的得逐步升级,伴随着制度化的升级,过程的控制能力、标准化能力更加强化,作业效率更加可以改进。
能力等级的分析
能力等级 |
共性目标 |
CL0
|
无目标 |
CL1 |
每个过程具有自身特殊的活动(特定实践),这些活动确定了在这个过程域中实现目标的步骤,这些步骤是在这个过程域特殊的
|
CL2 |
按照项目管理的要求进行管理,通常针对一个项目的管理 |
CL3 |
形成了定义的、组织级的过程 |
CL4 |
对定义的、组织级过程进行了度量 |
CL5 |
针对这个过程的持续改进 |
能力等级1(GG1)的共性实践
名字 |
共性实践描述 |
GP1.1
标示工作范围 |
标示要执行的工作范围和产生的工作产品、提供的服务,并与执行该过程的人交流信息 |
GP1.2
执行基本实践 |
执行过程的基本实践来开发产品或提供服务,以便完成过程域的特定目标
|
能力等级2(GG2)的共性实践
名字 |
共性实践描述 |
GP2.1
建立组织级政策 |
为计划和执行过程而建立和维护组织级政策
|
GP2.2
计划过程 |
建立和维护需求和目的,并计划要执行的过程
|
GP2.3
提供资源 |
提供充足的资源 |
GP2.4
分配任务 |
分配任务和权限
|
GP2.5
培训人员 |
必要时培训执行过程以及支持过程的人
|
GP2.6
管理配置 |
将过程制定的工作产品置于配置管理的适当级别下 |
GP2.7
标示和包含项目相关人员 |
按计划标示和包含项目相关人员 |
GP2.8
监督和控制过程 |
监督和控制违反计划的过程并采取适当的纠正措施
|
GP2.9
客观的评价依赖性 |
根据需求、目标和标准,客观评价过程执行情况、工作产品、服务,并就不一致情况进行处理
|
GP2.10
高层管理评价状态 |
高层管理评价过程的活动、状态和结果,并解决问题 |
能力等级3(GG3)的共性实践
名字 |
共性实践描述 |
GP3.1
建立已定义的过程 |
建立和维护一个已定义的过程描述
|
GP3.2
获取改善信息 |
获取从计划和执行过程中得到的工作产品、度量、度量结果和改进信息,以便支持组织的过程和过程财富进一步的使用和改善
|
能力等级4(GG4)的共性实践
名字 |
共性实践描述 |
GP4.1
建立质量目的 |
鉴于客户需要和业务目的为过程建立和维护关于质量和过程性能的定量目标
|
GP4.2
稳定子过程性能 |
稳定过程的一个或多个子过程的性能,已确定它达到定量的过程性能目标
|
能力等级5(GG5)的共性实践
名字 |
共性实践描述 |
GP5.1
保证过程持续改善 |
在实现组织的相关业务目标时,要确保过程的连续改善
|
GP5.2
纠正问题的公共原因 |
标示和纠正根本原因 |
4.4、阶段式表示法
阶段式的等级划分
等级编号
|
等级
|
说明
|
1 |
初始 |
|
2 |
已管理 |
已管理 建立了项目管理的基础按照项目方式对“特定实践”组成的过程进行管理 |
3 |
已定义 |
已定义 建立了组织统一的过程 |
4 |
量化管理 |
对组织的过程建立性能基线、定量管理项目 |
5 |
优化 |
不断改进组织过程 |
在阶段式模型中,每个过程域包括相应阶段合适的共性目标和共性实践,例如对于一个ML2的过程域,它的内容包括“特定内容”和CL2的共性内容;对一个ML3的过程域,它的内容包括
“特定内容”和CL2、CL3的共性内容。注意ML4、ML5没有这种关系。组织上如下图:
在CMMI标准的阶段表示法中,对所有公共实践按照公共特性进行组织分类,这个不是重点。
阶段式的过程域分组
成熟度等级 |
包括的过程域 |
GP2.1
建立组织级政策 |
为计划和执行过程而建立和维护组织级政策
|
GP2.2
计划过程 |
建立和维护需求和目的,并计划要执行的过程
|
GP2.3
提供资源 |
提供充足的资源 |
GP2.4
分配任务 |
分配任务和权限
|
GP2.5
培训人员 |
必要时培训执行过程以及支持过程的人
|
GP2.6
管理配置 |
将过程制定的工作产品置于配置管理的适当级别下 |
GP2.7
标示和包含项目相关人员 |
按计划标示和包含项目相关人员 |
GP2.8
监督和控制过程 |
监督和控制违反计划的过程并采取适当的纠正措施
|
GP2.9
客观的评价依赖性 |
根据需求、目标和标准,客观评价过程执行情况、工作产品、服务,并就不一致情况进行处理
|
GP2.10
高层管理评价状态 |
高层管理评价过程的活动、状态和结果,并解决问题 |
4.5、等价映射
为了将两种表式法统一起来,CMMI提供了两种表式法的映射。
两种表示法,从内容上,只是对共性内容、特定内容不同的组织方式。通过对共性内容和特定内容的不同组织方式,从而进行等价映射。
映射关系
成熟度(阶段式) |
能力级(连续式) |
成熟等级2
|
成熟度等级2中的7个过程域均达到能力等级2 |
成熟等级3
|
成熟度等级2和成熟度等级3中20个过程域均达到了能力等级3
|
成熟等级4
|
成熟度等级2、成熟度等级3和成熟度等级4的22个过程域均达到了能力等级3;并且有部分(注意不是全部)过程域达到了能力等级4;有时两个不同的组织他们均达到了成熟度等级4,但是他们达到了能力等级4的过程域可能完全不同 |
成熟等级5
|
成熟度等级2、成熟度等级
>3、成熟度等级4和成熟度等级5的24个过程域均达到了能力等级3;并且有部分(注意不是全部)过程域达到了能力等级4; |
成熟度等级4和能力等级4的关系
能力等级 |
成熟度等级 |
CL4的共性实践:
4.1、建立质量目的
4.2、稳定子过程性能 |
ML4的过程域:
组织级过程性能OPP
项目定量管理QPM |
CL5的共性实践:
5.1、保证过程持续改善
5.2、纠正问题的公共原因 |
ML4的过程域:
组织级改革和实施OID
因果分析和解决方案CAR |
解释说明:
能力等级是针对一个具体过程而言的
成熟度等级是针对这个组织运作而言的
仔细观察,可以发现四个共性实践和四个过程域有很强的相似性,只是针对的范围不同,具体分析如下
能力等级
|
成熟度等级
|
说明
|
建立质量目的 |
组织级过程性能 |
建立度量目标和度量体系,建立性能基线
|
>稳定子过程性能 |
项目定量管理 |
根据数据对过程进行监控和管理 |
保证过程持续改善 |
组织级改革和实施 |
持续改进 |
纠正问题的公共原因 |
因果分析和解决方案 |
缺陷预防 |
仔细分析可以看出来:两种表示法在单个PA内,只是对共性内容、特定内容不同的组织形式。
在连续式中,只是提供了特定内容,所有共性内容对所有的PA一样,按照能力等级不同有不同的共性内容。
在阶段式中,每个PA提供了特定内容,并且有PA所处成熟度等级对应能力等级的共性内容(等级四、等级五除外),这些共性内容按照公共特性划分。
4.6、 公共特性
公共特性用于在阶段式表示法中对公共实践进行分类,有如下几类:
简写
|
全拼
|
中文名称
|
说明
|
CO
|
Commitment
to Perform
|
执行承诺 |
与方针和领导承诺相关内容
|
AB
|
Ability
to Perform
|
执行能力 |
资源保证内容
|
DI
|
Directing
Implementation
|
定向实现
|
管理人员、过程、产品内容
|
VE
|
Verifying
Implementation
|
验证执行
|
高层管理者评审和正确性验证 |
CL2和CL3的共性实践所属的四个公共特性
公共实践
|
名称
|
公共特性
|
GP 2.1 |
建立组织政策
|
(CO 1) |
GP 3.1 |
建立已定义的过程
|
(AB 1)
|
GP 2.2 |
计划过程
|
(AB 2) |
GP 2.3 |
提供资源
|
(AB 3)
|
GP 2.4 |
分配任务
|
(AB 41)
|
GP 2.5 |
培训人员
|
(AB 5)
|
GP 2.6 |
管理配置
|
(DI 1) |
GP 2.7 |
标示和包含项目相关人员
|
(DI 2) |
GP 2.8 |
监督和控制过程
|
(DI 3) |
GP 3.2 |
收集过程改进信息 |
(DI 4)
|
GP 2.9 |
客观的评价依赖性
|
(VE 1)
|
GP 2.10 |
高层管理评价状态 |
(VE 2) |
5、CMMI和CMM的区别
5.1、 模型对比
5.2、对比说明
CMMI阶段式的基本结构从CMM演变而来,但是CMMI的结构更加的形式化和精致,也更加的复杂,尤其为了保证连续式和阶段式的同一性,更加增加了结构的理解难度。
CMMI强调了对需求的管理,有两个过程域说明对需求的控制:需求管理REQM、需求开发RD。而在CMM中只有一个关键过程域需求管理RM以及软件产品工程SPE中的一个实践来说明对需求的管理和控制。
CMMI加强了对工程过程的重视,提供了更加细致的要求和指导,而CMM中却只有一个SPE关键过程来进行要求和指导。
CMMI强调了度量,并且从项目的早期就已经进行了度量,在阶段式中CMMI二级由一个过程域度量和分析;而在CMM中没有专门的要求和指导。
CMMI对比CMM更加强调了对风险的管理,在CMM中风险只“是项目策划”SPP中的一个活动,而在CMMI中风险管理作为一个单独的过程域。
CMM中的一个关键过程域“组间协调”IC在CMMI中地位下降,只是作为“集成化项目管理”IPM中的一个目标。
CMM中的关键过程域“同行评审”PR,在CMMI中得到了更高的抽象;对应CMMI的“验证”VER,说明了对产品进行相应的QC活动。(同行评审本身就是一种QC活动)
CMMI的公共特性中,没有了测量(ME),这些度量内容被组织起来形成了一个支持过程“度量和分析”。具体理由如下:
度量和分析本身应用的复杂性和它执行的高成本
在原来的CMM中每个KPA均有单独的测量要求,容易造成“过度测量”,也没有形成对组织级的、统一的度量体系的指导和要求,造成实施中的困难。
例如在CMM中如果一个组织达到了CMM三级,由于各个KPA均要求了测量(ME),实际上已经建立了全组织过程的测量,这和CMM的等级划分思想是有着冲突的。
CMMI改进了这个方面,要求组织从组织级的统一要求出发建立度量体系。这样的想法也符合过程改进理论的思想;这样组织在实施过程中可以选择必要的过程进行测量,而不是全部过程的测量,从这个意义上,CMMI对比CMM降低了对度量的要求和实施难度,但是更加具有全局性和可实施性。
CMM是作为评估标准出现的,所以是“必要”的才能保证评估的标准。
CMMI是作为改进模型出现的,罗列了较多的最佳实践,利于过程的改进。
|