1、第部分 CMMI模型 切萨皮克海湾(Chesapeake Bay)是非常富饶的经济区,但也是脆弱的生态系统。要使它得到最佳利用和可持续发展,需要对人和自然之间的复杂关系有所理解。 类似的,CMMI产品也是复杂的结构,且含有多个层次的信息。为了获取最大效益,CMMI用户需要知道这些信息层次之间某些微妙且复杂的关系。 在本书的第部分,我们将讨论CMMI的结构和组件,目的就是让读者更清楚地理解如何构造CMMI和这些构件是如何联系在一起,以及如何作为一个整体来进行集成化连续改进。,本部分包括: 第3章 CMMI的概念向读者介绍CMMI 它的内容、目标、范围、成果和历史。第4章 CMMI的内容讲述在CM
2、MI模型中出现的各种元素与资料,讨论这些元素与资料的相对重要性,并说明资料的位置。第5章 CMMI的表示法介绍两种模型表示法:阶段式(staged)和连续式(continuous)。解释如何在CMMI项目中实现这两种表示法,并讨论连续式表示法如何近似地表示阶段式表示法。,第6章 度量改进的CMMI维解释CMMI模型(两种表示法)指导和度量过程改进的方式,说明了能力和成熟度维,介绍了共性实践的概念并解释它们在CMMI中的作用。第7章 CMMI的过程域详细介绍描述了CMMI过程维,以便实践人员能理解目标、实践和改进维间的关系。,第3章 CMMI的概念 It must be remembered t
3、hat there is nothing more difficult to plan,more uncertain of success, nor more dangerous to manage than the creation of a new order of things. For the initiator has the enmity of all who would profit by the preservation of the old institutions, and merely lukewarm defenders in those who would gain
4、by the new order. Machiavelli,The Prince(1513)In this age, which believes that there is a short cut to everything,the greatest lesson to be learned is that the most difficult way is, in the long run, the easiest. Henry Miller,The Books in My life(1957),运用两个或多个单学科模型可以实现一个组织的连续改进。然而,只用一个涉及多个学科的模型却有许多优
5、点。正由于这个原因,美国国防部特别是国防部采办、技术和后勤部门与美国国防工业协会(the National Defense Industrial Association,NDIA)共同合作,发起了能力成熟度模型集成(CMMI)的开发。 2000年,在Carnegie Mellon大学的软件工程研究所(the Software Engineering Institute,SEI)的不懈努力下,产生了第一个集成化CMMI模型,还附带了相关的评估和培训资料;2002年又发布了CMMI的1.1版,2006年则发布了1.2版。 本章首先概述CMMI模型中信息和指导的种类;对于不熟悉源模型的人,本章提供了
6、对CMMI的范围和用途的介绍。在概述结束后,本章讨论了CMMI的目标和历史。接下来,本章介绍了用于创建CMMI的源模型的相关信息。最后,本章描述了CMMI项目组织结构。,3.1 CMMI概述 CMMI产品套件含有大量的信息和指导,以帮助组织改进其过程。但是,这些信息是如何提供帮助的呢?为了回答这一问题,我们注意到在CMMI模型中主要包含了两类内容:(1) 用于帮助评估过程内容的资料对技术、支持和管理活动必不可少的信息。(2) 用于改进过程性能的资料用于提高组织的活动能力的信息。,3.1.1 过程内容 CMMI为管理过程提供了指导。例如: 应建立并维护一个计划以管理您的工作,确保所有相关人员都承
7、诺执行和支持该计划。 制定该计划时,应严格确定如何对成本、进度和产品的估算进行开发和维护。 按计划展开工作时,需要对照计划以比较性能和进展,如果发现计划的结果和实际的结果不同步时,则采取纠正措施。 必须和您的供应商签订协议并确保双方满意。 同样,CMMI还有关于管理项目风险和组建、管理团队的信息。,3.1.1 过程内容 CMMI关于技术问题的指导包括开发、细化和管理需求的方法,以及开发满足这些需求的技术解决方案的方法。CMMI提醒您,产品组件的集成取决于良好的接口信息,并且需要得到计划和验证。 在遵循CMMI模型时,应该确保所开发的产品和服务与初始需求一致,并通过验证和确认满足客户需求。 另外
8、,CMMI还提供技术和管理活动的相关支持过程。应该一直管理中间工作产品、最终产品、服务的版本和配置信息。 应该有方法确保遵循所定义的过程,并且确保所开发的产品已达到建立的质量标准。您需要决定哪些信息是重要的,并且建立方法来测量和跟踪它。在某些情况下,需要设计一些方法以正式地解决问题。需要找到产品和关键过程中出现的严重问题的根源所在。,3.1.2 过程改进 一旦已经建立过程,改进这些过程就成为关键的目标。 CMMI模型中关于改进的信息包含了创建一个可行的、可改进的过程基础。为了建立这一基础,CMMI包含可使组织更多关注定义和遵循相关过程的方法。 通过培训和标准化,可以使每个人明确角色,并且知晓如
9、何在过程中执行该角色的相关任务。您会学到使用所收集的测量数据来改进过程性能,在过程需要发展时进行创新,并且确保您的能力可以达到变更要求。,3.1.2 过程改进 过程需要像项目那样进行计划,如果组织通过方针的形式增加过程的重要性和有效性,这样做将会很有帮助。过程执行包括(但不限于)下述工作: 需要确保接受过培训的、被授权的人员执行过程时,所需的资源是可用的。 需要识别对过程感兴趣的人并使他们参与进来。 工作产品和过程文档应该得到控制,根据过程计划的进展情况也需要进行跟踪。 应该有人员负责对所遵循的过程进行客观地评估,管理层应该定期地得到关于过程性能的简报。,3.1.2 过程改进 当过程在组织范围
10、内得以被标准化,并且过程的性能根据历史数据得以被监控时,过程就会变得更有能力。通过使用这种方法,能够检测到性能中的变化,尽早解决潜在的问题。从而可以在花费较少的情况下解决问题。最后,通过识别过程波动的根本原因和创新的方法来连续地改进该过程,使涉及的过程更好。,3.1.3 CMMI和商业目标 在第1章,我们识别了组织中一些普遍的商业目标。基于以上关于CMMI的过程内容和过程改进的概述,您期望CMMI如何帮助您的组织达到这样的目标呢?下面分别予以讨论: 提供高质量的产品和服务 CMMI模型中的过程改进概念是从Deming、Juran和Crosby的质量范例发展起来的。他们认为:高质量产品来源于高质
11、量的过程。CMMI重点关注与质量相关的活动,包含需求管理、质量保证、验证和确认。 为股东创造价值 成熟的组织与不够成熟的组织相比,更有可能做出更好成本和收入的预算,然后根据这些预算来执行。CMMI支持高质量的产品、可预测的进度和有效的度量,以此来支持管理人员进行精确而合理的预测。这种过程成熟度可以防止项目性能问题的产生,而这些问题是有可能降低在投资者心目中该组织的价值。,吸引和留住人才 Watts Humphrey说过,“高质量的工作不是偶然完成的,需要熟练和有进取心的人来完成。”CMMI在学科和过程方面都强调培训。以往的经验显示,和不成熟的组织相比,具有成熟过程的组织将产生更少的失误。在一个
12、团结和有能力的组织中工作,工程师们会感到特别的心情舒畅。 提高客户满意度 在成本和进度的预定目标内,提供根据客户要求确认的高质量产品。通过强调计划、监控、度量,以及更有能力的过程可预测性提高,CMMI说明了所有有关的要素。 实现成本节省和最佳实践 CMMI鼓励将度量作为一种管理工具使用。通过使用收集的历史数据支持项目的估算,组织可以识别并广泛部署起作用的实践,并且消除没有作用的实践。,增加市场份额 市场份额是多种因素作用的结果,包括高质量产品和服务、品牌、价格定位和形象。客户满意度是关键因素,在市场中,满意的客户将会带来更多的客户。客户愿意与那些能够履行承诺、具有良好信誉的供应商交易。CMMI
13、改进了预算估计并降低了过程波动性,以此来进行更好、更精确的投标,这些投标被证明可实现,也确保达到基本的质量目标。 因为优秀而在业内获得广泛的赞誉 获得卓越声誉的最好方法是持续良好地执行项目,在成本和进度要求的范围内开发出高质量的产品和服务。使用遵循CMMI要求的过程可以增强这种声誉。 如上所述,CMMI所包含的信息可以对组织、商业目的达成都带来巨大影响。关于CMMI内容的更多的细节会在随后的章节中介绍。,3.2 CMMI的目标 尽管CMMI会带来很多与业务相关的利益,但是正如其发起人定义的那样,CMMI项目的目标是开发更有效和更高效的过程改进模型。CMMI项目有初步的和长期的目标。其初步目标(
14、表现在CMMI产品套件1.1版本中)是集成三个特定的过程改进模型:软件、系统工程以及集成产品和过程开发。这种集成的目的是通过以下方法降低实现基于多学科模型的过程改进成本: 消除不一致性,减少重复。 增加清晰度和理解,提供公共术语。 提供一致的风格,建立统一的构造规则。 维护公共组件。 确保与ISO/IEC15504保持一致。,在更新到CMMI 1.2版时,CMMI团队的一个目标是改进和简化应用于工程开发活动的模型。第二个目标是将模型的作用范围扩展到超出开发领域,从而包括服务的获取和交付。图3-1说明了这些目标和由CMMI团队开发的产品线方法。3此时无法预见在将来是否有其他的学科和群集*将添加到
15、CMMI产品套件。,*群集组将模型中应用于特殊兴趣领域的部分结合起来。,图3-1 CMMI概念,HWHardware SWSoftware SE-Systems EngineeringIPPD-Integrated Product and Process Development,CMMI里程碑:19972007,参见P.50-51。,3.3 三个源模型 要想真正了解CMMI成果的重要性,需要了解CMMI产品套件的一些发展史。首先最为重要的是源模型的来源,表3-1列出了CMMI-SE/SW/IPPD的三个源模型。表3-1 CMMI的源模型,3.3.1 软件的CMM 软件开发的特点有时似乎与数学和
16、艺术更接近,而不是其他的工程学科。软件本身是一种无形的、智力开发的媒介。没有物理定律支配其行为;它既可能创造奇迹,也可能造成巨大的危害。正因为如此,使用软件操作时,应用成熟的学科与过程将非常重要。 在20世纪80年代,IBM的Watts Humphery小组中的Ron Radice和Richard Phillips进行了开拓性的工作,把软件工程和过程管理密切联系起来。基于他们的质量运动的原理,Radice和Phillips带头精心设计了一种方法来收集成功软件开发者的最佳实践,然后把这些最佳实践组织起来,帮助苦苦挣扎中的组织处理过程并改进过程。因为软件开发的特点,绝大多数实践与管理学科和过程相关
17、,这并不使人感到吃惊。,3.3.1 软件的CMM 软件工程-如同在IEEE标准610.12中所定义,软件工程是将系统化的、有纪律的、可量化的方法应用到软件的开发、操作和维护中,即把工程方法应用于软件。 1986年,Watts Humphrey、SEI和Mitre公司响应美国联邦政府的要求,创建了评估其承包商软件能力的方法。这个小组采用IBM公司提出的概念创建了一个软件成熟度架构,一个调查问卷和两种评估方法。之后几年,该项工作一直在继续并进行了改进。 1991年,SEI发布了软件CMM版本1.0,该模型描述了基本的软件过程成熟度的原理和实践。CMM用于帮助软件组织沿着一条演进的路线进行改进,即从
18、一个临时的、混乱的环境向成熟的、有纪律的软件过程方向发展。,3.3.1 软件的CMM 经历两年的应用和评估后,CMM于1993年修订并发布了版本1.1。1997年进行了类似的修订,并有了版本2.0。版本2.0在开发后从未作为独立的模型进行发布。2.0版本建议的修订成了CMMI集成工作的来源。此外,还采用了两个有关软件评估的文档:CMM评估框架1.0版和基于CMM内部过程改进的评估(CBA IPI):方法描述。 软件工程范围超出包含在软件CMM的主要内容以包括与软件相关的主题诸如需求引出,安装,运行和维护。CMMI模型通过包括系统工程能力模型的适当资料,更详细地覆盖了这些领域。,3.3.2 系统
19、工程能力模型 系统工程:INCOSE(International Council on Systems Engineering,国际系统工程委员会)定义系统工程为“能实现成功系统的跨学科的方法和手段。” 系统工程集成所有系统相关的学科,因此,能以最有效的方式满足企业和技术要求,减少局部优化和最大化投资回报。对系统工程的另一种理解就是,它是为解决复杂技术难题而应用一组严格的工程技术。 如果不考虑相关的各种专业学科,那么就很难充分理解系统工程的范围。在Essentials of Project and Systems Engineering Management一书中,Howard Eisner列
20、出了30个系统工程的关键要素,这些要素包括各种领域,如任务工程、体系结构设计、生命周期成本、选择性分析、技术数据管理、操作和维护、综合后勤保障以及再造工程。,3.3.2 系统工程能力模型 CMMI中系统工程方面的资料具有复杂的历史。在现代版的“两个能力模型传说”中,两个组织进行了系统工程实践的建模工作。1995年8月,企业过程改进协会(EPIC,它是工业界、学术界以及政府机构组成的一个团体)发布了系统工程能力成熟度模型(SE-CMM)。EPIC让SEI和设计师Roger Bate领导开发。该团队主要从航空航天和国防工业的公司以及软件生产力协会中提取系统工程的专业知识,其结果模型是基于ISO/I
21、EC 15504(描述了工程、项目、过程以及组织的实践)草案版本中的评估模型结构。大概在开发SE-CMM的同时,INCOSE基于各种工程标准为评估系统工程组织的能力建立了一个检查单。经过一段时间以后,该检查单发展为一个成熟的能力模型,称为系统工程能力评估模型(SECAM)。,3.3.2 系统工程能力模型 SECAM扩展SPICE关于连续式模型的概念,但比SE-CMM更加明确地注重系统工程实践,它采用的是EIA 632,“设计一个系统的过程”作为其主要的参考。 显然,如果一个环境中存在两个模型,而这两个模型分别由两个著名的组织开发,并且目的都是为了解决同一个问题,那么一场模型战将会发生。哪个模型
22、会作为组织评估的标准呢?经过一年的激烈讨论之后,在1996年,EPIC和INCOSE同意在电子工业联合会(EIA)的政府电子与信息技术协会(GEIA)的主持下一起工作,其目的是将两个模型合并为一个EIA标准,其结果是产生了一个过渡标准EIA/IS 731“系统工程能力模型”(SECM)。通过发布该过渡标准,系统工程界能够在CMMI项目中应用系统工程过程的统一、公共的描述。,3.3.2 系统工程能力模型 CMMI的系统工程受到EIA 731的重大影响。尽管CMMI的讨论中仍然有SECM与SE-CMM之间的争论,但CMMI中的系统工程在内容上反映出对原始概念的更多发展。CMMI在保留了EIA 73
23、1的部分创新的同时,提供与新兴的ISO标准更加一致的底层体系结构。EIA 731标准既包括了SECM模型(第一部分),也包括了评估办法(第二部分)。,3.3.3 集成化产品开发CMM 集成化产品与过程开发的源模型是集成化产品开发CMM的草案,称为IPD CMM版本0.98。在1998年CMMI项目刚开始时,该模型就已经开发到几乎接近首次正式发布的水平。 从开始起,CMMI团队就希望在CMMI产品套件中包含集成化产品和过程开发(IPPD)概念。对于NDIA的许多大型会员公司,这种概念很重要,并且得到国防部(DoD)的强力支持。但是,用于CMMI需求文档中的IPPD定义是从DoD的经验中得出,这些
24、经验来自于政府系统获取项目的集成运作但获取并不是CMMI集成的最初学科之一。这一缺憾导致在CMMI范围内处理IPPD原则时有些困难。由于在集成化产品开发的基本概念和最佳实践方面,业界和许多开发团队的成员间缺乏一致的意见,因此更容易让人产生混淆。因为这是一种相对较新的组织和完成工程工作的方法,所以有多少组织,几乎就会有多少种不同的定义。,3.3.3 集成化产品开发CMM 上述问题并非CMMI特有。如,为了开发IPD CMM(得到了SE-CMM团队中的许多成员支持),由EPIC建立的团队在IPPD概念上花了两年多的时间,才得到了CMMI的认可。最终的IPD-CMM草案是作为CMMI的源文档而建立的
25、,但该草案一直没有达到最终产品状态。 集成化产品和过程开发CMMI将集成化产品和过程开发定义为产品开发的系统方法:在整个产品生命周期中,通过相关利益关系方的及时协作来更好地满足客户的需求、预期目标和要求。,3.3.3 集成化产品开发CMM IPPD强调在整个生命周期间所有技术及业务部门的利益关系人的参与,这些人员包括客户、供应商以及产品和产品相关过程(例如测试与评估、制造、支持、培训、销售、采购、财务、合同以及处置过程)的开发者。显然,实施IPPD影响的不只是组织的工程过程和实践。因为IPPD本质上是一种经营方式,它可能彻底地改变组织结构和调整领导层行为。,3.4 CMMI项目组织 在形成CM
26、MI最初资料的开发阶段,该项目有一个指导组、一个产品开发团队和一个利益关系人小组。总共包括近200人,历时6年多的工作。三个组(团队)的代表来自业界、政府部门和SEI。集成到CMMI中的几个模型,其学科代表也包括在所有三个组中。各组的职责如下: 指导组为CMMI提出一个需求列表,该列表由利益关系人小组进行评审,随后由产品开发团队用来指导CMMI产品的创建工作。 产品开发团队是为初期的开发工作而创建的交叉学科组,其责任是确保在集成化过程中充分考虑到每个学科的观点和利益。,3.4 CMMI项目组织 利益关系人小组评审最初起草的CMMI资料。然后在2000年末版本1.0发布之前,进行了对草案材料的第
27、二轮公开评审。利用1.0版本用户的反馈意见,并且作为对1500条更改请求的回应,产品套件1.1版本在2002年发布。 CMMI团队。为CMMI产品开发团队提供成员的组织参见P.56。 开发最初CMMI模型的交叉学科团队包含的成员分别具有软件工程背景、系统工程背景以及集成化产品和过程开发背景。多数工程组织都应用了这些技术,但其组织及相互作用的方式则在各个组织间不尽相同。因此,CMMI团队不仅要解决三个源模型之间的差异,而且还要沟通不同工程专业及组织在文化、语言以及专业差异。这些沟通的桥梁必须在构造CMMI模型过程中建立,这是模型的用户成功地支持集成化过程改进和过程评估的基础。,3.4 CMMI项
28、目组织 在CMMI开发期间,集成开发团队积极地设法保持三个学科之间平衡的成员人数,这项措施得到了软件和系统工程团体的大力支持。由于软件的CMM被广泛接受,SEI和已经使用该模型、了解其价值并希望看到这种价值保留在集成化CMMI模型中的组织都极力提倡该模型。同样,在系统工程领域中,国际系统工程委员会(INCOSE)提倡包括系统工程实践。集成化产品和过程开发团体也参与了CMMI团队,尽管和那些比较明确的学科相比,代表们在IPPD(集成产品和过程开发)应该如何处理的问题上提出了更广泛的意见。最后,这个由经验丰富和积极参与人员组成的团队,每个人都将自己的特别的专业知识和偏好贡献出来,集合到一起创建了C
29、MMI产品套件。,3.4 CMMI项目组织 当初始CMMI产品套件的开发阶段完成,一个新的组织结构被建立(如图3-2所示)。即由CMMI产品开发团队发展而成的CMMI产品团队。,图3-2 最近的CMMI项目组织,3.4 CMMI项目组织 该团队和软件、系统工程、IPPD、供应商来源、评估以及CMMI核心组件的专家组保持联系。为了指导CMMI的发展,建立了配置管理委员会,并且将SEI称为CMMI产品套件的管理机构。作为管理机构,SEI负责维护和支持CMMI。随着时间的推移,将会需要新的交叉功能专家团队来处理现有产品的修订,以及完成将更多学科(例如服务群集团队和获取群集团队)添加到CMMI架构中的
30、后续相关工作。,第4章 CMMI的内容All that is gold does not glitter, Not all who wander are lost. J.R.R.Tolkien,The Fellowship of the Ring(1954)I have gathered a posie of other mens flowers, and nothing but the thread that binds them is mine own. John Bartlett,Familiar Quotations的前言(1901),能力成熟度模型集成(CMMI)模型中有些什么?组织
31、如何采用它?即使对于最有经验的过程改进专家,几百页的CMMI模型似乎也是棘手的。不过,只需要了解模型是如何组成的,以及模型中都有哪些类型的资料,就可以充满自信地深入学习CMMI的内容。 本章描述可在CMMI模型中找到信息类型,并指出各类信息所在位置。通过本章学习,能学会了解各种不同类型信息的不同的重要性。,4.1 群集 群集(Constellations)为不同类型的组织提供了一种使用CMMI的方法,并尽可能具有通用性。 CMMI 1.2版本中的两个群集是开发(Development)和获取(Acquisition);当前正在创建第三种可能的群集服务(Service)的资料。 开发群集支持开发
32、产品的组织,是以前所有CMMI版本的继承者。 获取群集支持从组织外部的供应商处获得产品或服务的组织。 服务群集计划用于支持主要交付服务而不是产品的组织。 CMMI架构提供了产生不同模型所需的信息。下面介绍CMMI架构的体系结构和用途。,术语“群集”是CMMI体系结构的元素,用于描述协同工作以处理特定兴趣领域改进的模型中某些部分的特点(定义:群集是构件的集合,用于构造兴趣领域中的模型、培训资料和评估资料)。,4.1 群集 群集实际上是CMMI框架(Framework)的一部分:一个用于构造CMMI模型的组件、CMMI培训资料和CMMI评估方法的汇集。CMMI框架的关键部分是CMMI模型基础(CM
33、MI Model Foundation, CMF),CMF由每个已有和将来CMMI模型中常见的资料组成。该模型的组件包括过程域、目标、实践和关于使用该模型的信息资料。 本章下面各小节描述CMMI模型的组件,第7章更完整地描述CMF。,4.2 过程域(Process areas) 所有CMMI模型基本的组织特征就是“过程域”。在过程改进模型中不是包含所有与过程和过程改进相关的事情。像其原模型一样,CMMI只选择过程改进中最重要的主题,然后把这些主题分组为“域”。每个群集中过程域的数目不尽相同。以“需求管理”为例说明: 在系统、软件和硬件工程中,普遍认为在任何开发过程任务中,对产品需求的管理应是倍
34、受关注的重要领域。经验显示,不能充分地识别需求并管理需求的变更,是导致项目不能满足成本、进度和质量目标的一个主要原因。这种经验证明,需要将关于需求管理的信息收集到一个主要的模型组件过程域中。因此,模型的使用者应该关注于这个过程域,以建立管理需求相关的过程域能力。,4.2 过程域 如该模型所述,“需求管理”过程域的目的是“管理项目的产品和产品组件的需求,识别需求与项目计划和工作产品之间的不一致性。”除了这一目的之外,过程域还有另外一些目标,这些目标描述成功的需求管理过程的结果,以及可以帮助达成这些目标的实践。当然,也有大量的说明和“如何做”的资料可对需求管理提供一些具体的帮助。概括地说,这些就是
35、一个过程域的主要内容。,4.3 内容的分类 任何过程改进模型有必要对模型中所包含资料的相对重要性及其作用进行区分。在CMMI模型中,用术语“必需的(required)”、“期望的(expected)”以及“提供信息的(informative)”进行区分: 最重要的资料是“必需的”,这些是对模型必不可少的资料,是了解过程改进需要什么及确定是否符合模型的基础。 第二重要的是“期望的”资料,这些也许不是完全必要的资料,在某些情况下可能不会出现在成功使用模型的组织中。不过,期望的资料在过程改进中却起到主导作用,它们是达到必需的组件强有力的说明。 第三重要的(也是数量最多的)是“提供信息的”资料,这些资
36、料构成了模型的主要部分。用来提供信息的资料为过程改进提供了有用的指导,在许多情况下,它们对必需的和期望的组件进行进一步的说明。,4.3 内容的分类 如果您想快速浏览CMMI模型,推荐考察全部必需的资料,该策略被称作“主管纵览” 层。对于中等级别的考察,可以集中于组合必需和期望的资料。该方法被认为是“经理纵览” 层。无论作哪种层次的考察,最好都查看本书附录A中的模型概述。这里,结合这两类模型组件 (具有最小量提供信息的资料) 给出该模型最为基本的元素。,4.4 必需的资料 唯一必需的CMMI模型的组件是“目标(goal)”。目标代表所希望的最终状态,它的实现表明对项目和过程控制已经达到了一定的程
37、度: 当一个目标对一个过程域唯一时,称该目标为“特定目标(specific goal, SG)”。 反之,当一个目标可以适用于所有过程域时,称该目标为一个“共性目标(generic goal, GG)”。 表4-1列出了特定目标的4个例子。每个过程域都有14个特定目标,完整的CMMI 开发版1.2 模型共包括了50个特定目标。,表4-1 4个过程域的特定目标,4.4 必需的资料 从表4-1的4个例子可以看出,一个目标的陈述十分简洁。评估过程域中预期的和提供信息的资料可以帮助您理解实践方面的特定目标。 与特定目标相比,一个共性目标GG有一个跨越所有过程域的范围。因其应用广泛,词GG比词特定目标S
38、G更抽象。例如,考虑GG2:“过程作为一个已管理的过程而被制度化”。根据CMMI术语表(CMMI 开发版1.2,附录D),找到“制度化”和“已管理过程”的定义,这两个定义都显示在表4-2中。,4.4 必需的资料,表4-2 关于CMMI共性目标2的定义,4.4 必需的资料 考虑表4-2,这两个定义比GG本身的简短陈述更为详细。然而,即使这些定义,关于实际意义的方法问题仍徘徊不去。什么是“根深蒂固开展业务的方式?”的关键特征?怎样才是一个“依照过程描述进行评估”的过程?虽然目标是CMMI模型中唯一要求的元素,但如果不对模型作更充分探索的话,任何目标的陈述(特定的或共性的)都不能被充分理解。为了扩展
39、理解,首先是查看期望的组件。,4.5 期望的资料 CMMI模型期望的唯一组件是“实践(practice)”的陈述。一组实践表示了达到目标所“期望的”手段。CMMI模型中的每个实践正好映射到一个目标。不过,实践并不是必需的。一个特定的组织可能拥有可证实达到目标的手段,而这些手段并不依赖于映射到那个目标的所有实践的执行。也就是说,“替代的”实践可以提供同样有用的手段以达到目标。这可以帮助将实践认为是关键的成功因素;如果没有很好地处理这些实践,那么理解它们的缺乏就非常重要。 如果一个实践对一个单一的过程域是唯一的,就称该实践为“特定实践”。而如果一个实践可能适用于所有的过程域,就称该实践为“共性实践
40、”。,4.5 期望的资料 表4-3列出了特定实践的几个例子以及它们映射到的目标。注意,表示最终状态的目标总是使用被动语态,而作为完成目标的方法的实践总是使用主动语态。,表4-3 与特定目标相关的特定实践,4.5 期望的资料 在27个之间的特定实践会被映射到每个特定目标中,整个CMMI开发版本1.2模型总共包括173个特定实践,这些实践被映射到50个特定目标中。 当把映射到一个特定目标的特定实践看成一个整体时,它们提供了对应该如何理解目标的补充认识。表4-4给出了一个特定目标及其全部的特定实践。在这个例子中,建立和维护工作产品基线包括识别配置项、实施配置和变更管理系统,以及为内部和外部使用建立基
41、线。与特定实践相反,共性实践有一个跨所有过程域的范围。例如,一个被映射到制度化已管理过程的共性目标(GG 2)的共性实践说明了人员的培训问题。考虑GP 2.5:“对执行或支持过程的人员进行必要的培训”。基于这个共性实践的应用,CMMI模型中的每个过程域都要提供必要的培训。,表4-4 配置管理的特定目标和特定实践,4.6 提供信息的资料 CMMI模型中包含11种用于提供信息的资料(目前没有一种模型使用超过10种提供信息的资料),列表描述如下: (1) 目的(Purpose)。每个过程域的开始就是对该过程域目的的简要陈述。一般而言,目的陈述由一个或两个句子组成,它们概括和总结了该过程域的特定目标。
42、 (2) 介绍性说明(Introductory Note)。目的陈述之后的一节包括了应用于整个过程域的多个介绍性说明。这些说明一般介绍了该过程域的范围、重要性、反映公认的最佳实践的方式、使用独特的术语以及与其它过程域的相互影响。 (3) 参考(Reference)。参考实现了从一个过程域到另一个过程域的全部或部分的明确指向。在CMMI中,参考只是一个指示器,它说明为了获得某些主题的更多信息,应该查看另一个过程域。,4.6 提供信息的资料 (4) 名称(Names)。在CMMI中,所有必需的和期望的组件(目标和实践)都有一个名称,该名称提供了对该组件进行查询的便利方法。表4-5列出了度量与分析(
43、Measurement and Analysis, MA)过程域的名称示例。因而,在培训课程或在讨论中,可以参考度量和分析中的“调整活动”目标或“指定度量”实践。,表4-5 来自度量和分析过程域的名称,4.6 提供信息的资料 (5) 特定目标与实践概要(Specific Goal and Practice Summary)。运用目标和实践的名称,每个过程域中的关系表将每个特定和共性实践分别映射到相关的特定目标和共性目标。 (6) 注释(Notes)。虽然过程域开始的通用说明被标为“介绍性说明”,但也有一些(简单的)注释依附于其它模型组件,如目标、实践和子实践。这些注释表示了一个丰富的信息源,这
44、些信息源在计划和指导过程改进工作时很有用。在模型中,用一个方框加以突出的就是注释的例子。 (7) 典型工作产品(Typical Work Products)。在执行一个实践时,经常会以工作产品的形式产生输出。在CMMI Model的“模型术语”中,把工作产品定义为如下(部分定义):,4.6 提供信息的资料 来自于特定实践的示例输出。这些示例称为典型工作产品,因为有其它同样有效的工作产品,只不过没有列出来。这些工作产品可以包括文件、文档、部分产品、服务、过程描述和规范。 在典型工作产品列表中标识的条目是一些例子,它们不应该被认为是执行过程所必需的,而且该列表也不能被认为就是完备的。其目的仅仅是对
45、一个实践可能产生的工作产品类型提供一些初步的指导。不过,在评估期间,您会被要求出示证据来证明您的过程产生的输出,并给出输出的例子以获得对该过程域制度化的信任。,4.6 提供信息的资料 (8) 典型供应商可交付产品(Typical Supplier Deliverables)。这些组件只用于CMMI for Acquisition模型中。典型供应商可交付产品代表输入的人工制品,或者是支持需方实现实践的人工制品。 (9) 子实践(Subpractices)。对于CMMI模型中的许多实践,子实践提供了对它们的含义和活动的必要分解,以及它们用途的详细描述。与实践(期望的模型组件)不同,子实践在模型中只
46、是提供信息。,4.6 提供信息的资料 (10) 学科扩充(Discipline Amplifications)。与以前的源模型相比,CMMI最大的不同点是CMMI模型组件是学科独立的。这个方法的优点在于不同学科采用相同组件的能力,而采用相同的组件可以在各种不同学科中推行公共术语和共同理解。不过,当考虑通用性时必然要对内容进行削减,因此学科独立组件的局限性是明显的。例如,软件CMM包括了一个实践,该实践明确地引用了软件规模估计的开发。不同的是,CMMI采用了更通用的说法:产生对工作产品和任务的属性的估计(参见项目计划,SP l.2-1)。扩充是用于提供信息的资料,因此在评估中并不是必要的。但是,
47、评估人员可把它们作为指导,以便更好地解释特定学科的实践,并更好地理解实践如何影响过程改进活动。,4.6 提供信息的资料 (11) 共性实践的详细描述(Generic Practice Elaborations)。尽管学科扩充为每一个特定学科提供了细节,但共性实践的详细描述提供了关于在给定的过程域中应用共性实践的细节。例如,在产品集成过程域中,建立一个组织级政策的共性实践的一种详尽细节解释如下: 这项政策建立组织级期望,包括开发产品的集成顺序、程序和环境,确保接口在产品组件、组装产品组件,以及交付产品和产品组件间的兼容性。 有时,在特定的过程域中,一个共性实践和一个特定实践可能会表达类似的主题。
48、例如,共性实践处理过程的计划,而一个特定实践可能关注于计划过程的某个特定方面。在这种情况下,共性实践的详细描述被用于解释共性实践和特定实践之间的不同意图。,4.7 附加信息 附加信息扩展了模型的范围或强调模型用途的特定方面。它们可以是额外的过程域、特定的目标、特定的实践或提供信息的资料。在CMMI 开发1.2版中,唯一的附加信息与IPPD相关。在组织过程定义+IPPD,GP 2.6中可以找到IPPD附加信息中关于受控制的工作产品示例如下: 个人和集成化团队的赋权规则和指导原则。 组织关于问题解决的过程文档。 CMMI for Services群集当前有三个附加信息,每个附加信息都是完整的过程域
49、。查看第7章中关于CMMI-SVC的讨论。,4.8 CMMI模型基础 本章前面提及CMF,但是没有详细解释它在CMMI架构中的重要性。本节将介绍如何使用CMF。 CMF包含在每个群集中必须使用的组件。然而,可以在CMF中添加群集特有的信息。例如,与实践相关的注释可以被标记为CMF资料。在任何情况下都不可以修改CMF注释,但是可以在实践中添加新的注释以阐明群集中该实践的某些方面。实际上,与任何过程域相关的资料可以添加到CMF过程域,包括特定的目标、特定的实践和任何提供信息的组件。 每个群集由一个过程域集合组成(参见4.2节)。CMF包含16个核心的过程域,下面是所有群集的公共过程域: 因果分析和解决方案 配置管理 决策分析和解决方案,