1、能力成熟度模型(能力成熟度模型(CMM)软件过程改进指南软件过程改进指南 Watts S.Humphrey The Capability Maturity ModelGuidelines for Improving the Software Process第第3章章 能力成熟度模型的结构能力成熟度模型的结构n3.0 引言引言n3.1 成熟度级别的内部结构成熟度级别的内部结构n3.2 成熟度级别成熟度级别n3.3 关键过程域关键过程域n3.4 关键实践关键实践n3.5 共同特性共同特性3.0 引言引言nCMM是一个框架,它表示的是推荐给是一个框架,它表示的是推荐给那些想增强软件过程能力的软件组织
2、的那些想增强软件过程能力的软件组织的一条过程一条过程改进途径改进途径。CMM是一个是一个描述描述模型模型,它描述的是具有某个成熟度级别,它描述的是具有某个成熟度级别的软件组织所具有的主要(关键的软件组织所具有的主要(关键)属性。属性。它也是一个它也是一个规范模型规范模型,它的详细实践表,它的详细实践表征了对从事大型项目开发的组织在政府征了对从事大型项目开发的组织在政府合同关系中所期望的规范行为类型。合同关系中所期望的规范行为类型。nCMM相当抽象,以便不过分地限制一相当抽象,以便不过分地限制一个组织如何实现软件过程。个组织如何实现软件过程。CMM描述描述了软件过程中通常所期望的东西,而了软件过
3、程中通常所期望的东西,而没有涉及如何实现这些过程。没有涉及如何实现这些过程。CMM的的这些操作的详细描述与支持这些操作的详细描述与支持CMM的应的应用方式有关。这些方式包括如下用方式有关。这些方式包括如下五种五种:l评估小组使用评估小组使用CMM确定一个软件组织所具有的优确定一个软件组织所具有的优点和薄弱环节。点和薄弱环节。l评价小组使用评价小组使用CMM确定选择不同合同商可能导致确定选择不同合同商可能导致的风险,据此签定合同,并监督合同的实施。的风险,据此签定合同,并监督合同的实施。l估价方法的开发者使用估价方法的开发者使用CMM去开发其它的基于去开发其它的基于CMM的估价办法,以满足具体需
4、要(例如,间的估价办法,以满足具体需要(例如,间歇剖面图方法【歇剖面图方法【Whitney94】)。】)。l高层管理部门使用高层管理部门使用CMM去了解组织施展软件过程去了解组织施展软件过程改进程序所必需的活动。改进程序所必需的活动。l技术人员和过程改进小组,例如技术人员和过程改进小组,例如SEPG,使用,使用CMM作为定义和改进组织中软件过程的指南。作为定义和改进组织中软件过程的指南。n因为因为CMM有不同的用途,所以必须将适有不同的用途,所以必须将适度分解,以便能够从成熟度级别结构中导度分解,以便能够从成熟度级别结构中导出实际过程建议。这种分解还要标识出刻出实际过程建议。这种分解还要标识出
5、刻画软件过程成熟度和软件过程能力的关键画软件过程成熟度和软件过程能力的关键过程及其结构。过程及其结构。3.1成熟度级别的内部结构成熟度级别的内部结构 n每一个成熟度级别都分解成多个组成部分。每一个成熟度级别都分解成多个组成部分。如如图图3-1所示,除了第所示,除了第1级,每一个成熟级别级,每一个成熟级别都从一个摘要综述开始,最后到关键实践的都从一个摘要综述开始,最后到关键实践的操作定义。每一个成熟度级别由几个关键过操作定义。每一个成熟度级别由几个关键过程域组成,每一个关键过程域由称为共同特程域组成,每一个关键过程域由称为共同特性的五个部分组成。这些共同特性包括了关性的五个部分组成。这些共同特性
6、包括了关键实践,这些关键实践都得以实现后,就实键实践,这些关键实践都得以实现后,就实现了关键过程域的目标。现了关键过程域的目标。成熟度级别关键过程域共同特性关键实践包含由共同特性组成包含描述论述达到表明过程能力目标实现或制度化活动或基础设施图3.1a CMM结构CMM成熟度 级别关键过程域1关键过程域2关键过程域n共同特性 目 标 执行活动 测量和分析 验证执行 执行约定 执行能力关键实践关键过程域1图3.1b CMM结构3.2成熟度级别成熟度级别 n一个成熟度级别是向达到成熟软件过程进化途一个成熟度级别是向达到成熟软件过程进化途中的一个严格定义的平台。中的一个严格定义的平台。CMM的顶层结构
7、的顶层结构是五个成熟度级别。是五个成熟度级别。每一个成熟度级别表示了一种过程能力水平。每一个成熟度级别表示了一种过程能力水平。因为软件过程能力说明了组织遵循一个软件过因为软件过程能力说明了组织遵循一个软件过程所能达到的期望结果的范围,所以组织的软程所能达到的期望结果的范围,所以组织的软件过程能力提供了一种预计该组织承担下一个件过程能力提供了一种预计该组织承担下一个项目时最可能的结果的手段。例如,在级别项目时最可能的结果的手段。例如,在级别2,通过建立有效的项目管理控制,一个机构的过通过建立有效的项目管理控制,一个机构的过程能力可以从混乱变为有序。程能力可以从混乱变为有序。3.3关键过程域关键过
8、程域 n除了级别除了级别1,每个成熟度级别都包含几个关键,每个成熟度级别都包含几个关键过程域,表明一个组织应当关注这些域以改过程域,表明一个组织应当关注这些域以改进其软件过程。关键过程域标识出了实现一进其软件过程。关键过程域标识出了实现一个成熟度级别所必须涉及的问题。如果组织个成熟度级别所必须涉及的问题。如果组织处于级别处于级别3,它必须解决好级别,它必须解决好级别2和级别和级别3中中(注(注1)的所有关键过程域中的问题。)的所有关键过程域中的问题。n(注注1:有一个例外,在组织没有进行任何分包:有一个例外,在组织没有进行任何分包时,不需应用时,不需应用软件分包管理软件分包管理关键过程区域。关
9、键过程区域。)n每一个关键过程域都标识了一套相应的每一个关键过程域都标识了一套相应的活动,共同地完成这些活动,就达到了活动,共同地完成这些活动,就达到了对增强过程能力认为是重要的一组目标。对增强过程能力认为是重要的一组目标。图图3.2显示了每一个成熟度级别所包含的显示了每一个成熟度级别所包含的关键过程域。对于基于不同应用领域及关键过程域。对于基于不同应用领域及环境的不同项目,达到关键过程域目标环境的不同项目,达到关键过程域目标的途径也不同。然而,对满足关键过程的途径也不同。然而,对满足关键过程域的组织而言,该关键过程域的所有目域的组织而言,该关键过程域的所有目标都必须实现。标都必须实现。需求管
10、理,需求管理,软件项目策划,软件项目策划,软件项目跟踪与监督,软件项目跟踪与监督,软件子合同管理,软件子合同管理,软件质量保证,软件质量保证,软件配置管理软件配置管理组织过程焦点,组织过程焦点,组织过程定义,组织过程定义,培训大纲培训大纲,集成软件管理,集成软件管理,软件产品工程,软件产品工程,组间协调,组间协调,同行评审同行评审缺陷预防,缺陷预防,技术更新管理,技术更新管理,过程变更管理过程变更管理定量过程管理,定量过程管理,软件质量管理软件质量管理初始级初始级可重复级可重复级已定义级已定义级已管理级已管理级优化级优化级图3.2 成熟度级别中的关键过程域n形容词形容词“关键关键”意味着要达到
11、一个成熟意味着要达到一个成熟度级别,有一些过程领域(或过程)并度级别,有一些过程领域(或过程)并不是不是“关键关键”的。的。CMM没有描述与开没有描述与开发和维护软件有关的所有过程领域,而发和维护软件有关的所有过程领域,而仅仅描述了那些对软件能力起决定作用仅仅描述了那些对软件能力起决定作用的过程领域。的过程领域。n关键过程域体现了该成熟度级别的要求。关键过程域体现了该成熟度级别的要求。为了达到一个成熟度级别,那个级别为了达到一个成熟度级别,那个级别(以及较低级别)的关键过程域必须得(以及较低级别)的关键过程域必须得到满足,并且过程必须实现制度化。到满足,并且过程必须实现制度化。n每个关键过程域
12、的每个关键过程域的目标目标概括了它的关键概括了它的关键实践,可以用来判断一个组织或项目是实践,可以用来判断一个组织或项目是否有效地实现了关键过程域。目标说明否有效地实现了关键过程域。目标说明了每一个关键过程域的作用范围、界限了每一个关键过程域的作用范围、界限和意图。在一个具体的项目或组织环境和意图。在一个具体的项目或组织环境中要调整关键过程域的关键实践,可以中要调整关键过程域的关键实践,可以根据关键过程域的目标判断这种调整是根据关键过程域的目标判断这种调整是否合理。类似地,在评价实现关键过程否合理。类似地,在评价实现关键过程域的替代方法是否恰当时,可使用目标域的替代方法是否恰当时,可使用目标来
13、确定这种方法是否符合关键过程域的来确定这种方法是否符合关键过程域的意图。意图。3.3.1 级别2的关键过程域 n级别级别2的关键过程域关注那些与建立基的关键过程域关注那些与建立基本的项目管理控制有关的软件项目问题。本的项目管理控制有关的软件项目问题。n共有共有6个关键过程域个关键过程域1.需求管理需求管理的目的是在客户和解决客户需求的软件的目的是在客户和解决客户需求的软件项目之间建立对客户需求的共同理解。这种与客项目之间建立对客户需求的共同理解。这种与客户间的一致是计划和管理软件项目的基础。户间的一致是计划和管理软件项目的基础。为开发出令客户满意的软件,对客户需求的理解为开发出令客户满意的软件
14、,对客户需求的理解是非常必要的。评审分配给软件的需求,并与客是非常必要的。评审分配给软件的需求,并与客户(无论是内部的还是外部的)进行磋商,是需户(无论是内部的还是外部的)进行磋商,是需求理解活动的一部分。求理解活动的一部分。由于客户需求常常会发展和改变,用文档记录并由于客户需求常常会发展和改变,用文档记录并控制客户需求,就成了在软件生命周期中使用这控制客户需求,就成了在软件生命周期中使用这些需求对软件项目活动进行估计、计划、执行和些需求对软件项目活动进行估计、计划、执行和追踪的前提。追踪的前提。2.软件项目计划软件项目计划的目的是为实施软件工程的目的是为实施软件工程与管理软件项目而制定合理的
15、计划。建与管理软件项目而制定合理的计划。建立合理的计划的基础是对要完成的工作立合理的计划的基础是对要完成的工作做出的切合实际的估计,以及为完成该做出的切合实际的估计,以及为完成该工作建立必要的约定。他们是从工作说工作建立必要的约定。他们是从工作说明、约定和目标开始的,它们定义和限明、约定和目标开始的,它们定义和限定了软件项目。软件计划过程包括如下定了软件项目。软件计划过程包括如下步骤:估计软件工作产品和所需资源的步骤:估计软件工作产品和所需资源的大小,制定进度表,识别并评估软件风大小,制定进度表,识别并评估软件风险,以及协商约定。计划作为管理软件险,以及协商约定。计划作为管理软件项目的必需工具
16、,被文档化和维护项目的必需工具,被文档化和维护。3.软件项目跟踪和监督软件项目跟踪和监督的目的是对实际进的目的是对实际进展有一个清晰的可见性,以便于当软件展有一个清晰的可见性,以便于当软件项目效能与软件计划有重大偏差时,管项目效能与软件计划有重大偏差时,管理部门能采取有效的行动。理部门能采取有效的行动。软件项目的管理应当基于软件开发计划。软件项目的管理应当基于软件开发计划。管理活动包括对照计划跟踪和评审软件管理活动包括对照计划跟踪和评审软件完成情况和结果,并根据实际完成情况完成情况和结果,并根据实际完成情况和结果采取必要的修正措施。措施可能和结果采取必要的修正措施。措施可能包括修订软件开发计划
17、以反映实际完成包括修订软件开发计划以反映实际完成情况,重新计划剩余的工作,和情况,重新计划剩余的工作,和/或采取或采取措施去改进效能。措施去改进效能。4.软件分包合同管理软件分包合同管理的目标是选择合格的的目标是选择合格的分承包方,并对他们进行有效的管理。分承包方,并对他们进行有效的管理。分承包方选择是基于完成工作的能力,分承包方选择是基于完成工作的能力,但是有许多因素对分包合同的决定有影但是有许多因素对分包合同的决定有影响。可能根据策略性商务联合、过程能响。可能根据策略性商务联合、过程能力和技术方面的考虑来选择分承包方。力和技术方面的考虑来选择分承包方。由分承包方完成的工作以及工作计划应由分
18、承包方完成的工作以及工作计划应当以文档提供,主承包方依照这些计划当以文档提供,主承包方依照这些计划对分承包方的工作进行监督。对分承包方的工作进行监督。5.软件质量保证软件质量保证的目标是为管理人员对软的目标是为管理人员对软件项目正在使用的过程和正在生产的产件项目正在使用的过程和正在生产的产品提供适当的可见性。品提供适当的可见性。达到这种可见性的途径,是通过评审和达到这种可见性的途径,是通过评审和审核软件产品和活动去验证它们与应用审核软件产品和活动去验证它们与应用的标准和规程一致性。一致性问题首先的标准和规程一致性。一致性问题首先在软件项目内部处理并尽可能地解决。在软件项目内部处理并尽可能地解决
19、。对于在软件项目内部不能解决的问题,对于在软件项目内部不能解决的问题,由软件质量保证组逐步向上提出这些问由软件质量保证组逐步向上提出这些问题以便进行适当解决。题以便进行适当解决。6.软件配置管理软件配置管理的目标,是在软件生命周的目标,是在软件生命周期中建立和维护软件项目产品的完整性期中建立和维护软件项目产品的完整性(统一性)。(统一性)。达到工作产品完整性的途径,是在给定达到工作产品完整性的途径,是在给定的时间结点标识软件配置(即所选的软的时间结点标识软件配置(即所选的软件工作产品及其描述)、系统地控制配件工作产品及其描述)、系统地控制配置变化,以及在整个软件生命周期中保置变化,以及在整个软
20、件生命周期中保持配置的完整性和可跟踪性。当软件基持配置的完整性和可跟踪性。当软件基线开发出来后,将它们保存在软件基线线开发出来后,将它们保存在软件基线库中。通过软件配置管理的变化控制和库中。通过软件配置管理的变化控制和配置审核功能,系统地控制软件基线的配置审核功能,系统地控制软件基线的变更和从软件基线库所生成的软件产品变更和从软件基线库所生成的软件产品的发布。的发布。3.3.2 级别3的关键过程域 n级别级别3的关键过程域涉及项目和组织两的关键过程域涉及项目和组织两方面的问题,因为组织建立基础设施,方面的问题,因为组织建立基础设施,使得所有项目中有效的软件工程和管理使得所有项目中有效的软件工程
21、和管理过程实现制度化。过程实现制度化。1.组织过程焦点组织过程焦点的目标,是组织建立关于的目标,是组织建立关于改进它的整体软件过程能力的软件过程改进它的整体软件过程能力的软件过程活动的职责。活动的职责。持续的过程改进包括建立和维护对组织持续的过程改进包括建立和维护对组织的和项目的软件过程的理解,协调有关的和项目的软件过程的理解,协调有关评估、开发、维护和改进这些过程的活评估、开发、维护和改进这些过程的活动。慎重地使用动。慎重地使用“协调协调”这个词的目的这个词的目的是强调实施过程的人必定与过程的定义是强调实施过程的人必定与过程的定义和改进密切相关,尽管组织提供了长期和改进密切相关,尽管组织提供
22、了长期的约定和资源去协调现在及未来的软件的约定和资源去协调现在及未来的软件项目中软件过程的开发和维护活动。项目中软件过程的开发和维护活动。2.组织过程定义组织过程定义的目标是开发和维护一套软件的目标是开发和维护一套软件过程资源,可用于改进所有项目的过程效能,过程资源,可用于改进所有项目的过程效能,并为量化过程管理时定义有意义的数据提供并为量化过程管理时定义有意义的数据提供基础。这些资源提供了一组稳定的基本原则,基础。这些资源提供了一组稳定的基本原则,并通过诸如培训等机制可以使其成为制度。并通过诸如培训等机制可以使其成为制度。过程定义包括开发和维护组织的标准软件过过程定义包括开发和维护组织的标准
23、软件过程,以及相关的过程资源,例如软件生命周程,以及相关的过程资源,例如软件生命周期的描述,过程裁剪指南和准则,组织的软期的描述,过程裁剪指南和准则,组织的软件过程数据库,以及与软件过程相关的文档件过程数据库,以及与软件过程相关的文档库。可以用多种方式收集这些资源,例如,库。可以用多种方式收集这些资源,例如,软件生命周期的描述可以是组织的标准软件软件生命周期的描述可以是组织的标准软件过程的一个组成部分。在这个关键过程域中过程的一个组成部分。在这个关键过程域中提供的分类方法概括了需要涉及的过程定义提供的分类方法概括了需要涉及的过程定义的方方面面。的方方面面。3.培训程序(大纲)培训程序(大纲)的
24、目标是提高工作人员的的目标是提高工作人员的技能和知识,使之能高效率地执行他们的任技能和知识,使之能高效率地执行他们的任务。培训是软件开发组织的责任,但是当项务。培训是软件开发组织的责任,但是当项目有特别需要时,软件项目有责任识别所需目有特别需要时,软件项目有责任识别所需技术并提供必要的培训。技术并提供必要的培训。一个培训程序首先识别组织、项目和个人的一个培训程序首先识别组织、项目和个人的培训需求,然后开发和寻找能满足这些需求培训需求,然后开发和寻找能满足这些需求的培训内容。在一个特定的时候项目和个人的培训内容。在一个特定的时候项目和个人的需要可能是特定的,但是可以根据组织的的需要可能是特定的,
25、但是可以根据组织的标准软件过程中特殊的角色和职责确定所需标准软件过程中特殊的角色和职责确定所需的培训。有些技术可以通过非正式的手段传的培训。有些技术可以通过非正式的手段传授,例如咨询。有些技术需要更正式的培训授,例如咨询。有些技术需要更正式的培训手段,如课堂培训。手段,如课堂培训。4.集成软件管理集成软件管理的目标是将软件工程和管理活的目标是将软件工程和管理活动集成为一个密切相关、定义完整的软件过动集成为一个密切相关、定义完整的软件过程。该过程是通过裁剪组织的标准软件过程程。该过程是通过裁剪组织的标准软件过程和相关过程资源而得到的。这种剪裁是基于和相关过程资源而得到的。这种剪裁是基于项目的业务
26、环境和技术需要。项目的业务环境和技术需要。该关键过程域是由级别该关键过程域是由级别2的软件项目计划和软的软件项目计划和软件项目跟踪和监督两个关键实践,利用级别件项目跟踪和监督两个关键实践,利用级别3建立的组织的基础设施演化而来的。满足集建立的组织的基础设施演化而来的。满足集成软件管理意味着软件项目的计划和管理,成软件管理意味着软件项目的计划和管理,是根据一个基于组织的软件过程资源而建立是根据一个基于组织的软件过程资源而建立的严格定义的过程。的严格定义的过程。5.软件产品工程软件产品工程的目标是始终执行严格定的目标是始终执行严格定义的、综合了所有的软件工程活动的工义的、综合了所有的软件工程活动的
27、工程过程,高效地生产出正确而一致的软程过程,高效地生产出正确而一致的软件产品。软件产品工程描述了项目的技件产品。软件产品工程描述了项目的技术活动,例如,需求分析,设计,编制术活动,例如,需求分析,设计,编制代码和测试。代码和测试。这些工程过程包括软件工作产品记录归这些工程过程包括软件工作产品记录归档,并保持它们的可追踪性和一致性。档,并保持它们的可追踪性和一致性。这不仅为软件在不同生命周期阶段之间这不仅为软件在不同生命周期阶段之间的转变控制提供了必要的保证,而且为的转变控制提供了必要的保证,而且为向客户提供高质量的软件产品提供了基向客户提供高质量的软件产品提供了基础。础。6.组间协调组间协调的
28、目标是建立一种工作方式,使的目标是建立一种工作方式,使软件工程组与别的工程组积极协作,以便软件工程组与别的工程组积极协作,以便项目能更有效地满足客户需求。项目能更有效地满足客户需求。软件工程组必须针对系统级的需求、目标软件工程组必须针对系统级的需求、目标和问题,主动与项目的其它工程组合作。和问题,主动与项目的其它工程组合作。概念上说这是联合产品组或合作工程的某概念上说这是联合产品组或合作工程的某种形式。任何情况下,对技术工作界面和种形式。任何情况下,对技术工作界面和相互影响需要计划和管理,以确保整个系相互影响需要计划和管理,以确保整个系统的质量和完整。所有的工程组应当了解统的质量和完整。所有的
29、工程组应当了解各组的状态和计划,系统和组间的问题应各组的状态和计划,系统和组间的问题应该给予足够的重视。该给予足够的重视。7.同行评审同行评审的目标是尽早和有效地消除软的目标是尽早和有效地消除软件工作产品中的缺陷。件工作产品中的缺陷。同行评审的重要作用是能更好地理解软同行评审的重要作用是能更好地理解软件工作产品以及可预防的缺陷。同行评件工作产品以及可预防的缺陷。同行评审是一个有效的和重要的工程方法,可审是一个有效的和重要的工程方法,可以通过审查、结构式走查或是一些其它以通过审查、结构式走查或是一些其它的集体评审方法完成。的集体评审方法完成。3.3.3 级别4的关键过程域 n级别级别4的关键过程
30、域关注对软件过程及的关键过程域关注对软件过程及其软件产品建立量化的理解。其软件产品建立量化的理解。n量化过程管理量化过程管理的目标是定量地控制软件的目标是定量地控制软件项目的软件过程效能。项目的软件过程效能。软件过程效能描述遵循软件过程所能实软件过程效能描述遵循软件过程所能实现的实际软件结果。任何过程都有随机现的实际软件结果。任何过程都有随机变量(噪声)。一个稳态过程的过程效变量(噪声)。一个稳态过程的过程效能通常在已知范围(即定量过程能力)能通常在已知范围(即定量过程能力)内。当软件过程效能处于这些范围之外内。当软件过程效能处于这些范围之外时,需要找出噪声变量的时,需要找出噪声变量的“具体原
31、因具体原因”,并在合适的地方修正产生此暂态变量的并在合适的地方修正产生此暂态变量的环境。当关键过程域得到满足时,得到环境。当关键过程域得到满足时,得到了一个稳态的、可定量预测的过程。了一个稳态的、可定量预测的过程。n软件质量管理软件质量管理的目标是建立对项目软件的目标是建立对项目软件产品质量的量化理解,达到具体的质量产品质量的量化理解,达到具体的质量目标。目标。为软件产品建立量化目标是基于组织、为软件产品建立量化目标是基于组织、客户和最终用户的需要。为了实现这些客户和最终用户的需要。为了实现这些目标,组织制订策略和计划,项目调整目标,组织制订策略和计划,项目调整它定义的软件过程。软件质量管理是
32、以它定义的软件过程。软件质量管理是以产品为中心的,量化过程管理是以过程产品为中心的,量化过程管理是以过程为中心的。为中心的。3.3.4 级别5的关键过程域 n级别级别5的关键过程域包括组织和项目两的关键过程域包括组织和项目两者,为实现持续的、可测量的软件过者,为实现持续的、可测量的软件过程改进所需解决的问题。程改进所需解决的问题。n缺陷预防缺陷预防的目标是识别缺陷原因,并且的目标是识别缺陷原因,并且防止它们的再次发生。防止它们的再次发生。软件项目分析缺陷,识别原因,采取措软件项目分析缺陷,识别原因,采取措施防止缺陷再次发生。这常常要改变项施防止缺陷再次发生。这常常要改变项目的定义的软件过程。分
33、析原因后也可目的定义的软件过程。分析原因后也可能更改组织的标准软件过程的要素以控能更改组织的标准软件过程的要素以控制变化的共同原因。缺陷预防是一种以制变化的共同原因。缺陷预防是一种以进化方法逐步改进软件过程的机制。进化方法逐步改进软件过程的机制。n技术更新管理技术更新管理的目标是找出有用的新技的目标是找出有用的新技术(即工具、方法和过程),以一种有术(即工具、方法和过程),以一种有序的方式将其引进到组织中。序的方式将其引进到组织中。技术转变的重点是识别、选择和评价新技术转变的重点是识别、选择和评价新技术,将有效的技术引进到机构中,改技术,将有效的技术引进到机构中,改进软件质量,提高生产力,缩短
34、产品开进软件质量,提高生产力,缩短产品开发周期。这种活动的结果是在新技术层发周期。这种活动的结果是在新技术层出不穷的世界里实现有效的革新。技术出不穷的世界里实现有效的革新。技术更新管理是以一种革命性的方式来改进更新管理是以一种革命性的方式来改进软件过程。软件过程。n过程变更管理过程变更管理的目标是持续改进组织所的目标是持续改进组织所用的软件过程,以改进软件质量,提高用的软件过程,以改进软件质量,提高软件生产率,缩短产品开发周期。软件生产率,缩短产品开发周期。持续的过程改进包括定义过程改进目标,持续的过程改进包括定义过程改进目标,在高级管理部门支持下,主动地和系统在高级管理部门支持下,主动地和系
35、统地识别、评价和实施对组织标准软件过地识别、评价和实施对组织标准软件过程和项目定义的软件过程的改进。过程程和项目定义的软件过程的改进。过程变更管理既有逐步的演变,也有创新的、变更管理既有逐步的演变,也有创新的、革命性的的变化。革命性的的变化。3.4关键实践 n每一个关键过程域都用关键实践描述。每一个关键过程域都用关键实践描述。关键实践描述对关键过程域的有效实现关键实践描述对关键过程域的有效实现和制度化至关重要的活动和基础设施。和制度化至关重要的活动和基础设施。随着组织达到更高的成熟度级别,关键随着组织达到更高的成熟度级别,关键过程域中要执行的具体实践也会发展变过程域中要执行的具体实践也会发展变
36、化。例如,正如在级别化。例如,正如在级别3中的集成软件中的集成软件管理关键过程域中所描述的,级别管理关键过程域中所描述的,级别2中中软件项目计划关键过程域描述的许多项软件项目计划关键过程域描述的许多项目估计能力,必须演变为能处理在级别目估计能力,必须演变为能处理在级别3有用的附加项目数据。有用的附加项目数据。n关键实践描述要做关键实践描述要做“什么什么”,而不得被,而不得被解释为规定过程应当解释为规定过程应当“怎样怎样”实现。其实现。其它替代实践也可以达到关键过程域的目它替代实践也可以达到关键过程域的目标。必须合理地解释关键实践,以判断标。必须合理地解释关键实践,以判断关键过程域的目标是否被有
37、效地实现,关键过程域的目标是否被有效地实现,尽管实现方法也许不同。尽管实现方法也许不同。CMM的关键的关键实践在本书的第实践在本书的第7-10章描述。章描述。n每一个关键实践由一个单独的句子组成,每一个关键实践由一个单独的句子组成,后面常常有更详细的描述信息,可能包后面常常有更详细的描述信息,可能包括例子和详细阐述。这些关键实践描述括例子和详细阐述。这些关键实践描述对关键过程域的有效实现和制度化至关对关键过程域的有效实现和制度化至关重要的基础设施和活动。在关键实践的重要的基础设施和活动。在关键实践的下面要提供更为详细的子实践,作为解下面要提供更为详细的子实践,作为解释关键实践充分实现的指南。合
38、适时也释关键实践充分实现的指南。合适时也要提供相关的例子、定义和实践间的相要提供相关的例子、定义和实践间的相互参照。互参照。3.5共同特性 n为了方便,用共同特性将描述关键过程为了方便,用共同特性将描述关键过程域的关键实践组织起来。共同特性是表域的关键实践组织起来。共同特性是表明一个关键过程域的实现和制度化是否明一个关键过程域的实现和制度化是否有效、可重复和持久的属性。共有五个有效、可重复和持久的属性。共有五个共同特性:共同特性:n执行约定执行约定 执行约定描述组织必须采取的措施,为执行约定描述组织必须采取的措施,为的是确保过程的建立和能得以持续。执的是确保过程的建立和能得以持续。执行约定通常
39、包括建立组织策略和领导关行约定通常包括建立组织策略和领导关系。系。n执行能力执行能力 执行能力描述项目或组织要充分地实现执行能力描述项目或组织要充分地实现软件过程必须具备的前提条件。执行能软件过程必须具备的前提条件。执行能力通常包括资源、组织设施和培训。力通常包括资源、组织设施和培训。n执行活动执行活动 执行活动描述实现一个关键过程域所必要的执行活动描述实现一个关键过程域所必要的活动、角色(活动、角色(roles)和规程。执行活动通常)和规程。执行活动通常包括建立计划和规程、执行、跟踪,必要时包括建立计划和规程、执行、跟踪,必要时采取纠正措施。采取纠正措施。n测量和分析测量和分析 测量和分析描
40、述确定过程有关的状态所需的测量和分析描述确定过程有关的状态所需的基本测量实践。这些测量用于控制和改进过基本测量实践。这些测量用于控制和改进过程。测量和分析通常包括可以采用的测量例程。测量和分析通常包括可以采用的测量例子。子。n验证实现验证实现 验证实现描述为确保执行的活动与建立验证实现描述为确保执行的活动与建立的过程相一致而采取的步骤。典型内容的过程相一致而采取的步骤。典型内容包括管理部门和质量保证组实施的评审包括管理部门和质量保证组实施的评审和审核。和审核。在共同特性在共同特性执行活动执行活动中的实践,描述建中的实践,描述建立一种过程能力必须实现什么。作为一立一种过程能力必须实现什么。作为一个整体的其他实践作为基础,使得组织个整体的其他实践作为基础,使得组织能够将能够将执行活动执行活动共同特性中描述的实践共同特性中描述的实践制度化。制度化。第3章n结束