媒体监测和推荐平台

特别报道

当前位置:首页 > 特别报道 > 详细内容

CMMI SE/SW V1.1

文/Soft Tech公司CMM /CMMI 咨询专家  刘海笑 

背景:CMMI 是卡内基梅隆大学2001年9月推出的比较成熟的系统工程和软件工程的集成成熟度模型(Capability Maturity Model Integrated)。这个模型可以指引一个组织去改进其用于开发、维护及购买产品和服务的过程。该模型包括了连续模型和阶段模型这两种表示方法,一个组织根据自己的过程改进要求可以自由选择合适的表示方法来使用。

CMMI  与 CMM  对比:

CMMI 模型的前身是SW-CMM 和SE-CMM ,前者是关于软件开发的能力成熟度模型,后者是系统工程的模型。在这里,为了加深理解,把CMMI  与SW-CMM 作一个初步的比较:

首先,在CMMI 模型中出现了连续模型。这就允许参与评估的组织能够用一种更加灵活的方式来对自己的过程进行评估。我们还能够回忆起这样的例子:在实施和评估SW-CMM 的时候,只不过因为2级中有一个KPA (关键过程区域-Key Process Area)没有满足,即便我们在三级和4级上做了很多有益的工作,很多3、4级的KPA都满足了,最终的评估结果仍然因为这个2级KPA的未满足而只能止步于1级。这样的结果对一个组织的士气和过程改进的阶段成果的认可都有非常负面的影响。而在CMMI 的评估中,可以选择需要的PA(过程区域-Process Area), 针对每一个PA分别评判级别。这样可以帮助一个组织以及这个组织的客户更加客观和全面地了解它的过程成熟度,而不是像SW-CMM 中一样,一个数字决定一切。同时,连续模型的采用可以给一个组织在进行过程改进的时候带来更大的自主性,不用再像SW-CMM 中一样,受到级别的严格限制。 

这种改进的好处在于灵活性和客观性强,弱点是由于缺乏指导,一个组织可能缺乏对PA之间依赖关系的正确理解而片面地实施过程,造成一些过程成为空中楼阁,缺少其他过程的支撑。

其次,CMMI 模型中比SW-CMM 进一步强化了对需求的重视。我们常说,怎么强调软件需求都不为过,但是在SW-CMM 中,只有需求管理这一个KPA,也就是说,强调对有质量的需求进行管理,对如何获取需求则没有提出明确的要求。而在CMMI 的阶段模型中,3级有一个独立的PA叫做需求开发,提出了对如何获取优秀的需求的要求。

再次,CMMI 模型对工程活动进行了一定的强化。在SW-CMM 中,只有3级中的软件产品工程和同行评审两个KPA是与工程过程密切相关的,而在CMMI 中,则是将需求开发、验证、确认,技术解决方案,产品集成作为单独的PA进行了要求,从而在实践上提出了对工程的更高要求和更具体的指导。

CMMI 中还强调了风险管理。不像在SW-CMM 中把风险的管理分散在项目计划和项目跟踪与监控中进行要求,CMMI 3级里包含了一个独立的PA叫做风险管理。

最后,因为SW-CMM 中对度量与分析的要求比较笼统和空泛,CMMI 中将度量和分析作为一个独立的2级PA进行要求,从而强调了量化管理这个方面。这与当前流行的6西格马不谋而合。

CMMI  概要:

在CMMI 模型中,两种表现方式(连续的和阶段的)从他们所涵盖的过程区域上来说并没有不同,不同的是过程区域的组织方式以及对成熟度(能力)级别的判断方式。具体的评估方法,请参见 SEI 的 SCAMPI 评估方法(Standard CMMI  Appraisal Method for Process Improvement) <http://www.sei.cmu.edu/cmmi/products/assess.html>。

熟悉CMM 模型的人会发现,在CMMI 模型中,将目标和实践进行了改变。首先是名称上的改变,将关键过程区域(KPA)变成了过程区域(PA)。其次,将每一个PA的目标分成了通用目标(Generic Goals)和特定目标(Specific Goals)。这是对CMM 中关于制度化部分的一种强调,而且正是因为有了这个变化,在连续模型中出现了0级和1级的区分。针对目标的细分,实践活动也进行了细分。活动也变成了通用活动和特定活动两种。

对于连续模型,每一个过程区域都具有6个级别:

连续模型中可以为每一个过程区域判定能力级别,这样就可以避免像在CMM 模型中那样,就算其他的领域都做得很好,只是因为有一个KPA中有一个目标不能达到就使得评估结果只能是1级的尴尬局面。连续模型和阶段模型中的过程元素都是一致的,在连续模型中,过程区域是按照过程区域分类来划分的。 

在CMMI 的阶段模型中,和CMM 模型一样,划分了五个成熟度级别,

在这里我们能够发现,在CMMI 中,对系统工程进行了特别的强调,在3级中的需求开发,技术解决方案,产品集成,验证和校验都是与系统工程直接密切相关的过程区域。