什么是CMMI?
CMMI(Capability Maturity Model Integration)即能力成熟度集成模型,起初是美国国防部的一个设想,由工业界、美国政府和卡内基·梅隆大学软件工程研究所率先倡导。他们想把现在所有的以及将被发展出来的各种能力成熟度模型,集成到一个框架中去。这个框架有两个功能,第一,软件采购方法的改革;第二,建立一种从集成产品与过程发展的角度出发、包含健全的系统开发原则的过程改进。
就软件而言,CMMI是SW-CMM的修订本。它兼收了SW-CMM 2.0版C稿草案和SPA中更合理、更科学和更周密的优点。
CMMI项目更为工业界和政府部门提供了一个集成的产品集,其主要目的是消除不同模型之间的不一致和重复,降低基于模型改善的成本。CMMI将以更加系统和一致的框架来指导组织改善软件过程,提高产品和服务的开发、获取和维护能力。
CMMI项目致力于帮助企业缓解这种困境。CMMI为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,建立了一个自动的、可扩展的框架。因而能够重总体上改进组织的质量和效率。CMMI主要关注点就是成本效益、明确重点、过程集中和灵活性四个方面。与原有的能力成熟度模型类似,CMMI也包括了在不同领域建立有效过程的必要元素,反映了业界普遍认可的"最佳"实践;专业领域覆盖软件工程、系统工程、集成产品开发和系统采购。在此前提下,CMMI为企业的过程构建和改进提供了指导和框架作用;同时为企业评审自己的过程提供了可参照的行业基准。
CMMI的基本思想:
1、解决软件项目过程改进难度增大问题
2、实现软件工程的并行与多学科组合
3、实现过程改进的最佳效益
CMMI的原则:
1、强调高层管理者的支持。过程改进往往也是由高层管理者认识和提出的,大力度的、一致的支持是过程改进的关键。
2、仔细确定改进目标,首先应该对给定时间内的所能完成的改进目标进行正确的估计和定义并制定计划。选择能够达到的目标和能够看到对组织的效益。
3、选择最佳实践,应该基于组织现有的软件活动和过程财富,参考其他标准模型,取其精华去其糟粕,得到新的实践活动模型。
4、过程改进要与组织的商务目标一致,与发展战略紧密结合。
CMMI目标:
1、为提高组织过程和管理产品开发、发布和维护能力的提供保障。
2、帮助组客观织评价自身能力成熟度和过程域能力,为过程改进建立优先级以及执行过程改进。
CMMI的方法:
1、决定哪个CMMI模型等级最适合组织过程改进需要。
2、选择模型的表示法是连续式还是阶段式。
3、决定组织需要用到的模型中的知识领域。
4、类似CMM提出的过程改进6步,集成化过程改进分成:开始集成过程改进,建造集成改善平台,集成传统过程,启动新过程,进行改进评估。
CMMI内容:
CMMI内容分为三个级别
◆Required必需的:
是模型和过程改进的基础。
模型构件是目标,代表了过程改进想要达到的最终状态,它的实现表示了项目和过程控制已经达到了某种水平。当一个目标对应一个关键过程域,就称为"特定目标";对应整个关键过程域就称为"公用目标"。整个CMMI模型包括了54个特定目标,每个关键过程域都对应了一到四个特定目标。每个目标的描述都是非常简捷的,为了充分理解要求的目标就是扩展"期望"的构件。
◆Expected期望的:
在过程改进中起到主要作用,但是某些情况不是必须的可能不会出现在成功的组织模型中。
模型构件是方法,代表了达到目标的实践手段和补充认识。每个方法都能映射到一个目标上,当一个方法对一个目标是唯一就是"特定方法";而能适用于所有目标时就是"公用方法"。CMMI模型包括了186个特定方法,每个目标有两到七个方法对应。
◆Informative提供信息的:构成了模型的主要部分,为过程改进提供了有用的指导,在许多情况下他们对需要和期望的构件做了进一步说明。
CMMI包括了10种"提供的信息":目的,概括和总结了关键过程域的特定目标;介绍说明,介绍关键过程域的范围、性质和实际方法和影响等特征;引用,关键过程域之间的指向是通过引用;名字,表示了关键过程域的构件;方法和目标关系,关键过程域中方法映射到目标的关系表;注释,注释关键过程域的其他模型构件的信息来源;典型工作产品集,定义关键过程域中执行方法时候产生的工作产品;子方法,通过方法活动的分解和详细描述;学科扩充,CMMI对应学科是独立的,这里提供了对应特定学科的扩展;公用方法的详细描述,关键过程域中公用方法应用实践的详细描述。
CMMI评估方法:
自1991年起,CMM出现了很多模型,覆盖了各种各样的专业领域。其中著名的模型有:系统工程、软件工程、软件采购、集成产品、流程开发等。
当企业想要在组织内不同专业领域的流程改进,这些针对不同专业领域的模型在架构?内容和方法上的不同限制了组织成功实施改进的能力。此外,将这样模型在组织内部集成也提高了培训?认证和改进的费用。一套包括多个专业领域的模型加上整合的培训和认证支持将解决这些问题。
CMMI(Capability maturity model integration)是为了合并三个模型到一个框架中
Capability Maturity Model for Software (SW-CMM) v2.0 draft C,
Electronic Industries Alliance Interim Standard (EIA/IS) 731
Integrated Product Development Capability Maturity Model (IPD-CMM) v0.98
正如其他CMM模型,CMMI提供了流程改进的指导,而不是流程或流程的描述。组织使用的实际流程取决于很多因素,包括应用领域?组织框架和规模。CMMI将许多经过验证的方法加入架构中,来帮组组织评价成熟度?某个软件流程的能力度,并且建立改进的优先顺序和实施改进。
从CMMI框架可以产生不同的CMMI模型,因此必须首先确定那种模型最适合企业流程改进的需要。
阶段式描述 or 连续式描述
系统工程 or 软件工程 or 两者皆有
使用连续式描述可以根据企业需要选择流程改进顺序,降低企业风险,这给通过ISO做流程改进提供了一个方便的比较。使用能力度(Capability)来衡量。
阶段式描述提供了已经过验证的流程改进顺序,方便从CMM移植过来。使用成熟度(Maturity)来衡量流程改进。
系统工程包括整个系统的开发,可能包括软件也可能不包括。
软件工程用于软件系统的开发,主要集中在使用系统的?科学的?量化的方法来开发?运行?维护软件。
CMMI的评估方式:
自我评估:用于本企业领导层评价公司自身的软件能力。
主任评估:使本企业领导层评价公司自身的软件能力,向外宣布自己企业的软件能力
CMMI的评估类型:
软件组织的关于具体的软件过程能力的评估。
软件组织整体软件能力的评估(软件能力成熟度等级评估)。