CMM入门培训教程
主要内容
CMM的基本概念
能力成熟度模型CMM
能力成熟度模型集成CMMI
CMM与CMMI的选择
CMM的基本概念(1/4)
组织(organization)。管理软件项目,能
对项目进行评估和过程改进的实体,如政府
机关、公司、服务部门等。
项目(project)。由组织承担的,并需要
组织中各部门通力合作完成的指定产品的开
发和维护任务。任何一个项目都涉及经费、
成本和进度计划。这里的产品包括硬件、软
件或其他构件。
CMM的基本概念(2/4)
软件过程(software process)。软件开
发人员为开发和维护软件及相关产品所实施
的一系列步骤,这些步骤涉及方法、工具以
及人的组织和行为。软件产品的质量取决于
软件开发和维护过程的质量,与其他产品的
开发过程一样,软件过程也必须进行严格管
理,因为只有严格管理才能保证效益和质量。
CMM的基本概念(3/4)
组织的标准软件过程(organization’s
standard software process)。组织内部使用
的软件过程,它描述软件过程要素和要素之间
的关系,用它可以建立某一具体项目的软件过
程。软件开发组织的软件过程能力是软件开发
组织能够承接软件项目的重要依据。成熟的软
件开发组织十分重视提高自身的软件过程能力,
组织的领导者注意调动各层次、各类型人员的
积极性和创造性,注意提高员工素质和技能,
注意培育和发扬企业文化。在软件开发过程中,
大家能够团结协作,能够将人、软件开发策略
和方法、软件工具和环境有机地结合起来,使
得软件开发和维护的整个过程是系统的、完整
的、一致的和规范的。软件开发组织的软件过
程是动态的,是逐步成熟和演化的。
CMM的基本概念(4/4)
项目的软件过程(project’s defined software
process)。按照项目的特点和要求,对组织的
标准软件过程进行剪裁和描述,包括相关的软件
标准、规程、工具和方法。
组织的软件过程资产(organization’s software
process assets)。软件过程资产是软件开发组
织能够控制和管理的,用于软件过程定义和剪裁,
以及软件项目开发和管理的实体,包括组织的标
准软件过程、批准使用的软件生命周期模式、剪
裁标准软件过程的指南和准则、软件过程数据库、
软件过程文档库等。
能力成熟度模型CMM
1)CMM的能力成熟度级别及关键过程域
2)成熟度级别的行为特征和关键过程域
3) CMM的关键实践和共同特征
4)能力成熟度的提高和CMM评估
1)CMM的能力成熟度级别及关键过
程域
CMM的能力成熟度级别及关键过程域如表所示。
CMM的能力成熟度共分5级:L1初始级、L2可重复
级、L3已定义级、L4已管理级和L5优化级。因为初
始级L1处于无序工作状态,无系统的规范,故在表
中略去。L2以上包含若干关键过程域。
关键过程域(key process area)描述软件过程的
属性,通过完成一组相互关联的活动,实现一组对
建立过程能力至关重要的目标。关键过程域是SEI
标识的,帮助确定软件开发组织的软件过程能力,
评估软件成熟度的基本单元。关键过程域用具有固
定结构和语句的框架表示。关键过程域的目标
(goals)是指导和评估组织或组织的项目有效实
践关键过程域的指南,是关键过程域应完成的任务
和进行关键实践的概括描述。要达到关键过程域的
目标,不仅需要一系列关键实践活动的支持,而且
还要依赖较低级别关键过程域的实现。CMM的关
键实践(key practices)指对关键过程域的有效
实施和制度化其重要作用的基础设施和活动,如组
织结构、策略、标准、培训、设备、工具等,它与
具体的组织和实现无关。下面将对CMM能力成熟
度每一级涉及的关键过程域、目标和为达到这一目
标必须完成的关键实践逐步展开讨论。
能力成熟度模型CMM
1)CMM的能力成熟度级别及关键过程域
2)成熟度级别的行为特征和关键过程域
3) CMM的关键实践和共同特征
4)能力成熟度的提高和CMM评估
2)成熟度级别的行为特征和关键过
程域
(1)L1初始级(initial)。
初始级的软件开发组织几乎没有软件过程管
理,软件开发是无序和混乱的,软件开发过
程是不稳定的,软件项目的成功取决于开发
精英个人或小组对软件过程的理解和努力。
(2)L2可重复级(repeatable)。
(1/8)
为了跟踪软件开发过程的进度、成本和产品
功能,可重复级的软件开发组织根据自身的
经验和实际情况建立了基本的项目管理体系,
制定了基本的软件过程管理和控制措施。这
些措施包括:必要的规章制度和纪律、软件
开发过程的论证和定义、人员的分工和培训、
软件过程的阶段评审及用评审结果指导下一
步的工作等。软件开发组织能够重复以前开
发类似软件项目取得的成功。
可重复级的关键过程域包括:需求管理、
软件项目计划、项目跟踪和监督、分包合
同管理、软件质量保证和软件配置管理。
下面介绍各关键过程域要达到的目标和关
键实践活动。
(2)L2可重复级(repeatable)。
(2/8)
(2)L2可重复级(repeatable)(3/8)
需求管理(requirements management)。
建立客户的软件项目需求,并使项目开发人
员与客户对软件需求产生一致的理解。这一
点很重要,因为它是软件项目管理和开发的
基础,在很多场合还需要软件需求工程的支
持。
(2)L2可重复级
(repeatable)(4/8)
软件项目计划(software project planning)。
制定实施软件工程与管理软件项目的工作计
划。主要工作包括:明确任务,估算软件产
品的规模、所需资源和约束条件,估算存在
的风险以及产生项目计划文档等。软件项目
计划是管理软件项目必需的文件和工具。
(2)L2可重复级
(repeatable)(5/8)
软件项目跟踪和监督(software project
tracking and oversight)。根据软件开发计
划管理软件项目,随时掌握软件项目的实际
开发过程。按照项目计划对软件开发的进度
和阶段产品进行跟踪和评审,当软件项目的
执行状况与软件项目计划发生较大偏差时,
管理机构必须采取有效的控制措施,必要时
可根据项目的实际完成情况和结果修订项目
计划。
(2)L2可重复级
(repeatable)(6/8)
软件分包合同管理(software subcontract
management)。根据商业联盟、过程能力
和技术等因素选择高质量的软件承接方来承
接软件项目的部分子项目。制订子项目承接
方的工作任务和项目计划文档,它是主承接
方跟踪检查和监督子项目过程和产品的依据。
(2)L2可重复级
(repeatable)(7/8)
软件质量保证(software quality
assurance)的标准和规程保持一致,对发
现的问题应采取必要措施。评审软件产品和
活动,检验它们是否与应用予以解决。
(2)L2可重复级
(repeatable)(8/8)
软件配置管理(software configuration
management)。保证软件项目生成的产品
在软件生命周期中的完整性。在给定时间点
上确定软件配置(如工作产品及其说明),
系统地控制软件配置的变化并在整个软件生
命周期中维护配置的完整性和可跟踪性。
(3)L3已定义级(defined)(1/9)
已定义级组织的特点是,将管理和工程两
方面的软件过程标准化、文档化和制度化。
软件开发组织已建立自己的软件过程标准,
该组织承接的所有软件项目都是用自己的
软件过程标准或根据项目需要剪裁一个子
集。项目使用的软件过程标准成为项目定
义的软件过程。已定义级的软件组织进行
的软件过程应该是标准的、一致的和稳定
的,软件开发过程中能对项目的成本、进
度和产品的功能、质量进行跟踪和控制。
(3)L3已定义级(defined)(2/9)
已定义级的关键过程域涉及项目和组织两方
面,内容包括:组织级过程焦点、组织级过
程定义、培训大纲、集成化软件管理、软件
产品工程、组间协调和同行评审。
(3)L3已定义级(defined)(3/9)
组织级过程焦点(organization process
focus)。不断提高对组织软件工程和项目软
件过程的认识和理解,围绕过程定义和过程
改进目标及时采取措施,协调、评估、开发
和维护过程改进活动。
(3)L3已定义级(defined)(4/9)
组织级过程定义(organization process
definition)。过程定义的关键实践活动包括:
描述软件生命周期、制定过程剪裁准则和指
南、建立组织级的软件过程数据库及相关文
档库、确定定量过程管理需要的数据、形成
稳定的准则支持组织制定各项规章制度等。
(3)L3已定义级(defined)(5/9)
培训大纲(training program)。通过培训,
提高组织成员个人的知识水平和技能,以便
更好地、更有效地完成工作任务。培训内容
应针对组织、项目和个人的实际需要。根据
培训需求制定培训大纲,包括培训计划、内
容、资料、设备、方式和评价等。
(3)L3已定义级(defined)(6/9)
集成化软件管理(integrated software
management)。集成化软件管理的基础是,
L2的需求管理、软件项目计划、软件项目跟
踪和监督3个关键过程。满足集成化软件管理
的组织应能够按照组织严格定义的过程来计
划和管理一个软件项目
(3)L3已定义级(defined)(7/9)
软件产品工程(software product
engineering)。按照软件工程过程的定义,
有效地开发出稳定的软件工作产品。软件工
作产品指描述软件过程的文档、计划、规程,
计算机程序和数据等,其中的一部分或全部
将交付客户或最终用户。主要活动是描述软
件项目的技术活动,如需求分析、设计、编
码和测试,为软件工作产品建立文档,并保
持它们的可跟踪性和一致性。
(3)L3已定义级(defined)(8/9)
组间协调(intergroup coordination)。软件
过程工作量大,参与的人员多、复杂程度高,
软件产品时效性强,必须有严格的分工和密
切的协作。软件工程小组应特别注意系统需
求、测试等方面的问题,主动与相关小组协
调,因为只有合作攻关才能使项目更好、更
有效地满足客户需求。
(3)L3已定义级(defined)(9/9)
同行评审(peer reviews)。同行专家评审是
一种有效的、重要的工程方法,评审方式有
检查、结构走查等。评审能够加深对软件工
作产品的理解,能够尽早地、有效地排除软
件产品的缺陷。
(5)L5优化级(optimizing)(1/2)
在软件开发过程中,优化级的软件开发组织
能够有效地确定软件过程的优势和薄弱环节,
重视并利用软件开发和维护过程中的反馈直
进行过程和产品质量的定量控制,能够采用
先进的思想、方法、技术不断改进软件过程,
提高组织的软件过程能力。
(4)L4已管理级(managed)(1/2)
已管理级组织的主要特点是,重视软件度量,
注意采集软件过程和产品质量的度量值,对
软件过程和产品有定量的理解,并以此为基
础进行决策和控制。
(4)L4已管理级(managed)(2/2)
已管理级的关键领域包括:定量的过程管理和软件
质量管理。
定量的过程管理(quantitative process management)。
定量地控制项目的软件过程能够达到的实际结果,从而
得到一个稳定的、可定量预测的过程。
软件质量管理(software quality management)。软件
质量管理以产品为中心,目标是定量地评价软件产品的
质量,实现具体的质量目标,满足客户和最终用户的需
要。关键实践活动内容包括:定义软件产品的质量目标,
制定软件质量计划,监督、调整软件质量计划、软件工
作产品、开发活动及目标等。
(5)L5优化级(optimizing)(2/2)
优化级的关键领域包括缺陷的预防、技术更新管理和过程
更改管理。
缺陷的预防(defect prevention)。分析软件项目的缺陷,
确定原因,并采取相应措施预防他们再次发生。缺陷预防
措施常常涉及软件过程的定义、管理和技术的进步等。
技术更新管理(technology change management)。选
择、评价和确定新技术,如工具、方法和过程,并将有效
的技术引入到软件开发组织,以便改进软件质量、提高软
件生产率、缩短软件产品的开发周期。技术更新管理能有
效地改进软件过程。
过程更改管理(process change management)。为提高
软件质量和软件生产率,缩短软件产品的开发周期,必须
不断改进组织中使用的软件过程。过程更改管理应在上级
管理部门的主持下,积极主动且系统地对组织的标准软件
过程和项目定义的软件过程进行改进和创新。
综上所述,自然会得出这样的结论:组织
的成熟度级别越高,其软件开发能力越强,
产品质量越好,效率越高,成本越低。不
同CMM级别的软件开发组织开发一个包含
五十万行程序代码的软件的统计数据如表
所示。
能力成熟度模型CMM
1)CMM的能力成熟度级别及关键过程域
2)成熟度级别的行为特征和关键过程域
3) CMM的关键实践和共同特征
4)能力成熟度的提高和CMM评估
3) CMM的关键实践和共同特征
上面讨论了关键过程域的目标和为了达到这
些目标需要的一组关键实践。关键实践描述
对关键过程域起重要作用的基础设施和实践
活动,应该指出“做什么”,而不具体规定
“怎么做”。有些场合,为便于操作,关键
实践还可以进一步分解。
3) CMM的关键实践和共同特征
关键实践可以从执行约定、执行能力、执行活动、
测量分析和验证实现5个方面进行描述。
执行约定。描述软件开发组织为建立和执行软件过程
采取的措施,包括制定组织策略和构建领导体制等。
执行能力。描述项目或组织成功执行软件过程所必需
的条件,包括资源、组织机构和培训等。
执行活动。描述实现关键过程域所必需的活动,包括
职责分工、制定计划和规程、工作实施、过程跟踪和
反馈等。
测量分析。描述控制和改进软件过程必需的基本测量
实践,包括培训大纲的质量、软件管理的有效性、软
件产品的功能和质量等。
验证实现。描述为检验实际执行的与定义的软件过程
的一致性所采取的措施,包括上级管理部门定期审查、
项目管理部门的监督和软件质量保证活动等。
能力成熟度模型CMM
1)CMM的能力成熟度级别及关键过程域
2)成熟度级别的行为特征和关键过程域
3) CMM的关键实践和共同特征
4)能力成熟度的提高和CMM评估
4)能力成熟度的提高和CMM评估
(1)能力成熟度级别的提高。
(2)CMM评估。
(1)能力成熟度级别的提高
软件过程或软件开发组织按照CMM模型认真
评估并找出优势和差距后,通过有针对性的
自身建设,可以提高能力成熟度等级。逐级
提高的基础和涉及的主要建设内容如图
(2)CMM评估
SEI/CMU制定了项目的软件过程CMM评估方法,该方法
也可以用于组织的软件能力成熟度评价。基于CMM的评
估方法分6个步骤:
① 成立评估小组,小组由软件工程和管理工作经验丰富的
专家组成,小组成员应接受过CMM基本概念和评估方法
的专门培训。
② 参评单位的代表认真填写成熟度问卷调查表,并回答有关
问题。
③ 评估小组分析调查问卷。
④ 评估小组现场访问、召开座谈会、审核过程文档,判断关
键过程域的实践活动是否达到预定目标,并将结论记入文
档。
⑤ 整理调查结果、撰写调查报告,指明软件过程的强项和弱
项。
⑥ 绘制软件关键过程域剖面图,显示是否达到关键过程域的
目标,并向有关部门提交评估的结论性意见。
SEI于2002年8月公布了美国多种行业、不同
规模的1124个软件开发组织的CMM评估结果,
能力成熟度模型集成CMMI的产生
1)能力成熟度模型集成CMMI的产生
2) 阶段式模型和连续式模型
3)CMMI – SE/SW/IPPD 的24个过程域
1)能力成熟度模型集成CMMI的产生
软件能力成熟度模型CMM促进了软件过程的改进,提高了软件开发质量
和生产效率。该模型取得了成功,产生了很大影响,于是,系统工程、
系统安全工程、集成化产品开发等许多工程学科和领域也都参照CMM建
立自己的能力成熟度模型,如SE – CMM、People CMM、IPD – CMM、
FAA - iCMM等。但与此同时,模型的繁衍也导致了模型框架、术语等
方面的矛盾和不一致。当某一工程项目涉及若干个学科和领域后,这种
矛盾就十分突出了。其次,CMM公布后的若干年内,工程环境更加复杂,
工程规模更大,参与工程项目的组织和人员更多,范围更广泛,工程的
施工涉及多学科、交叉学科、并行工程及更多的国际标准。这些新的变
化促使美国国防部、美国国防工业协会和SEI/CMU共同开发一种新的模
型——CMMI(Capability Maturity Model Integration)。CMMI项目
在1998年正式启动。人们希望CMMI是若干过程模型的综合和改进,是
支持多个工程学科和领域的系统的、一致的过程改进框架,能够适应现
代工程的特点和需要,能够提高过程的质量和工作效率。来自业界、政
府部门和SEI/CMU的170人,经过两年的工作于2000年发布第一个
CMMI模型CMMI – SE/SW/IPPD 。CMMI – SE/SW/IPPD 的主
要参考模型是软件学科的SW – CMM、系统工程学科的EIA/IS 731、集
成化产品和过程开发领域的IPD CMM 。CMMI继承了SW – CMM
的阶段式表示法和EIA/IS 731 的连续式表示法。采用两种表示法的原因
是,两种表示法各有优缺点,目前选用一种表示法的时机尚不成熟。软
件学科的两种表示法均采用统一的24个过程域,它们在逻辑上是等价的。
对同一组织采用两种模型分别进行CMMI评估应该得到相同的结论。
阶段式模型和连续式模型
(1)阶段式模型。
(2)连续式模型。
(1)阶段式模型
阶段式模型基本沿袭SW – CMM模型框架,
仍保持5个“成熟度等级”,但过程域作了一
些调整和扩充,
当某一组织通过了某一等级过程域中的全部
过程,即意味着该组织的成熟度达到了这一
等级。随着组织自身建设的加强及相关过程
域成熟度的逐步提高,组织的成熟度等级通
过评估也得到相应的提高。利用阶段式模型
对组织进行成熟度度量,概念清晰、易于理
解、便于操作。
(2)连续式模型
与阶段式模型相比,连续式模型没有与组织成熟度
相关的几个阶段。连续式模型将24个过程域按照功
能划分为过程管理、项目管理、工程和支持4个过
程组。每组包含的过程域如表所示。
连续式模型的过程域强调实践,每个过程域代表组
织某一方面的能力。每个过程域的能力均分为5级,
所有过程域共同的能力等级决定组织的能力等级。
连续式模型允许组织对连续式模型的过程域进行剪
裁,也允许对不同的过程域采用不同的能力等级。
采用这种模式的评估结果用能力特征图表示,能力
特征图通常采用电子表格的形式,如图所示。连续
式模型允许一个过程域出现在多个特征图中,这些
特征图分别代表某种能力的过程域的子集。
3)CMMI – SE/SW/IPPD 的24
个过程域
CMMI – SE/SW/IPPD 的过程域是参照SW –
CMM 和 SE - CMM的过程域建立起来的,数量扩
充为24个,与SW – CMM 的18个关键过程域相比,
CMMI – SE/SW/IPPD 过程域的名称、内涵也
作了调整。CMMI – SE/SW/IPPD 的过程域可
以按照阶段式模型划分,也可以按照连续式模型划
分,这里为了与SW – CMM 的阶段式模型对应,仍
采用阶段式模型的划分方法和次序。因为CMMI对
CMM进行了补充,所以即使CMM中出现同名过程
域,也需要进一步的明确和说明。
1 L2可重复级。(1/3)
需求管理REQM。管理项目的产品需求和产品构件需求。
主要任务是,获取需求承诺,管理需求变更、保持需求的
可跟踪性、正确地理解需求、标识项目实施过程中与需求
不一致的地方。
项目计划PP。制定和维护定义项目活动的计划。主要任务
是,建立和维护项目计划的参数估计、建立和维护项目计
划、获得对计划的承诺。
项目监督和控制PMC。按计划监督项目,管理、纠正存在
的问题。主要任务是,及时提供项目进展情况,当项目进
展偏离计划并达到不能容忍的程度时,采取适当的纠正措
施。监督的内容包括:项目计划参数、项目风险、相关人
员的参与情况、里程碑评审、承诺的实现、数据管理和进
度评审等。
1 L2可重复级。(2/3)
供应商合同管理SAM。建立并执行供应商合同。主
要任务是,分析需求、选择供应商、建立供应商合
同、获取COTS产品、执行合同、对产品进行验收
测试和发放。
度量和分析MA。度量和分析过程的目的是,开发和
维护项目信息管理需要的度量能力。主要任务是:
. 开展度量和分析活动;
.收集数据、分析数据、储存数据和结果、提供度量和分
析结果。
L2可重复级。(3/3)
过程和产品质量保证PPQA。客观地评价过程及其相关的工
作产品,并将报告和记录提供给项目成员和管理部门。主要
任务是,按照过程描述、相关的标准和规程对过程和工作产
品进行评价,找出不一致的地方并形成报告和记录。为了保
证评价的客观性和准确性,组织可以对过程和产品进行独立
监督。
配置管理CM。利用配置标识、配置控制、配置状态报告和
配置审计保持工作产品的完整性。主要任务是:
建立工作产品基线;
跟踪和控制变更;
建立配置管理记录,执行配置审计。
L3已定义级(1/6)
需求开发RD。生成和分析客户、产品和产品构件的需
求。主要任务是,开发客户需求、开发产品需求、分析
和确认需求。
技术解决方案TS。根据“需求”开发、设计和实现问题
求解方案,包括产品、产品构件和开发产品的相关过程。
主要任务是,根据需求选择产品构件的求解方案,在此
基础上进行设计,并将设计开发成产品。
产品集成PI。对产品构件进行组装,生成最终产品并交
付给客(用)户。主要任务是,制定并实施集成策略、
采取必要措施确保接口的兼容性、对构件进行检验、对
产品进行测试及包装。
验证VER。确保选择的工作产品满足特定的需求。主要
任务是,制定并实施验证计划、验证选择的工作产品并
对关键工作产品进行同行评审。对发现的问题指明纠正
措施,对纠正后的产品应确保无副作用。
L3已定义级(2/6)
确认VAL。证实产品或产品构件置于预期环境时
能够满足预期的用途。主要任务是,制定并实施
需求确认计划、产品确认计划,根据客户需求和
产品需求确认产品和产品构件与需求的一致性,
指明存在的差异和缺陷。
组织级过程焦点OPF。建立和维护对组织级过程
和过程资产的理解。主要任务是:
标识、捕捉过程改进机会。主要活动包括:建立组织
级的过程需求、评估组织的过程、标识组织的过程改
进。
计划和实施过程改进活动。主要活动包括:整合组织
资源、总结与国成相关的工作经验、制定和实现过程
行动计划等。
L3已定义级(3/6)
组织级过程定义OPD。建立和维护组织级可用的
过程资产集。主要任务有如下几方面:创建组织
的过程资产,主要活动包括:描述生命周期模型、
建立标准过程、制定剪裁准则和标准;支持过程
资产的使用,主要活动包括:建立组织级度量仓
库、建立组织级过程资产库等。这一过程的事实
将生成生命周期模型、组织级的标准过程、组织
级度量仓库、组织级过程文档库和剪裁准则等。
组织级培训OT。增加开发人员的技能和知识,提
高他们完成本职工作的能力和有效性。主要任务
是,标识培训需求、制定组织的培训内容和计划、
提供培训、记录并评估培训结果。
L3已定义级(4/6)
集成化项目管理IPM。按照集成化、已定义
的过程,管理项目和项目的参与人员。主要
任务有如下两方面:
建立项目过程、利用组织级的过程资源计划项目
活动、集成计划、按计划管理项目、为组织提供
过程资源。
管理项目参与人员、管理依存关系、解决协调问
题。
L3已定义级(5/6)
风险管理RSKM。标识软件生命周期中潜在的问题,
采取必要措施缓解风险的影响。主要任务是,确定
风险源和分类、定义风险参数、制定风险管理策略;
标识和分析风险;拟定并缓解风险。
集成化的团队IT。为完成项目产品的开发和维护,
在组织内将人员按照某种原则和分工,系统地建立
人物组。主要任务是,根据产品需求、集成化的项
目管理要求、项目计划、组织培训能力和组织的实
际情况设置任务组,选调任务组成员,按照组织的
统一部署对任务组实施领导和管理,每个任务组都
应制定具体的工作计划并给出承诺。
L3已定义级(6/6)
决策分析和解决方案DAR。利用结构化方法制定标
准的评价方案,并进行决策。主要任务是,制定评
价标准、制定和使用决策分析指南、选择评价技术、
标识并评价可供选择的方案、选择解决方案等。
组织级集成环境OEI。建立IPPD的组织级平台和过
程资产。主要任务是,通过建立组织共享构想、集
成化工作环境、标识IPPD技能需求活动构建IPPD
平台;通过建立领导机制、激励机制和平衡职责机
制对项目参与人员进行管理。
L4已管理级
组织级过程性能OPP。对组织标准过程级的性能
给出定量的描述,提供过程性能数据、基线和模
型,对组织的项目实施定量的管理。主要任务是,
选择过程、建立过程的性能度量、建立质量和性
能目标、建立过程性能基线和模型。
项目定量管理QPM。为达到已定义项目的质量和
性能指标,对项目过程进行定量管理。主要任务
是,应用统计方法对项目的子过程能力进行度量,
并定量地管理项目过程和产品质量。
L5已优化级
组织级改革和实施OID。选择和实施改革、创新活
动,改善组织的过程和技术,并能够量化和度量。
因果分析和解决方案CAR。标识产生缺陷和问题
的原因,并采取措施预防这些问题再次发生。主
要任务是,选择分析数据,分析产生缺陷和问题
的原因,提出并实现措施建议,评价变更效果并
生成数据记录报告。
CMM和CMMI的选择和应用
SW – CMM是阶段式模型。几千个组织的多年实践表明,SW – CMM
是成功的、有效的。
大家都懂得一个基本的道理:没有组织纪律、没有管理就没有团队。
依靠团队取胜的组织十分关注组织的建设和管理,关注项目的管理及
与此有关的过程域。组织要改变涣散、无序的工作状态,按照软件组
织的特点和要求形成规章制度健全、管理科学、工作规范、团结合作
的氛围和环境,是组织达到二级成熟度。在改善管理的基础上,
CMM模型引导组织进行软件开发和维护过程的定义和标准化,引导
组织制定的软件过程是系统的、科学的和规范的,从而使组织达到三
级成熟度。在改善管理、提高软件过程的基础上,CMM模型引导组
织进行定量的管理。软件不同于硬件,软件过程实施定量管理给组织
带来很大困难,但定量管理提高了组织软件开发管理的水平和科学性,
对在规定的期限和预算内交付高质量的软件产品将起到关键性的作用,
从而使组织达到四级成熟度。在定量管理的基础上,CMM模型引导
组织不断进行过程改进,引导组织及时总结经验、吸取教训,鼓励组
织进行技术创新和改革,是组织具有更强的软件开发能力和产品竞争
能力,从而使组织达到五级成熟度。综上所述,不难看出,CMM模
型具有概念清晰、层次分明、易于操作的优点,为组织负责人和管理
者提供指导组织逐步成熟的、明确的、有效的单一路途。
虽然CMM有很多优点,但其缺点也是明显的。
首先,在阶段式模型中,属于较高级别成熟
度的过程域不支持较低级别的过程域,如在
L2级就无法安排属于L3级的“同行评审”过
程域的实践活动。其次,CMM过程域的度量
只有通过或不通过,度量比较粗糙,没有反
映优势和一般。
CMMI模型的应用
CMMI – SE/SW和CMMI – SE/SW/IPPD模型综合了系统
工程、软件工程、集成化产品和过程开发3个过程改进模
型,综合了阶段式和连续式两种结构。组织的成熟度评价
和项目的软件过程能力评估系统性更强、适应范围更大。
CMMI提供了24个过程域,组织可根据自身情况或项目的
特点进行剪裁。过程域采用0至5的记分法则,过程域成熟
度的评估比较准确,能反应过程域的实际情况,特别是优
势和不足。如有必要,24个相关过程域可以互相支持,不
受成熟度等级的限制。按照某种需要抽取过程域,确定成
熟度等级,建立能力特征图,并按此组织实践活动,进行
评审和上报。能力特征图比任何单项数据更有说服力。组
织若取24个过程域作为横坐标,取它们的成熟度等级作为
纵坐标。就可指定一份组织过程域的“谱图”。“谱图”
直观地反映了当前组织过程成熟度的优势和不足,组织可
以根据需要采取多条途径进行建设。“谱图”对项目过程
度量和竞争项目合同具有重要意义和价值。
CMMI模型的应用
CMMI的缺点是明显的。CMMI是两种结构、
三种模型的综合,在这些结构和模型尚处发
展阶段,还不十分成熟的情况下,CMMI模型
由于照顾各方面的意见而显得复杂、臃肿,
给使用和评估带来困难。
CMMI模型的应用
综上所述,CMM和CMMI是提高组织的成熟
度和软件过程能力的有效模型和工具,一个
软件组织无论是采用CMM模型还是采用
CMMI模型,无论是使用阶段式模型还是使用
连续式模型,都能提高组织的成熟度,都能
提高项目的软件过程能力,用两种模型或两
种方法评价的结论应该是基本一致的。
小结
这一章首先介绍了CMM模型产生的历史背景、
概念和框架以及应用和评估,然后介绍了
CMM模型的进一步发展——CMMI,并分析
了CMM和CMMI的共同点和差异。CMM模型
是软件工程领域广泛应用管理科学的重要标
志。CMM模型的推广和应用表明,管理科学
“全面质量管理”的理论正在逐步为软件产
业所接受。