集团其他站点      
  首页        联系我们

过程改进模型:CMMI


关键字:CMMI,软件过程改进,CMM,SEI,CMMI模型
文章为网络转载


CMMI(CapabilityMaturityModelIntegration)是SEI正在开发的一种过程改进模型,该模型的出现是过程改进领域的一次重要变化,会对今后软件组织的过程改进工作产生巨大影响。本文简要介绍了CMMI的产生背景、当前状况、主要内容,以及和其他CMM模型之间的对比。

一、CMMI产生背景

自从70年代软件危机以来,学术界和企业界对软件工程工具和技术的研究投入了大量的人力和物力,也取得了许多成果。然而,直到80年代末,一个不同于以往的概念逐渐被接受:一个软件姐织的软件能力取决于该组织的过程能力。如果一个组织过程能力越成熟,那么该组织的软件生产能力就越有保证。

什么是过程?过程指的是为达到一个预定目的所实施的一系列步骤(1EEE一51)T一610)。

sEx(SoftwareEng:neeringxnstitute.卡尔基梅隆大学软件工程学院)提出了持续的软件开发过程和维护过程改进,并在1991年发布了SW一CMM1.0,主要用于指导软件组织的过程改进工作。该模型的发布,在计算机领域掀起了软件组织的过程改进高潮。

自SW一CMM发布以来,该模型的原理和作用已得到公认,成为一种事实上的国际标准。国际标准化组织以CMM模型思想为基础,组织制定了相应的标准—15015504。随着SW一CMM的推广,SEI也致力于开发一系列相应的能力成熟模型,包括:SE一CMM(系统工程能力成熟模型)、IPD一CMM(产品集成开发能力成熟模型)、P一CMM(个人能力成熟模型)、SA一CMM(软件获取能力成熟模型)等,适应不同的用途。多种能力成熟模型的开发和应用受到了广泛的欢迎和支持,过程改进活动也涉及到了更多的规范。经过过程改进的软件组织能够更好地开发和维护他们的产品与服务。

当一个软件组织采用多种能力成熟模型用于改进产品质量并提高生产能力时,从理论上讲,不同的能力成熟模型必须能够和谐地共存。但实际上,通过实践发现,不同的能力成熟模型,特别是sw一CMM、SE-CMM和1P仆CMM之间在内容上有所重叠,并在结构和指导规范上存在差异,以至于培训、评估、改进活动经常被重复执行,对过程改进工作造成不利的影响。可是,如何消除冗余活动,没有任何指导可以借鉴。显然,软件组织急需一种简单易行的方法,能够将基于各种CMM的改进活动集成起来。即,将各种不同的模型进行集成。

二、CMMI现状

2.1CMMI源模型、目标和产品组成为了适应软件过程改进的发展需要,美国国防部OUSD/AT加_(theOffieeoftheUnderSeeretaryofDefense,Aequisit:on,Teehnology,andLogisties)和NDIA(National压fenseIndustrialAssoeiation)的系统工程委员会联合发起了“能力成熟模型集成”项目,由SEI负责实施。来自政府、工业界、SEI等不同组织、拥有不同背景的100多名专家一同致力于建立一个能够适应当前和未来过程改进的模型框架—CMMI(能力成熟模型集成)。CMMI项目组决定以SW-CMMZ.o草案C、EIA/15731和SE一CMM、IP仆CMMv0·98a三种模型为基础进行CMMI的开发工作. 由于CMMI的三种源模型应用于不同的规范,其结构也不尽相同,重点也不一致,导致集成过程改进模型成为一件很困难的工作。CMMI项目组将目标定为:集成不同的源模型,消除相互之间的不协调,减少重复;降低基于模型的过程改进工作的费用;采用通用的术语、一致的风格、统一的结构和规则、通用的组件,以使模型的结构更清晰,内容更容易理解和掌握;所有的CMMI产品与因际标准15015504保持兼容;使己经使用CMMI源模型进行过程改进工作的软件组织能够保留他们的工作成果。

CMMI产品套件由三个部分组成:CMMI规范模型、评估产品、培训产品。(l)CMMI规范模型是CMMI产品中最为重要的部分,包含多种规范模型,用于指导过程改进工作。CMMI模型以“过程域”为基本的结构单位,梅个过程域描述了在本过程范围内应该进行的实践以及原因。软件组织可以根据自身需要,选择CMMI产品中的一个或多个规范,或不同的描述版本,以适应组织的实际情况。目前己涉及的规范有:软件工程、系统工程、IPI)D等。(2)评估产品主要包括评估需求、评估方法等,用于CMMI的评估。(3)培训产品主要包括CMMI介绍、评估方法培训等,用于CMMI的培训。

2.2CMMI的重要意义

CMMI的出现,不仅仅是将多种模型结合起来,更重要的是,CMMI是能力成熟模型发展史上的一次重要变革,CMMI提供了更广泛的过程改进范围环。CMMI之前的能力成熟模型,都是偏向于对某一单独规范(如:软件工程或系统工程)过程的改进,而CMMI模型并不考虑规范本身的局限性,将重点放于产品或服务的开发和维护过程的改进之上。因此,有可能会对过程改进领域中的所有相关规范产生巨大影响。使用CMMI模型进行过程改进工作的优越性在于:软件组织可以更有效地使用多种过程规范进行评估和改进工作;降低了过程改进工作的培训和评估费用;对软件组织中的所有改进活动从整体_卜进行控制;为软件组织提供了一种新的描述特定规范信息的方法。

2.3弓CMMI模型的几个重要阶段

CMMI项目于1997年正式启动;SEI于1999年11月发布了CMMI的意见征求版Vo.2,该版本的发布目的在于征求各方面的意见和建议,以便对该CMMI产品进行修改;2000年8月,SEI发布了CMMIVI·o。该版本基于对VoZ的各种反馈意见,对CMMI产品进行了改进,可用于软件组织的过程改进工作;2000年]l月,SEI发布了CMMIVI.01;2000年底,SEI将发布CMMIVl.1。(己发布的CMMI产品请参见SEI站点http://www.sei.cmu.edu)

三、CMMI模型描述

CMMI模型分成两种描述方式,以适用于不同的需要。按照两种不同的描述模型进行过程改进,会得到不同的级别—能力级别或成熟级别。

3.1连续描述和分级描述

CMMI采用两种描述方式:分级描述和连续描述.比如,SW毛MM是一种分级描述模型,而EIA/IS731是一种连续描述模型。软件组织可以根据自身的过程改进目标,选择不同的CMMI描述模型。在CMMI的分级描述模型中,基本组件可归纳为成熟级别。每个成熟级别中包括多个过程域,征个过程域包含有目标(可分为特定目标和一般日标)、公共特性和实践。实践描述了应该执行的活动,可以根据公共特性将实践分成五类。(1)实施承诺:确保过程的建立和执行;典型的实践有:组织方针等。(z)实施能力:为了完整地实施过程活动,创造所需要的条件;典型的实践有:计划、资源、组织结构和培训等。(3)实施活动:实施过程所需的活动;不同的过程域所实施的活动不一样,还可细分为典型工作产品和子实践。(4)实施指导:监督和控制过程;典型的实践有:将特定的工作产品置于配置管理之下,根据计划监督和控制过程,在必要时采取纠错行动等。(5)实施验证:确保活动与过程域所要求的相一致;典型的实践有:评审和审计等川。

在CMMI的连续描述模型中,基本组件可归纳为过程域。过程域根据用途不同分成四类:过程管理过程、项目管理过程、工程过程、支持过程阁。每个过程域中包括特定目标和一般目标,其中,特定目标需要通过实施特定的实践活动予以实现,而一般目标只需通过实施一般活动就可予以实现。特定目标和特定实践在每个过程域中是唯一的;而一般目标和一般活动则可应用于多个过程域。每个实践隶属于某个能力级别。

3.2能力级别与成熟级别的比较

成熟级别和能力级别都用于标识过程改进效果,二者的主要区别在于:采用的描述方式不同,应用的对象不同川。其中,成熟级别属于分级描述模型,应用于组织内部全面的过程改进工作,分为1到5个级别,母个成熟级别包括一系列的目标。使用分级描述,软件组织可以通过成然级别逐步建立一种组织优越性文化一cult。r。。fEngineeringExeellenee),清楚地展现组织的过程成熟能力。同时,每个成熟级别形成了向下一级别前进的基础。

能力级别属于连续描述模型,应用于某个特定过程域的过程改进工作,分6个能力级别,从。级到5级。使用连续描述,软件组织可以在过程改进活动中建立并维护一个能力级别视图(例如:一个已达到能力级别的过程域列表),使软件组织清楚地意识到己取得的进步,并可用于指导下一步的改进活动.能力级别视图可有如下类型:成绩视图—在选定的过程域中,现己取得的能力级别;目标视图—希望取得的能力级别。

3、3模型的选择

事实上,两种模型包含的基本信息是一致的。每种模型都描述了各种过程的主要方面,之所以采用两种不同的描述方式,关键在于为了满足不同软件组织的不同需求。

如果一个软件组织希望改进该组织各个方面的过程能力,考虑到各过程域之间的相关性,应该选择CMMI的分级描述模型。使用分级描述模型,该组织可以将改进工作重点放在某一成熟级别的所有过程域上。当达到了这些过程域所规定的目标,就可认为改进工作取得了成功,该组织相应地达到了某个成熟级别。例如:如果该组织成功地达到了CMMI分级描述模型的第2级的所有目标,就意味着:该组织处于成熟级别2级。

如果该组织认为大多数的过程处于一种可接受程度,并希望提高某个或多个特定过程域的能力,可以择CMMI的连续描述模型。使用连续描述模型,该织只需将改进工作的重点放于与特定目标过程相关过程域上。当该组织达到了该过程域的特定目标,同达到了某个能力级别的一般目标,就可以认为该组在所改进的过程域上已获得了相应的级别能力。例加果该组织成功地达到了CMMI连续描述模型的2级和第3级的一般目标,同时达到了产品集成过程第3级的特定目标,就意味着:该组织处于产品集成能力级别3级。

因此,软件组织过程改进活动出发点的不同决定了所选择模型的不同。

四、CMMI模型与其他模型/标准的关系

4,1模型关系框架图

CMMI与其他CMM以及计算机领域中相关的其他标准、规范之间的相互关系。可以看出,CMMI与15025504都是从SW一CMM发展出来的,这种先天因素决定了二者之间是相互兼容的。CMMI是一个处于开发中的产品,CMMI产品组决定尽量将CMMI与新的国际标准(包括:15015504、15012207、15015288等)兼容,为使CMMI尽早成为一个国际标准而努力,文〔幻对这一问题进行了析。

4.2CMMI与CMM

1)CMMI是“集成的”。将互补的规范集成为一个体,会对整个企业范围的过程改进带来更大的效益。MMI将系统工程和软件工程的过程改进紧密地结在一起。对于一个希望进行过程改进以提高软件能的软件组织,采用CMMI,可以对系统工程和软件程同时进行改进,甚至可以考虑关于产品集成方面改进问题。可以通过一次性的过程改进,从多个方面高组织的软件能力。如果采用以前的CMMI模型,不可能得到这种效果的。

2)CMMI过程改进方法学能够帮助组织消除内过程改进环境的冗余。如果按照几种不同过程模型行改进工作,就不得不围绕着这些模型分别建立过,这会造成改进环境的冗余,并增加了过程改进费。例如:系统工程组要建立系统工程过程改进环境,件工程组要建立软件过程改进环境。但如果使用C-MMI,只需建立一个通用的过程改进环境,不但降低了结构的重复性,而且降低了改进费用。采用这种一次性投资长期受益的方法,对于软件组织来说,是一个良好的选择。

3)能力成熟模型本身是不断发展的。各种CMM模型已经被使用了很长时间,由于技术的不断发展,原有的CMM模型己不能满足需要了,使用者发现许多重要的内容应该被加入到CMM中。于是,CMMI提供了这些内容。例如:修改了“需求管理”过程域的内容、将“风险管理”作为一个单独的过程域、引进了软件复用和产品线的概念等。新概念的引人,使得改进内容更加丰富,也更加适用。可以预见,随着技术的发展,处于不断完善中的CMMI必然会加人更多的新内容。对于采用CMMI的软件组织,可以及时、有效地使用这些新的内容而不需重新改变过程改进方法。

4)CMMI提供了一条可增长的组织范围的过程改进之路。例如,某个软件组织现在使用Sw一CMM进行软件工程过程改进,但将来会进行系统工程的过程改进,甚至IPPD,或者基于其他规范(例如:15015504)的过程改进。这些规范以后都会被包含在CM-Ml模型中。采用CMMI模型,软件组织可以从过程改进中得到最大程度的回报,即,从低向高根据组织的不同需求逐步改进各个方面的过程,直到一个理想的状态,而这也正是组织所追求的目标。

5)CMMI可以进行持续的过程改进。使用CMMI的连续模型,组织可以在一个持续的环境,而不是一个阶段性的环境中对组织本身进行评估以及改进。例如:对于许多组织,可能并不需要改进2级中的所有内容,CMMI允许组织选择3级或4级中的部分内容用于特定方面的过程改进。组织可以通过一种可选择的途径,改进某个特殊环节以解决当前对组织最为重要的问题,同时,持续的改进环境可以让组织根据自身需要更好地对模型进行裁减。

以上对CMMI的产生背景、重要意义、主要内容进行了介绍。我们认为,CMMI与以前的过程改进模型相比,是一个质的飞跃。基于SEI在过程改进方面的主导地位、CMM模型的广泛应用—并已成为事实上的国际标准、CMMI与国际标准15015505相互兼容性等因素,CMMI有可能成为新一代的过程改进标准的代表,并在软件开发工业化中发挥重要作用。