新闻资讯

从事软件企业研发管理咨询、培训和认证服务 , 以提升客户价值为目标,采用先进的管理方法精心为客户提供专业的IT管理方案

CMMI的发展

2023年10月10日

来源:

博洋达(深圳)咨询有限公司

CMMI(Capability Maturity Model Integration For Software,软件能力成熟度模型集成)是在CMM(Capability Maturity Model For Software,软件能力成熟度模型)的基础上发展而来的。

CMMI认证

CMMI是由美国卡耐基梅隆大学软件工程研究所(Software Engineering Institute,SEI)组织全世界的软件过程改进和软件开发管理方面的专家历时四年而开发出来的,并在全世界推广实施的一种软件能力成熟度评估标准,主要用于指导软件开发过程的改进和进行软件开发能力的评估。

CMM模型自20世纪80年代末推出,并于20世纪90年代广泛应用于软件过程的改进以来,极大地促进了软件生产率的提高和软件质量的提高,为软件产业的发展和壮大做出了巨大的贡献。

然而,CMM模型主要用于软件过程的改进,促进软件企业软件能力成熟度的提高,但它对于系统工程、集成化产品和过程开发、供应商管理等领域的过程改进都存在缺陷,因而人们不得不分别开发软件以外其他学科的类似模型。

自从引入基于模型的过程改进之后,工程界至少在三个重要领域已经有了变化。

首先,执行工程的环境已经变得更加复杂。工程量更大、需要更多的人员、需要跨越公司界限、发布范围更宽更广,而且必须继续加快实现的进度,以满足客户的需要。这样导致各种协调工作的大量增加。

其次,执行工程任务的方式已经有了进化。交叉学科群组、并行工程、高度自动化的过程以及多国标准等都影响到工程实践。这样一来,一个工程项目可能要涉及到几个国际标准。

最后,软件工程研究所的软件能力成熟度模型(CMM)的成功,导致了各种模型的衍生,而每一种模型都探讨了某一特定领域中的过程改进问题。各机构也已采用多种改善模型分别处理各自的关键过程问题。

在工程组织中模型的繁衍导致了过程改进目标和技术的冲突,也导致了实践人员在应用各种不同的模型来实现特定的需求时容易产生混淆,这就要求培训工作也随之增长。

所有这些变化都表明,有必要将各种过程改进工作集成起来。包含在当代工程中各种各样的学科和过程是密切交叉在一起的。在应用不同模型时,效率低下且容易混淆,常常要付出极其昂贵的代价。

因而需要有一种单一的过程改进框架而又能跨越多种学科的工具。软件能力成熟度模型集成(CMMI)就是用来解决这三类问题的。

开发和应用CMMl的主要原因有三点:

一是软件项目的复杂性的快速增长使过程改进的难度增大;
二是软件工程的并行与多学科组合;
三是实现过程改进的最佳效益。

(1)解决软件项目的过程改进难度增大问题。CMM成功实施以后,极大地提高了软件企业的开发效率和软件产品的质量,从而也提高了软件产品的可靠性和软件产业的信誉,这样人们就对软件寄予了更大的希望。人们希望软件能够完成更多、更大、更复杂的任务。

(2)实现软件工程的并行与多学科组合。CMM模型的成功实践,促进了工程和产品开发的组织发生了巨大的变革,变革的目标主要是为了消除与分段开发有关的低效。

在分段开发过程中,中间产品传给下一阶段的工作人员时,有可能要进行大量的返工,以纠正原先的理解错误。

并行工程、交叉学科群组、交叉功能群组、集成化产品群组以及集成化产品和过程开发等,都代表了在产品或服务的整个生命周期的合适时间内处理这类问题的不同方法。

这种倾向意味着设计人员和客户要与制造人员、测试人员和用户共同工作,以支持开发需求的制造组织。这种工作方式蕴涵着所有关键的相关人员要支持产品或服务开发的所有阶段。

(3)实现过程改进的最佳效益。尽管过程改进存在复杂化的因素,但软件管理专家们相信,其中的许多障碍可以通过一个集成过程改进的公共模型来克服。这种信念反映了在集成方面所进行的工作和CMMl项目的作者和评审人员的经验。

人们相信,正如通过CMM的过程改进能够产生显著的效益一样,集成过程改进也能产生更大的效益。从根本上来说,过程改进集成主要影响四个领域:成本、侧重点、过程集成和灵活性。其中某些变化可能比另一些变化容易量化,但所有这些都体现了过程改进集成的真正优势。

CMMI模型的表示法

在CMMI中,每一种CMMI学科模型都有两种表示法:阶段式表示法和连续式表示法。

不同表示法的模型具有不同的结构。阶段式表示法强调的是组织的成熟度,从过程域集合的角度考察整个组织的过程成熟度阶段,其关键术语是“成熟度”;连续式表示法强调的是单个过程域的能力,从过程域的角度考察基线和度量结果的改善,其关键术语是“能力”。

(1)阶段式表示法

软件CMM是一种阶段式模型,该模型经过多年的成功使用已经被证明是有效的,这为选择阶段式表示法模型提供了最强有力的证据。考虑从不成熟组织向成熟组织的发展过程,阶段式表示法具有两方面优势。

首先,阶段式模型为支持组织的过程改进提供了一个过程平台,该模型将软件组织的软件能力成熟度描述为5级。对于着眼于改善过程成熟度的组织来说,阶段式模型提供了一种明确的、行之有效的跨越式发展途径。

阶段式模型中所描述的组织的五个成熟度等级中,每实现一次等级间的跨越,组织就致力于解决某一方面的问题。

例如,组织从成熟度等级1到成熟度等级2,主要致力于项目管理过程的改进;

从成熟度等级2到成熟度等级3,主要致力于广泛的组织级过程的改进;

从成熟度等级3到成熟度等级4,主要致力于过程定量管理的过程的改进;

从成熟度等级4到成熟度等级5,主要致力于技术革新和优化过程的改进。

通过这种方式,阶段式模型确定了组织进行过程改进的最佳次序。

其次,阶段式模型可以为组织定义一个过程成熟度等级,便于进行跨组织的比较。

在阶段式模型中,每一个过程域都被指定归属到一个成熟度等级中。

因此,基于阶段式模型为组织所定义的成熟度等级中,过程域的预期范围和应用将变得非常清晰。

这样,在对不同的组织进行比较时,只要对比组织所达到的不同的成熟度等级,即可知道不同组织在执行过程域方面所存在的差别。

阶段式表示法存在两方面的缺点:一是阶段式表示法采用分组形式,将过程域划分到五个等级中。在一般情况下,一个组织要到达某一个等级,必须满足该等级及其低等级的所有过程域,因而缺乏灵活性。

另外,阶段式表示法的每个等级都会出现同时进行多个过程改进的情况,因而工作量大,所花费的成本也很大。

(2)连续式表示法

相比之下,连续式模型不如阶段式模型常用,采用连续式模型也有如下两方面的优势:

首先,连续式模型为用户进行过程改进提供了比较大的自由度。如同上面所说,阶段式模型确定了组织进行过程改进的最佳次序,但同时也限定了用户在进行过程改进时必须遵循单一的改善路径。

而连续式模型则允许用户根据组织的业务目的来选择过程改进活动的次序。在连续式模型中,用户可以选择定义组织的成熟度等级,同时还可以选择定义更适合于自身业务环境的过程域的次序。

组织可以在一个自己选择的次序中使过程域达到给定的能力等级,而不必遵循单一的阶段式模型的原则。

其次,基于连续式模型对组织的过程进行评估,其评估结果具有更好的可见性。在连续式模型中,可以为每个过程域定义多个能力等级,从而可以增强对过程改进中强项和弱点的认识。由于连续式模型是对每个个别的过程域进行单独的评定,并给出个别过程域的能力等级特征图,这样更便于观察。

连续式表示法也存在两方面的缺点:

一是由于连续式表示法没有规定过程域应用的顺序,因而组织的过程改进需要软件过程改进专家的指导,以便确定组织需要改进的过程和改进的先后次序。

二是尽管组织应用连续式表示法进行了过程改进,但难以与其他软件组织进行组织间过程能力的比较。

CMMI应用

CMMI是一个庞大的过程元模型,自发布以来在世界软件界产生了巨大的影响。

CMMI等级评估已经成为业界公认的标准。

CMMI的证书成了一个企业或组织能力和形象的标志,没有这个证书不仅难以获得国外项目,甚至也难以在国内一些项目的竞标中获胜。

CMMI适合企业操作,避免了某些管理体系只重理论而忽视实践的缺陷。

在我国,随着媒体的宣传和政府的支持,许多企业引入了CMMI咨询和认证,对于整个软件行业的管理提升及研发效率提高起到了很大的帮助作用。但也有一些企业引入CMMI体系后,只留下一些形式上的开发流程和文档模板,在管理上并无实质性改进。

对于CMMI,业界一直存在着两种声音,有人认为CMMI执行过度,得不偿失;也有人说它过于通用,实用价值不大;但多数人还是认同它,并根据需要加以应用。

关键词:

CMMI,CMMI的发展