软件能力成熟度模型笔记
CMM之后对CMMI的思考—CMMI学写笔记
发布于2013-6-21
本人在某上市软件公司担任SQA和SEPG,进行基于CMM的过程改进。近期学习CMMI, 对CMMI 有了一些了解。总结如下,希望大家指正。
1、CMMI基本介绍
1.1、起因和缘由
工程环境和过程更加复杂,独立的CMM面对更加复杂化的要求不能适应了。
针对分段工作的弊端(重复返工),工作更加集成化,这样需要集成化的专业知识,也需要集成化的过程。
多种模型的衍生,造成了理解和培训上的困难。
同时多种衍生模型的实践提供了必要的信息和信心,可以建立这样集成的能力程度模型
1.2、目标
成本效益:减少理解和培训上的成本;
改进模型:统一模型利于统筹进行分析和计划;
避免封闭的过程改进:过程按照学科单独进行,没有顾及整体效益;
交流:跨越部门学科的过程带来更多的交流,从而利于紧密的、有效的、精简的、继承的过程,对过程改进有全局效益
统一模型的过程改进(不仅仅是软件过程能力)提供更大的适应性和扩充性,减少冲突和冗余
1.3、CMMI框架结构的基本思想
CMMI的框架结构基于对对过程和过程改进理论的深刻认识
公共性的基础:
项目管理和过程管理适用于任何学科
如果进行适当的抽象,则工程过程可以直接应用于任何工程形式
支持过程对不同学科提供不同的实现,但是目标和实践可以保持不变
模型结构思路:
根据信息的不同作用进行分类,划分为十二种构件
整个模型由此十二种构件组成,并且具备一定的结构
每个构件由一个或者多个资料组成
整个模型汇编数了千个小的资料
模型的不同表示法,就是通过构件的不同结构来体现
模型结构的优点:
模型由数千个小的资料组成,不同表示法共同使用这些资料
这样来确保两种表示法的“等价性”
模型通过十二种构件来组织,建立了一个公共的框架容纳未来的内容
所有小资料均归属于不同得构件,模型的改进可以通过小资料的改进来实现
2、CMMI的构件
CMMI建立了一个自动、可扩展的框架,其中可以放入模型集成构件、培训资料、评估资料,确保在已定义规则下可以将更多学科加入该框架。
公共性是完全可以理解的,过程管理和项目管理可以应用于人和学科
CMMI具有多个模型,每个模型通过汇编数千个小资料(构件),这些资料存放在数据库中便于统一引用。
2.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是作为改进模型出现的,罗列了较多的最佳实践,利于过程的改进。