CMMI是一套融合多学科的、可扩充的产品集合,其研制的初步动机是为了利用两个或者多个单一学科的模型实现1个组织的集成化过程改进。从长期考虑,CMMI产品开发群组建立了1个自动的、可扩充的框架,以便于以后将其他一些学科的过程改进模型也逐步添加到CMMI产品集中。总的而言,CMMI 集成达到了两个目的:一是提炼出了多学科之间的一些公共过程域,另一方面就是减少了过程域的总数量。
1、CMMI模型系列
现在业界使用的CMMI的模型有:CMMI-SE/SW/IPPD/SS,CMMI-SE/SW/IPPD,CMMI-SE/SW,CMMI-SW。由于CMMI是可扩充的产品集合,因此今后可能还会有新的学科模型的出现。这也正好说明了CMMI模型的生命力的强大。
CMMI-SW(Capability Maturity Model Integration for Software,CMM-SW)是软件工程能力模型集成(简称为“软件能力模型集成),该模型中对于软件定制过程中需求的建立、项目计划的制订(特别关注过程)和实施,以及对软件的测试等过程都有详尽的描述。
CMMI-SE/SW(Capability Maturity Model Integration for Systems Engineering and Software Engineering,CMM-SE/SW)是系统工程和软件工程能力模型集成,在该模型中,对于四通八达工程和软件定制过程中需求的建立、项目计划的制订和实施,以及对软件的测试等过程都有详尽的描述。
CMMI-SE/SW/IPPD(Capability Maturity Model Integration for Systems Engineering, Software Engineering, and Integrated Product and ProCEss Development ,CMM-SE/SW/IPPD)是系统工程、软件工程、集成化产品和过程开发能力模型集成,该模型中对于在项目开发中必须使用交叉学科群组,必须解决对项目群组的使用、计划和组织,必须解决学科或组之间的沟通以及与集成化产品和过程开发相关的一些问题提供了解决方案模型。
CMMI-SE/SW/IPPD/SS(Capability Maturity Model Integration for Systems Engineering, Software Engineering, Integrated Product and Process Development, and Supplier Sourcing,CMM-SE/SW/IPPD/SS)是系统工程、软件工程、集成化产品和过程开发、供应商管理能力模型集成,该模型中对于供应商的选择和监督、集成化供应商管理以及供应商定量管理等方面给出了详尽描述。
上述4个CMMI模型之间是有关系的。CMMI-SE/SW是CMMI-SW的扩充,CMMI-SE/SW/IPPD是CMMI-SE/SW的扩充,CMMI-SE/SW/IPPD/SS是CMMI-SE/SW/IPPD的扩充。
2、CMMI模型的过程域
在CMMI模型中,最基本的概念是“过程域。与以前的一些过程改进模型一样,CMMI模型也只是选择对过程改进最重要的一些题目(过程),并将其编组到“域中。
在CMMI中,CMMI-SW共有22个过程域,CMMI-SE/SW共有22个过程域,CMMI-SE/SW/IPPD共有24个过程域,CMMI-SE/SW/IPPD/SS共有25个过程域。 CMMI-SW和 CMMI-SE/SW的过程域数量和名称均相同,仅在某些过程域中的提供信息的资料有所不同。CMMI-SE/SW/IPPD 比 CMMI-SE/SW增加了2个过程域,并扩充了CMMI-SE/SW的1个过程域,因此CMMI-SE/SW/IPPD共有24个过程域。CMMI-SE/SW/ IPPD/SS 比 CMMI-SE/SW/IPPD增加了1个过程域,因此CMMI-SE/SW/IPPD/SS共有25个过程域。
3、CMMI模型的标明法
在CMMI中,每一种CMMI学科模型都有两种标明法:阶段式标明法和连续式标明法。
不同标明法的模型具有不同的结构。连续式标明法强调的是单个过程域的能力,从过程域的角度考察基线和度量结果的改善,其关键术语是“能力;而阶段式标明法强调的是组织的成熟度,从过程域集合的角度考察整个组织的过程成熟度阶段,其关键术语是“成熟度。
尽管两种标明法的模型在结构上有所不同,但 CMMI 产品开发群组仍然尽最大努力确保了两者在逻辑上的一致性,二者的必须构件和期望部件大部分都是一样的。过程域、目标在两种表法中都一样,特定实践和共性实践在两种标明法中也不存在根本区别。因此,模型的两种标明法并不存在本质上的不同。组织在进行集成化过程改进时,能够从实用角度出发选择某一种偏爱的标明法,而不必从哲学角度考虑两种标明法之间的差异。从实用角度讲,这两种标明法各有优点,各有适用范围。
(1) 阶段式标明法
软件CMMI是一种阶段式模型,该模型经过多年的成功使用已经被证明是有效的,这为选择阶段式标明法模型提供了最强有力的证据。考虑从不成熟组织向成熟组织的发展过程,阶段式标明法具有两方面优势。
首先,阶段式模型为支持组织的过程改进提供了1个过程平台,该模型将软件组织的软件能力成熟度描述为5级。对于着眼于改善过程成熟度的组织而言,阶段式模型提供了一种明确的、行之有效的跨越式发展途径。阶段式模型中所描述的组织的5 个成熟度等级中,每实现一次等级间的跨越,组织就致力于解决某一方面的问题。例如,组织从成熟度等级1到成熟度等级2,主要致力于项目管理过程的改进;从成熟度等级 2到成熟度等级 3,主要致力于广泛的组织级过程的改进;从成熟度等级3到成熟度等级4,致力于对过程定量管理的过程的改进;从等级4到等级5,致力于技术革新和优化过程的改进。通过这种方式,阶段式模型明确了组织进行过程改进的最佳次序。
其次,阶段式模型能够为组织定义1个过程成熟度等级,便于进行跨组织的比较。在阶段式模型中,每1个过程域都被指定归属到1个成熟度等级中,因此,基于阶段式模型为组织所定义的成熟度等级中,过程域的预期范围和应用将变得非常清晰。这样,在对不同的组织进行比较时,只要对比组织所达到的不同的成熟度等级,即可知道不同组织在执行过程域方面所存在的差别。
阶段式标明法存在两方面的缺点。
一是阶段式标明法采用分组形式,将过程域区划到5个等级中。在通常情况下,1个组织要到达某1个等级,必须满足该等级以及低等级的所有过程域,因而缺乏灵活性。
此外,阶段式标明法的每个等级都有较多的必须同时进行的过程改进,因而工作量大,所支出的成本也很大。
(2) 连续式标明法
相比之下,连续式模型不如阶段式模型常用,采用连续式模型也有如下两方面的优势。
首先,连续式模型为用户进行过程改进提供了比较大的自由度。如同上面所说,阶段式模型明确了组织进行过程改进的最佳次序,但同时也限定了用户在进行过程改进时必须遵循单一的改善路径。而连续式模型则容许用户根据组织的业务目的来选择过程改进活动的次序。在连续式模型中,用户能够选择定义组织的成熟度等级,同时还能够选择定义更适合于自身业务环境的过程域的次序。组织能够在1个自己选择的次序中使过程域达到给定的能力等级,而不必遵循单一的阶段式模型的原则。
其次,基于连续式模型对组织的过程进行的评估,其评估结果具有更好的可见性。在连续式模型中,能够为每个过程域定义多个能力等级,从而能够增强对过程改进中强项和弱点的认识。由于连续式模型是对每个个别的过程域进行单独的评定,并给出个别过程域的能力等级特征图,这样更便于观察。
连续式标明法也存在两方面的缺点。
一是由于连续式标明法没有规定过程域应用的顺序,因而组织的过程改进必须软件过程改进专家的指导,以便明确组织必须改进的过程和改进的先后次序。此外,尽管组织应用连续式标明法进行了过程改进,但难以与其他软件组织进行组织间过程能力的比较。