下面是一些资料
1.1.1 CMMI发展简史
CMMI(Capability Maturity Model Integration,能力成熟度模型集成)是用于产品开发(或服务)的过程改进成熟度模型。CMMI的最佳实践覆盖了产品构思、交付和维护的整个生命周期。
1981年,美国卡内基梅隆大学软件工程研究所(SEI),应美国联邦政府的要求开发的一种用于评价软件承包商能力并帮助其改善质量的方法。Watts Humphrey将成熟框架带到了SEI并增加了成熟度等级的概念,将这些原理应用于软件开发,发展成为软件过程成熟度框架,它提供了一个评估软件开发过程的管理以及工程能力的标准。
1987年,基于Watts Humphery 等人的工作,SEI的Mark Pauk 等人建立了第一个CMM模型,即软件CMM。1993年,SEI推出了CMM 1.1,这是目前世界上应用最广泛的CMM版本。
十几年来CMM的改进工作一直不断地进行,相继有多个学科领域的CMM模型问世:SE-CMM, SW-CMM, IPD-CMM等。美国国防采购与技术办公室领导了一个由政府、企业和SEI的代表组成的团队开始开发一个CMM模型的集成框架,即CMMI。 CMMI的基础源模型包括:软件CMM 2.0版本,EIA-731系统工程,以及IPD CMM (IPD) 0.98a版本。2002年1月CMMI 1.1版本正式发布,并立即被广泛采用。
16个核心过程域
CMMI-DEV
CMMI-SVC
CMMI-ACQ
图1-1 CMMI 1.2的三种模型
2006年8月,面向开发的CMMI(CMMI-DEV 1.2) 版本正式发布。为了适应更加广泛的应用,SEI 计划今后发布另外二种模型,分别是面向服务的CMMI(CMMI-SVC 1.2)版本和面向采购的CMMI(CMMI-ACQ 1.2)。
注:本书论述的CMMI是CMMI-DEV 1.2版本。
1.1.2 CMMI的过程域
过程域(Process Area)是同属于某个领域而彼此相关的实践集合,当这些实践共同执行时,可以达到该领域过程改进的目标。CMMI-DEV 1.2有22个过程域,见表1-1(按字母排序)。
英文名称 |
缩写 |
中文名称 |
成熟度 等级 |
类型 |
Causal Analysis and Resolution |
CAR |
原因分析与解决方案 |
5 |
支持 |
Configuration Management |
CM |
配置管理 |
2 |
支持 |
Decision Analysis and Resolution |
DAR |
决策分析与解决方案 |
3 |
支持 |
Integrated Project Management |
IPM |
集成化项目管理 |
3 |
项目管理 |
Measurement and Analysis |
MA |
度量分析 |
2 |
支持 |
Organizational Innovation and Deployment |
OID |
组织革新与部署 |
5 |
过程管理 |
Organizational Process Definition |
OPD |
组织过程定义 |
3 |
过程管理 |
Organizational Process Focus |
OPF |
组织过程焦点 |
3 |
过程管理 |
Organizational Process Performance |
OPP |
组织过程绩效 |
4 |
过程管理 |
Organizational Training |
OT |
组织培训 |
3 |
过程管理 |
Product Integration |
PI |
产品集成 |
3 |
工程 |
Project Monitoring and Control |
PMC |
项目监控 |
2 |
项目管理 |
Project Planning |
PP |
项目规划 |
2 |
项目管理 |
Process and Product Quality Assurance |
PPQA |
过程和产品质量保证 |
2 |
支持 |
Quantitative Project Management |
QPM |
定量项目管理 |
4 |
项目管理 |
Requirements Development |
RD |
需求开发 |
3 |
工程 |
Requirements Management |
REQM |
需求管理 |
2 |
工程 |
Risk Management |
RSKM |
风险管理 |
3 |
工程 |
Supplier Agreement Management |
SAM |
供应商协议管理 |
2 |
项目管理 |
Technical Solution |
TS |
技术方案 |
3 |
工程 |
Validation |
VAL |
确认 |
3 |
工程 |
Verification |
VER |
验证 |
3 |
工程 |
表1-1 CMMI-DEV 1.2的22个过程域
1.1.3 CMMI的两种表示法
CMMI 有两种表示法:一种是阶段式表示法;另一种是连续式的表示法。
阶段式表示法 |
成数度等级 |
过程域1 |
过程域2 |
过程域n |
特定目标 |
共性目标 |
共性实践 |
特定实践 |
图1-2 CMMI的阶段式表示法
阶段式表示法把过程域分成5个成熟度等级,指出达到每一成熟度等级必须实施哪些过程域。成熟度等级提供一个阶段式的流程改进建议顺序。如图1-3所示,一个成熟度等级包括多个过程域,每个过程域包含共性目标和特定目标,以及共性实践和特定实践。
连续式表示法 |
能力等级 |
过程域1 |
过程域2 |
过程域n |
特定目标 |
共性目标 |
共性实践 |
特定实践 |
图1-3 CMMI的连续式表示法
连续式表示法则将过程域分为四大类型:过程管理、项目管理、工程以及支持。对于每个大类中的过程域,又进一步分为“基础的”和“高级的”过程域,如图1-4所示。在按照连续式表示方法实施CMMI的时候,一个组织可以把项目管理或者其它某类的实践一直做到最好,而其它方面的过程区域可以不必考虑。
成熟度等级是一组经过定义的渐进式过程改进指标,达到每一成熟度等级,则代表组织过程的某重要部分有了稳固的基础。
CMMI的阶段式表示法将成熟度划分为5个等级。除了初始级以外,每个成熟度等级都有若干个过程域,如表1-2所示。由于成熟度等级是循序渐进的,如果想达到某个成熟度等级,例如CMMI 3级,除了满足CMMI 3级本身11过程域之外,还要满足CMMI 2级的7个过程域,依此类推。
成熟度等级 |
过程域 |
第5级:优化级 |
组织革新与部署 (OID) 原因分析与解决方案 (CAR) |
第4级:量化管理级 |
定量项目管理(QPM) 组织过程绩效(OPP) |
第3级:已定义级 |
需求开发 (RD) 技术解决方案 (TS) 产品集成 (PI) 验证 (VER) 确认 (VAL) 组织过程焦点 (OPF) 组织过程定义 (OPD) 组织培训 (OT) 集成化项目管理 (IPM) 风险管理 (RSKM) 决策分析与解决方案 (DAR) |
第2级:已管理级 |
需求管理 (REQM) 项目规划 (PP) 项目监控 (PMC) 供应商协议管理 (SAM) 度量分析 (MA) 配置管理 (CM) 过程和产品质量保证 (PPQA) |
第1级:初始级 |
无 |
表1-2 CMMI阶段表示法:成熟度等级和过程域的关系表
1.2.1 成熟度等级L1:初始级的特征
在成熟度第1级中,过程通常是混乱的,而且组织通常没有提供稳定的开发环境。这些组织的成功,往往依赖组织中个人的能力与拼搏精神,而不是使用一套经过验证的过程。处于成熟度第1级的组织在这种混乱的环境中,也能开发出可以工作的产品和服务,但是往往伴随着项目费用超支和进度拖延。
在成熟度第2级中,组织已达到成熟度第2级所有过程域的特定目标和共性目标。换言之,组织的项目已确保需求是被管理的,而且其过程是经过计划、执行、度量及控制的。
在成熟度第2级,需求、过程、工作成果及服务是受管理的。在预定的时间节点(例如重要里程碑、重要的任务完成时刻),管理层都可以了解工作成果的情况。
1.2.3 成熟度等级L3:已定义级的特征
在成熟度第3级中,组织已达到成熟度第2和第3级所有过程域的特定目标和共性目标,工作过程都已详尽地说明,并应用标准、规程、工具及方法来表现。
组织的标准过程(Organization’s set of standard process)是成熟度第3级的基础。项目可对组织的标准过程进行裁剪,以建立项目过程。
成熟度第2级与第3级的主要区别在于标准、过程说明及规程的范围。在成熟度第2级中,某过程在不同案例间的标准、过程说明及规程可能有相当的差异。在成熟度第3级中,项目的标准、过程说明及规程都是从组织的标准过程裁剪而来的,以适用于某些特殊项目或单位。组织的标准过程包括了成熟度第2级和第3级的过程,因此除了裁剪指南所允许的差异之外,整个组织所执行的过程都是一致的。另一个主要的区别是,成熟度第3级的过程说明比第2级更加详细与严谨,基于对过程活动的了解,以及对过程、产品与服务的详细度量,可更主动地管理过程。
在成熟度第4级中,组织已达到成熟度第2、第3和第4级所有过程域的特定目标和共性目标。选定对整体过程绩效有重大影响的子过程,并使用统计和其他的量化技术来控制这些子过程。
建立质量与过程绩效的量化目标,并以该目标为管理过程的准则。量化目标是根据客户、最终用户、组织及过程执行者的需求而设定。以统计的术语表示质量和过程绩效,并在整个过程中受到管理。
针对这些过程,收集过程绩效的详细度量资料,并进行统计分析。界定过程变化的特殊原因,并适当地修正特殊原因的来源,以避免未来再度发生。
将质量和过程绩效的度量结果,纳入到组织的度量库(organization’s measurement repository),以支持未来以事实为基础的决策。
成熟度第3级与第4级的主要区别在于过程绩效的可预测能力。在成熟度第4级中,过程绩效是由统计和其他的量化技术所控制,并且可以用量化方式预测。但在成熟度第3级中,仅能说在质量上是可预测的。
在成熟度第5级中,组织已达到成熟度第2、第3、第4和第5级所有过程域的特定目标和共性目标。根据对过程变化共性原因的量化了解,持续进行过程改进。
经由渐进式的和革新式的技术改进,成熟度第5级专注于持续改进过程绩效,已经建立组织的量化过程改进目标,并持续修订以反映持续变化的经营目标。量化的过程改进目标也当作管理过程改进的准则,据以度量与评估已进行的过程改进效果。已定义过程和组织标准过程都是这些可度量改进活动的对象。通过查找问题,加快共享经验教训,可以增强组织对变化和机会的快速反应能力。过程改进是每个人的责任,它也使得过程改进不断得到循环。
在成熟度第5级中,过程改进解决过程变化的共性原因,以及界定、评估和执行可度量的组织过程改进。改进方案的选择,以下列二者的量化了解为基础:(1)过程改进方案对组织过程改进目标的预期贡献;(2)执行时的成本和对组织的影响。
成熟度第4级与第5级的主要区别在于所要克服的过程变化类型。在成熟度第4级中,过程专注于克服特殊原因的过程变化,并提出统计上的可预测结果。虽然过程或许可以产生预期的结果,但该结果不足以达到预期的目标。在成熟度第5级,过程专注于克服过程变化的共性原因,并改变过程(也就是改变过程绩效的平均值)以改善过程绩效(同时维持统计上的可预测性),以便达到预期流程改进的量化目标。
能力等级(Capability Level)表示一个组织在实施和控制其过程以及改善其过程绩效等方面所具备的能力。
一个过程能力等级由这个过程的若干相关的特定实践和共性实践所构成。这些特定实践和共性实践如果得以执行,则将使该组织的这个过程的执行能力得到提高,进而增强该组织的总体过程能力。
过程能力等级模型中的能力等级的着眼点在于使组织走向成熟,以便增加实施和控制过程的能力并且改善过程本身的绩效。这些能力等级有助于组织在过程改进各个相关过程时追踪、评价和验证各项改进进程。
连续式表示法中,每个过程域的能力等级划分0~5级(共6级),从0~5编号,它们是:0 不完整级;1已执行级;2 已管理级;3 已定义级;4 量化管理级;5 持续优化级。
CMMI模型的连续式表示,按照过程域之间的关系分成四个类型:过程管理、项目管理、工程和支持,如表1-3所示。
类型 |
过程域 |
基础过程域 / *高级过程域 |
过程管理 |
组织过程焦点 (OPF) 组织过程定义 (OPD) 组织培训 (OT) 组织过程绩效(OPP) 组织革新与部署 (OID) |
基础过程域 基础过程域 基础过程域 * 高级过程域 * 高级过程域 |
项目管理 |
项目规划 (PP) 项目监控 (PMC) 供应商协议管理 (SAM) 集成化项目管理 (IPM) 风险管理 (RSKM) 定量项目管理 (QPM) |
基础过程域 基础过程域 基础过程域 * 高级过程域 * 高级过程域 * 高级过程域 |
工程 |
需求管理 (REQM) 需求开发 (RD) 技术方案 (TS) 产品集成 (PI) 验证 (VER) 确认 (VAL) |
基础过程域 基础过程域 基础过程域 基础过程域 基础过程域 基础过程域 |
支持 |
度量分析 (MA) 配置管理 (CM) 过程和产品质量保证 (PPQA) 决策分析与解决方案 (DAR) 原因分析与解决方案 (CAR) |
基础过程域 基础过程域 基础过程域 * 高级过程域 * 高级过程域 |
表1-3 CMMI连续表示法:过程域分类
1.3.1 能力等级0-不完整级的特征
不完整级也称为未执行级。它的过程是一个未执行或仅仅部分执行的过程。该过程的一个或多个特定目标未被满足。
注意:所谓“未执行”、“部分执行”以及后面所说的“已执行”等描述,都是相对于模型的过程域而言。
1.3.2 能力等级1-已执行级的特征
已执行级的过程是一个满足过程域各个特定目标的过程:为了实现可识别的输入工作成果产生可识别的输出工作成果,需要做相应的工作,处于这个级别的过程,能支持这类工作并且使其能执行。
不完整级与已执行级过程之间的关键差别在于,已执行级过程满足相应的过程域的所有特定目标。
1.3.3 能力等级2-已管理级的特征
已管理级过程是一个具有以下特征的已执行级过程。它是按照预定方针予以策划和执行的;为了生成受控的输出,过程的执行都是配备有适当的资源、有熟练技能的人;各方利益相关者介入了该过程;并且依据各项要求进行了审查和评价。该过程可能由某个项目、某个项目组或某个职能部门予以制度化了,或者可能成为组织的一个独立过程。该过程的管理牵涉到过程的制度化(作为已管理级过程加以制度化),牵涉到针对该过程各种具体目标(如成本、进度和质量目标)的实现。
已管理级过程与已执行级过程之间的基本区别在于,过程受到管理的程度不同。已管理级过程是有计划的。当实际结果和性能明显偏离该计划时,会采取纠正措施。已管理级过程要实现该计划的各项具体目标并且被制度化,以保证绩效的一致性。过程制度化还意味着,该过程的实施广度和深度以及维持时间等是适当的,能够确保该过程成为开展工作中的一个坚实的组成部分。
该过程的具体目标可能是这个过程特有的目标,也可能是某个更高层次上规定的目标(就一组过程而言),在后一种情况下,各个过程将共同为这些目标的实现做贡献。作为对该过程采取的纠正措施的一部分,这些具体目标可能会被修改。
1.3.4 能力等级3-已定义级的特征
已定义级过程是这样一种受管理的过程:它是根据本组织的剪裁指南从本组织的标准过程集合剪裁而得来;它具有受到维护的过程描述;并且它能为本组织的过程财富(资源)贡献工作成果、度量项目以及其他过程改进信息。
已定义级过程和已管理级过程之间的关键区别在于标准、过程描述和规程的应用范围不同。就已管理级过程而言,标准、过程描述和规程只在该过程的某个特例中使用(在某个特定项目上使用)。就已定义级过程而言,因为标准、过程描述和规程是从本级织的标准过程集合剪裁而来并且与组织的过程财富相关。所以,在整个组织里执行的各个已定义过程就比较一致。与已管理级过程的另外一个重要区别是,已定义级过程的描述比较详细,执行比较严格。对过程各项活动的深入了解以及对过程,其工作产品的所提供的服务的详细度量,是对已定义过程进行管理的基础。
组织的标准过程集合是已定义过程的基础,它是在长期实践中建立并且不断改进的。这些标准过程描述的基本过程元素可望纳入已定义过程中。标准过程还描述基本元素之间的关系。为支持本组织现在和将来使用的标准过程集合而在组织一级进行的制度化也是在长期实践中实现和不断改进的。
1.3.5 能力等级4-量化管理级的特征
量化管理级过程是利用统计和其他量化技术进行控制的已定义级过程。按照管理该过程的准则来建立和利用质量和过程绩效的定量目标。从统计意义上反映质量和绩效目标,并且在整个过程周期里管理这些质量和过程目标。
组织的标准过程以及客户、最终用户、组织和过程实施人员的需要等,是量化目标的基础。执行该过程的人直接参与对该过程的量化管理。
对生成工作成果或提供服务的整个过程集合实施量化管理:对那些在总的过程性能上起重大作用的过程实施量化管理;针对选定的过程绩效详细度量并进行量化分析,确定过程变化的特殊原因,并且在适当时对特殊原因的起源进行处理,以避免将来再次发生。
量化管理级过程和已定义级过程的一个关键区别是过程绩效的可预测性。量化管理意味着使用统计技术或其他量化技术来管理某过程的一个或几个关键子过程,从而做到可以预测该过程未来的绩效。
1.3.6 能力等级5-持续优化级的特征
持续优化级过程是一个可以通过调整使之满足当前的和预定业务目标的量化管理级过程。持续优化级过程侧重于通过渐进式的和革新式的技术改进不断改进过程绩效。凡是涉及到处理过程变化的共性原因和对组织的过程进行可度量改进的各个过程改进项都得到标识和评价,并且在适当时予以部署实施。对改进项作出选择的基础是:量化地了解它们在实现组织过程改进目标中的预期贡献与成本,和对组织的影响。处于持续优化级的过程其绩效将不断得到改善。
所选定的对过程的渐进式的和革新式的技术改进,系统地进行组织部署实施,对照量化的过程改进目标,测量和评价已部署实施的过程改进的效果。
持续优化级过程与量化管理级过程之间的一个关键区别在于,持续优化级过程是通过处理过程变化的共性原因而不断地进行改进。量化管理级过程关心的是处理过程变化的特殊原因和提供对过程结果的统计意义上的可预计性。尽管量化管理级过程可以产生可预计的结果,但这种结果可能与规定的目标有差距。持续优化级过程关心的是处理过程变化的共性原因,并且调整过程以改善过程绩效,从而实现规定过程量化目标。过程变化的共性原因是过程内在的并且影响该过程的总体性能的原因。
CMMI过程域的部件划分三类:必要的(required)、期望的(expected)和信息的(informative)3类,如图1-4所示。
期望部件
|
|
相关过程域 |
|
|
介绍性说明 |
|
典型工作成果 |
|
信息部件 |
|
特定目标 |
共性目标 |
|
必需部件 |
|
目的说明 |
特定实践 |
共性实践 |
图标 |
|
过程域 |
|
子实践
|
子实践 的详细说明
|
图1-4 过程域的部件
1.3.1 必需部件
必需部件描述组织达到某个过程域必须满足的部分,这种满足在组织过程中实现是可视的。CMMI的必需部件是特定目标(Specific Goals)和共性目标(Generic Goals)。这些目标在评估中作为判断一个过程域达到和满意的基本原则。
特定目标只适用于一个过程,它描述过程特性具有唯一性,即只有该过程必须实现的那些特性。特定目标是必需的部件,在评估时用来衡量该过程域是否满足要求。例如:配置管理过程域的一个特定目标是“创建和维护基线的完整性”。
共性目标称为“共性”是因为同一目标的陈述对应了多个过程域。共性目标描述组织制度化实施的特征。
1.3.2 期望部件
期望部件说明组织要达到某个目标的一般性做法。期望部件指导那些实施过程改进或执行评估的人用于判断过程域目标是否达到。CMMI的期望部件是特定实践(Specific Practices)和共性实践(Generic Practices)。
特定实践表明一组活动,这组活动被期望可达成某过程域的特定目标。例如:项目监控过程域一个特定实践是“对项目计划中的承诺进行监督”。
共性实践称为“共性”是因为同一实践的陈述对应了多个过程域。共性实践说明一组活动,这组活动被期望可达成给定的共性目标。
1.3.3 信息部件
信息部件是对如何达到必需部件和期望部件的更加详细的描述。以下是CMMI的一些信息部件。
目的(Purpose)描述了过程域的目的。例如:组织过程定义过程域的目的是“建立和维护可用的过程资产和工作环境标准”。
介绍性说明(Introductory Notes)应用于整个过程域的多个介绍性注释,描述了过程域覆盖的主要范围。例如:项目规划过程域的介绍性说明是“规划开始于产品和项目已定义的需求”。
相关过程域(Related Process Areas)列出了相关过程域信息,反映了过程域间更高层次的关系。例如:项目规划过程域中一个相关过程域的例子是“识别和管理风险的更多信息,请参考风险管理过程域”。
典型工作成果(Typical Work Products)。当执行一个实践时,通常会以工作成果的形式产生输出。例如:项目监控过程域的特定实践“依据项目计划中的参数监督项目实际数据”中一个典型工作成果是“明显偏离的记录”。
子实践(Subpractices)提供了详细的说明,用于实施某个特定实践或共性实践。例如:在项目监控过程域中特定实践“对确定的问题采取纠正措施”一个子实践是“为处理所识别的问题而采取措施,并形成文件”。
共性实践详细说明(Generic Practice Elaborations)出现在一个过程域的共性实践后面,它为一个共性实践如何适用于特定的过程域提供指南。
注释(Notes)是伴随任何一个模型部件的文字,它提供详细背景和基本原理资料,起到注释作用。
例子(Examples)。几乎在任何一个部件旁边都提供一个或多个例子用于阐明概念或描述活动。
扩充(Amplifications)是一个特定学科的注释或例子。模型中覆盖的学科是硬件工程、系统工程和软件工程。每一个扩充都在标题上进行了标示,用于说明应用的学科。
CMMI评估是用于评价组织过程改进的现状。由于CMMI采用了两种不同的表示法,产生了二种不同类型的评估,一是关于具体的过程能力等级的评估;二是组织整体成熟度水平的评估。通过评估分别产生能力等级剖面图或成熟度等级。
目前,CMMI的成熟度等级评估在业界应用最广泛。
1.5.1 CMMI评估要求
组织使用CMMI模型评估时,需要符合CMMI评估要求(Appraisal Requirements for CMMI,ARC)文件中的要求。评估关注识别过程改进机会,将组织过程与CMMI最佳实践对比。评估小组使用CMMI模型和遵循ARC评估方法,来指导评估和报告结果。这些评估结果被用于策划组织过程改进,产生成熟度等级或能力等级,缓解产品采购、开发和监控的风险。
ARC文件描述了几种类型评估的要求,分别是A类、B类和C类,见表1-4。
要求 |
A类 |
B类 |
C类 |
客观证据收集类型 |
文件审查和访谈 |
文件审查和访谈 |
文件审查或访谈 |
评级 |
必需 |
不必 |
不必 |
组织覆盖 |
必需 |
没有要求 |
没有要求 |
最小的评估组规模 |
4人 |
2人 |
1人 |
评估组长的要求 |
主任评估师 |
经过培训和有经验的人 |
经过培训和有经验的人 |
表1-4 评估类型的对比
1.5.2 CMMI标准评估方法SCAMPI
使用CMMI模型评估时,通常采用“标准CMMI评估方法”(Standard CMMI Appraisal Method for Process Improvement,SCAMPI)。SCAMPI定义了一些规则,确保评估定级的一致性。对于与其它企业实现标杆性对比的评估,评估定级必须确保一致性。
SCAMPI评估方法家族中包括了A级、B级和C级的评估方法。SCAMPI-A是最严格的和唯一能评定等级的评估方法。SCAMPI-B提供了可选部分,但实践描述是一个固定比例的范围和这些实践得到实施。SCAMPI-C提供了更广泛的选择范围,使用者可以预先定义好评估的范围,在进行过程描述时也是采用一种非常接近的方式。
1.5.3 CMMI评估考虑事项
影响CMMI评估的要素如下:
Ø 选用CMMI哪个模型用于评估(CMMI或CMMI+IPPD)。
Ø 确定组织涉及到的评估范围和被评估的CMMI过程域,确定评价的是成熟度等级还是能力等级。
Ø 选择一种评估方法。
Ø 选择评估小组成员。
Ø 选择被访谈者。
Ø 建立评估的输出文件(例如:等级或特定实践的发现报告)。
Ø 建立评估的约束条件(例如:时间和地点)。
SCAMPI允许预先确定评估范围,这些评估选择是帮助组织商业需求和目标与CMMI进行关联。
CMMI评估计划和结果的文档中,通常包括了评估选项描述、模型范围和实施评估的组织范围。CMMI评估计划和结果的文档确定了是否满足标杆的要求。
CMMI的评估原则:
Ø 高层领导作为评估的发起人。
Ø 关注组织商业目标。
Ø 为被访谈者保密。
Ø 使用文件化的评估方法。
Ø 采用一种参考模型。
Ø 采用团队合作方式。
Ø 关注过程实施的具体活动。
1.6.1 CMMI与CMM的模型比较
CMMI模型是建立在CMM模型基础之上,CMMI的基础源模型包括:软件CMM 2.0版,EIA-731系统工程,以及IPD CMM (IPD) 0.98a版。CMMI相对于CMM模型具有更好的可扩展性,通过学科(软件工程、系统工程、集成化产品和过程开发以及供应商管理)进行模型的扩展,组合形成各种CMMI模型,如CMMI-SW、CMMI-SE/SW、CMMI-SE/SW/IPPD、CMMI-SE/SW/IPPD/SS。
在CMMI 1.2版本中,CMMI-SE/SW模型被CMMI-DEV所取代。以后,还会通过增加新的学科领域扩展形成新的模型,如SEI 计划发布的CMMI-SVC模型和CMMI-ACQ模型。
在CMM中,该模型只有一种表示法,即阶段式表示法。CMM的阶段式表示法将软件组织的成熟度划分为5个等级。在CMMI中,该模型采用了两种表示法:阶段式表示法和连续式表示法。为了保持软件组织之间的能力成熟度比较,CMMI保留了CMM中的阶段式表示法。但是,为了促进软件组织更加切合实际地进行内部软件过程改进,CMMI增加了连续式表示法。
1.6.2 CMMI 与CMM 过程域比较
CMM有18个关键过程域(Key Process Area,KPA),用于促进软件过程的改进。在CMMI中删去了“关键”,而仅称“过程域”。
CMM中的度量分析实践分布在每个关键过程域中,而CMMI增加了度量分析(MA)过程域。
CMM第3级中的软件产品工程(SPE)关键过程域,在CMMI 中被分为需求开发( RD )、技术解决(TS)、产品集成(PI)、验证(VER)和确认(VAL)5个过程域。
CMM第3级的同行评审(PR)关键过程域被融入到CMMI的验证(VER)过程域。
CMM第3级的集成软件管理(ISM)关键过程域所阐述的风险管理,在 CMMI中形成了一个独立的风险管理(RSKM)过程域。同时CMM第3级的集成软件管理(ISM)和组间协调(IC)合并成为CMMI的集成化项目管理(IPM)。
CMMI第3级增加了决策分析和解决方案(DAR)过程域,其内容在 CMM 中没有提及。
CMM第4级的定量过程管理(QPM)和软件质量管理(SQM)转变为CMMI的定量项目管理(QPM)和组织过程绩效(OPP)。
CMM第5级的缺陷预防(DP)转变为CMMI的原因分析和解决方案(CAR)。CMM第5级的技术变革管理(TCM)和过程变更管理(PCM)合并为CMMI的组织革新与部署 (OID)。
CMMI和CMM的过程域比较,详见表1-5。
成熟度等级 |
CMM 的关键过程域(KPA) |
CMMI 的过程域(PA) |
第5级:优化级 |
缺陷预防(DP) 技术变革管理(TCM) 过程变更管理(PCM) |
原因分析与解决方案 (CAR) 组织革新与部署 (OID) |
第4级:量化管理级 |
软件质量管理(SQM) 定量过程管理(QPM) |
定量项目管理(QPM) 组织过程绩效(OPP) |
第3级:已定义级 |
组织过程焦点(OPF) 组织过程定义(OPD) 培训大纲(TP) 组间协调(IC) 集成软件管理(ISM) 软件产品工程(SPE) 同行评审(PR) |
组织过程焦点 (OPF) 组织过程定义 (OPD) 组织培训 (OT) 集成化项目管理 (IPM) 决策分析与解决方案 (DAR) 风险管理 (RSKM) 需求开发 (RD) 技术解决 (TS) 产品集成 (PI) 确认 (VAL) 验证 (VER) |
第2级:已管理级 |
需求管理(RM) 软件项目计划(SPP) 软件项目跟踪和监督(SPTO) 软件子合同管理(SSM) 软件质量保证(SQA) 软件配置管理(SCM) |
需求管理 (REQM) 项目规划 (PP) 项目监控 (PMC) 供应商协议管理 (SAM) 过程和产品质量保证 (PPQA) 配置管理 (CM) 度量分析 (MA) |
表1-5 CMMI和CMM的过程域对比
1.6.3 CMMI 与CMM评估方法比较
CMM的评估方法有二种,一种是CBA-SCE(CMM-Based Appraisal for Software Capability Estimation),它是基于CMM对组织的软件能力进行评估,是由组织外部的评估小组对该组织的软件能力进行的评估。另一种是CBA-IPI(CMM-Based Appraisal for Internal Process Improvement),它是基于CMM对内部的过程改进进行的评估,是由组织内部的小组对软件组织本身进行评估以改进质量,评估结果归组织所有。这两种评估均由SEI授权的主任评估师领导,参考CMM框架来进行,都要审查正在使用和将来使用的文件/文档,并对不同的组织员工进行采访。
CMMI的评估方法只有一种,即SCAMPI(Standard CMMI Appraisal Method for Process Improvement)评估方法。SCAMPI评估方法包括了A、B和C三种不同的级别。只有SCAMPI-A评估,才需要由SEI授权的主任评估师领导。
CMM的知识体系在中国最早由国防系统以及部分大学和研究所引入。而在中国最早实施CMM的公司是Motorola中国公司,他们在1993年就开始实施CMM,并于1996年就达到CMM3级,但是并没有广为宣传,也没有对整个软件业界产生大的影响。1999年,由IBM和清华同方合资成立的北京鼎新信息系统开发有限公司通过CMM二级的评估,经过报刊一些文章的刊载,在我国软件研究界和工业界引起了一些影响。
2000年6月,国务院颁发的《鼓励软件产业和集成电路产业发展的若干政策》对中国软件企业申请CMM认证给予了积极的支持和推动作用。第17条规定“鼓励软件出口型企业通过GB/T19000-ISO9000系列质量保证体系认证和CMM认证。其认证费用通过中央外贸发展基金适当予以支持”。
各地方政府依据中央精神制定了不同的奖励制度,如珠海开发区规定了通过CMM 2级认证一次性奖励50万元的政策。北京市科委也宣布,通过CMM 2级认证的软件企业将获得20万元奖励,通过CMM 3级认证的企业将获得30万元奖励。同时从政府项目招标,软件企业资格评估等方面对通过了CMM评估的企业进行倾斜。
2006年10月,商务部关于实施服务外包“千百十工程”的通知。根据《商务部关于做好服务外包"千百十工程"企业认证和市场开拓有关工作的通知》的有关规定,对符合条件且取得行业国际认证的服务外包企业给予一定的奖励,并采取有效措施支持其国际认证的维护和升级,力争五年内促进700家企业取得CMM/CMMI 3级认证,300家企业取得CMM/CMMI 5级认证。
CMM/CMMI已经得到国内软件相关企业的广泛认识,不但在理论上进行了大量的研究,也有了大量的企业实践。截止到2006年9月,中国企业已进行了354次CMM评估和158次的CMMI评估。通过实施CMM/CMMI,中国软件企业对自身的过程改进的意识和能力有了很大的提高,企业的管理走向了正规化。CMM/CMMI另一个作用是为国内企业参与国际市场竞争,获取服务外包提供了便捷的途径。