关键词 KAP 、 CMM 、 CMMI 、 SCAMPI 、 KP
1 引言
自 1990 年起美国卡耐基梅隆大学软件工程研究所发布 SW-CMM v1.0 (软件能力成熟度模型)以来, SEI 针对不同领域的要求对 SW-CMM 先后进行改进,并衍生出了一系列成熟度模型。其中比较重要的包括:系统工程能力成熟度模型( SE-CMM ) , 软件采购能力成熟度模型( SA-CMM ),集成产品开发能力成熟度模型( IPD-CMM )等。 但是这些具有针对性的模型又带来了一些新的问题。软件公司的业务一般都不是单一的,有的公司可能同时从事软件开发、硬件开发、还可以进行软件采购。此时采取多个模型必定会使很多关键过程域,关键实践产生重叠,增加了开发费用。
2001 年 11 月 SIE 推出 CMMI V1.1 ,将以上模型集成,解决了多模型之间的重叠问题。同时 SEI 发表了针对 CMMI 的一套评估体系 SCAMPI SM V1.1 ,替代 CBA IPI and SCE SM 并打算 CMMI 取代 CMM 。已有许多组织开始向 CMMI 过渡。
CMMI 的基础源模型包括:软件 CMM 2.0 版(草稿 C ) , EIA-731 系统工程,以及 IPD CMM (IPD) 0.98a 版,它涵盖了系统工程,软件工程,集成的产品和过程开发( IPPD )和供应商来源四个知识领域。它有阶段式( staged )和连续式( continuous )两种表示法。本文为了方便和 CMM 进行对比,将 CMM 和 CMMI 均采用阶段式表示。
关于 CMM 和 CMMI 本文不做详细介绍,相关资料较多,对 CMM 和 CMMI 不太了解的读者可见参考书 [1] 、 [2] 。
2 从 CMM 到 CMMI 的映射
CMM 到 CMMI 的映射是一个复杂的体系,它涉及到 KPA 重构, KP 的再组织。图 1 只是从总体上描述了 CMM 到 CMMI 的映射关系。
图 1 CMM 到 CMMI 的各级映射CMMI3 级中增加了需求开发( Requirements Development )、技术解决方案( Technical Solution )、产品集成( Product Integration )、验证( Verification )、确认( Validation )、风险管理( Risk Management )、决策分析和决定( Decision Analysis and Resolution ) KPAs 。 CMM 中的软件产品工程 KPA 被需求开发,技术解决方案,产品集成,验证,确认 KPAs 所取代;同行评审 KPA 被融入到验证 KPA 中; CMM 中集成软件管理 KPA 所阐述的风险管理在 CMMI3 中形成了一个独立风险管理 KPA 。同时集成软件管理和组间协调 KPAs 合并成集成项目管理 KPA 。合成团队、决定分析和解决方案、组织的一体化环境 KPAs 是全新的,其过程内容在 CMM 中没有提及。
CMMI4 中没有新的过程域,只是对原来的定量过程管理,软件质量管理 KPAs 重新构建为定量项目管理和组织过程性能 KPAs 。
CMMI5 中的技术变更管理和过程变更管理 KPAs 合并为组织革新与技术推广 KPA ,缺陷防范 KPA 重新构建为原因分析和解决方案 KPA 。
4 CMM 到 CMMI 的升级
4.1 升级前的准备工作
(1) 回顾 CMMI 模型和其他的 CMMI 信息,确定如何使 CMMI 最好的满足组织需要( 2 )拟订升级策略。( 3 ) 在升级过程中确保以前用于 CMM 改进的投资得到维持和运用( 4 )将升级事项通告客户( 5 )将对现有过程域和新增过程域的改进费用编入预算,并提供有关改进需要的培训。( 6 )确定组织升级计划的风险表并管理这些风险,关键要识别 CMM 和 CMMI 之间的差异以及这些差异如何得到支持。
4.2 .升级的方法:
一旦做好了升级前的准备工作,弄清了升级可带来的利益和成本,可执行下列活动进行升级,这些活动是迭代的。
( 1 ) 选择适合组织最好的 CMMI 模型。 CMMI 覆盖各种知识体,包括项目管理,软件工程,系统工程,集成产品,过程开发供应商来源。按组织的商业目标选择模型。
( 2 )选择最适合组织的表示法。 CMMI 有阶段式表示法和连续式表示法,由于 CMM 采用的是阶段式的表示法,许多组织都采取 CMMI 阶段式表示法,若组织对连续式表示法较熟悉,也可以采取连续式表示法。
( 3 )将选择的 CMMI 模型与 CMM 对比,确定需要变更的范畴。具体的对比见上文。 变更的主要活动是对 CMMI 中重组的 KPA 及 CMMI 中新增的 KPA 进行更新。
( 4 ) 确定升级会带来的影响。
( 5 )向 CMMI 升级因该报高级管理层的认可。
( 6 )变更组织目前的过程改进计划以支持 CMMI 升级。过程改进计划要反映出工作的优先级、组织所需增加的新部门。将该计划送交评审,得到关键储金保管者( key stakeholders )的许诺和认可,计划要说明升级可能带来的管理风险和进度风险,所需的培训,工具,和服务支持。传达这个计划并保持更新。
( 7 )确保对工程过程组,技术工作组及其他相关的员工进行 CMMI 的培训。
( 8 )获取 SCAMPI 评估支持。
( 9 ) 修改每个项目已定义的过程使其与项目改进计划一致。
( 10 )给每个项目制定升级进度表 不同的项目升级进度表可能不同,如果有的升级工作已经完成则该工作可以抛弃。
( 11 )执行 SCAMPI 评估,看是否所有的目标过程域和目标得到支持。
5 处于 CMM 不同成熟等级的组织所做的具体工作 :
( 1 ) CMM1 级:
如果组织正使用 CMM 模型致力于过程改进而并处于 CMM1 级,那么组织应该继续用 CMM 模型。在改进的同时,组织将 CMM2 与 CMMI2 进行对比和差异确认,分析这些差异中哪些是对组织有价值的。当组织刚达到 CMM2 级时其主要工作时立即从 CMM2 向 CMMI2 升级。
( 2 ) CMM2 级,
组织应该把其当前的过程改进向 CMMI2 级映射,填补两者之间的差距,从 CMM2 升级到 CMMI2 完成后,在下一步的工作中采用 CMMI 模型进行过程改进。主要有一下几方面
(1) 将 CMM 中分散的测量分析活动集中到 CMMI2 级测量分析 KPA 中,形成一个独立的过程域,提高开发的透明度。
(2) 重定位测量分析 KPA ( Measurement and Analysis )的共同特征( common feature )
测量分析 KPA 重组见表 1 所示。
表 1 测量分析 KPA 重组
测量分析 KPA 的目标 |
CMM 共同特征∕目标 |
SG1 |
QPM Co 2 Ac1,3,4,5,6 |
SG2 |
TCM Ab 4 |
GG2 |
QPM Co 1 Ab 2,3,4 |
Co 表示执行的约定; Ab 表示执行的能力; Ac 表示执行的活动; SG 表示特殊目标( Special Goal ); GG 表示一般目标( Generic Goal );其他可类推。
( 3 ) CMMI3 级
①将 CMM 软件产品工程 KPA 分解为需求开发、技术解决方案、产品集成、认证、确认 KPAs ,并进行扩充。
②了解 CMMI3 级中新增的决定分析和解决方案、合成团队,组织一体化环境 KPAs ,并填补。
③迭代 CMM2 级的工作。
6 结束语
卡内基梅隆大学软件工程研究所推出 CMM Version 2.0 draft C 后就停止了在 CMM 的改进。 CMM 被 CMMI 所取代是大势所趋。许多正在运用 CMM 模型进行软件过程改进的组织纷纷向 CMMI 升级。而 CMMI 模型迄今还没有成熟,卡内基梅隆大学软件工程研究所 推出了 CMMI-SE/SW 1.1 和 CMMI-SE/SW/IPPD ,在目前的产品集中没有关于软件采购方面的内容,估计以后还会推出这个科目。而且从 CMM 向 CMMI 升级也只是处于尝试阶段。组织升级的操作过程,运用 CMMI 模型所带来的效益等信息还很匮乏,这些信息也为未能及时反馈到卡内基梅隆大学软件工程研究所,这也给 CMMI 模型的改进及向 CMMI 的升级工作带来了一定的难度