UML软件工程组织

CMMI 实施快速上路:集成 CMMI 和 RUP 过程框架

 

2007-12-25 作者:Roshan V. Uttangi,Rizwan Syed Abdul Azeem Rizwan 出处:IBM

 

本文内容包括:
本文对 CMMI 和 RUP 的结合进行了全方位的探索:为什么这么做?如何开始?将会面临哪些挑战?以及 RUP-CMMI Mapping 的 Wipro 插件程序如何能够为您所在机构的过程提供支持?请参见本文结尾处的 Webinar 链接。

 在利用 CMMI® (Capability Maturity Model® Integration) 创造商业利益成为许多公司的关键目标的同时,削减定义周期和 “快速跟踪” 实施却是难于定义或描述的。CMMI 由于其架构的规模和复杂性,已经让许多公司望而却步;它涉及到 22 个过程域和 43 个特定目标。除此之外,尽管有一些方法能够将 CMMI 和敏捷方法结合起来,但是采用更加敏捷实践的尝试看起来同该框架并不太一致。

有相当多的标准支持过程管理系统的设置。每一个标准都提供一组开发和交付高质量软件应用程序的最佳实践。诸如 CMMI 这样的过程模型提供设置一个过程框架和测量其性能和成熟度的指导。与此同时,像 IBM® Rational Unified Process® 这样的架构提供可以被进一步定制的过程定义。

CMMI 所描述的是软件开发方法 “是什么”,而 RUP 的目标则是具体到 “如何做”。也就是说,CMMI 提供设置过程架构的指导,并且测量其性能和成熟度,而 RUP 提供可复用的过程定义,并且能够在 CMMI 的指导下逐行定制。

在本文中,我们将探索 RUP 和 CMMI 相结合的可能性,使其最大限度的协同工作,最小限度的冗余,并且处理它们共同定义的过程中的任何一个差异。那些将这两个架构结合起来的公司,将会从它们所提供的过程指导和评估能力方面获益匪浅。为了从这一结合中充分得到收益,现存的差异就需要被处理。

为什么要将 CMMI 和 RUP 结合起来?

为什么一直执行 RUP 的公司需要关注另一款过程模型,例如 CMMI 呢?为了回答这个问题,您既需要理解 RUP 也需要理解 CMMI。这些标准有很多共同之处,也表现出许多独特的性质,这些性质使得公司将过程定义在这两种过程模型的基础上都十分有价值。

CMMI 概述

我们从总结 CMMI 和 RUP 分别 “是什么” 开始。就其关键方面而言,CMMI 是:

  • 一个用于对系统开发和维护进行过程管理和质量提高的集成的、常识性的程序
  • 经过实践检验的过程元素的一个结构化框架
  • 作用于企业范围内提高和改变的路标
  • 用于系统性能评价的根本结构

图1描绘了 CMMI 的结构。

CMMI 的基本元素

图1:CMMI 的结构

RUP 概述

就其关键方面而言,RUP 是:

  • 一个基于模型软件开发种最佳实践,为企业的软件开发努力提供指导的软件工程过程
  • 一种关注于在可预测的预算和进度内,向终端用户交付满足他们需要的高质量软件的过程架构
  • 一个广阔的知识基地,在线交付并且由软件开发工具结合而成
  • 一种能够通过改造和扩展来满足企业需要的灵活的方法

图2描绘了 RUP 的结构。

RUP 的关键元素

图2:RUP 的结构,正如 RUP 产品本身所描述的那样

将 RUP 和 CMMI 结合起来的优势

一个基于 RUP 和 CMMI 的结合的过程架构能够帮助企业最大限度的从这两种高价值的过程标准中获益:RUP 作为强大的而且已经被证明的软件开发最佳实践,有助于访问开发过程和关注它们的持续提高——所有这些都是基于一个预先打包并且可以复用的插件程序的支持,我们将在下面对其加以讨论。

RUP 定义了那些能够在项目团队之间易于配置的过程。使用 RUP 执行 CMMI 能够有助您在交付高质量软件的过程中对 RUP 过程进行控制和监测。

应用 RUP/CMMI 过程架构的优势包括:

  • 通过使用 RUP 指导和资产,加速 CMMI 过程的执行,从而简化整个过程的定义
  • 从 IBM Rational 获得广泛的工具支持,执行与 CMMI 兼容的过程的能力
  • 大范围的 “现成的” 过程定义提供了 “混合和匹配”的潜能——例如,RUP 过程能够被用于定义您的工程过程,而 CMMI 能够被用于定义您的支持过程
  • 将 RUP 那种更具开发者友好性的风格融入 CMMI 中

映射 RUP 和 CMMI

为了避免在定义 RUP 和 CMMI 结合过程架构中的冗余,分层比较这两个过程模型是很重要的。辨认出它们之间的差异能够有助于确保最终的架构能够处理您开发周期中的所有方面。

尤其是对于 CMMI 层次3来说,43 个特定目标需要被映射到 RUP 工作流和活动中。当差异被辨认出来后,来自 CMMI 的元素就能够补充 RUP 过程来消除这种差异。表1中对两个过程的元素做了逐一的比较,这是识别差异和创建所缺少的元素来补充 RUP 的第一步。

表 1: CMMI 和 RUP 元素的比较
 
CMMI 元素 映射到 RUP 元素
过程域 工作流或活动
特定实践或目标 活动或任务
一般实践或目标 活动或任务
子实践或目标 活动或任务
工作产品 工作产品/模版/检查单/指南

在定义以上映射的操作中,我们将 CMMI 视作一个参考,并且将 RUP 过程映射到 CMMI 上。基于对每一个过程域的考虑,相似的映射应该在该级上被执行,如果有可能的话,由一组专家负责执行作用于软件开发和维护的 RUP 和 CMMI。更好的做法是指派两组专家去执行该映射,一组负责 CMMI-to-RUP 透视图,另一组负责 RUP-to-CMMI 透视图,然后通过集中讨论对它们之间的显著区别加以处理。

表2描绘了与 RUP 相关的 CMMI 层次2和层次之间的映射和 “差异分析”。

表 2: RUP 和 CMMI 的映射结果
 
成熟度级别 过程域 在 RUP 中支持的程度
级别 2
项目计划 支持的中等层次;RUP 不包括项目的非软件方面的计划。
需求管理 没有明显的差异。
项目监督与控制 RUP 需要被增强,从而包括对事项的监测和对数据管理活动的监测。
供应商协议管理 在 RUP 中没有被定义。
度量与分析 RUP 需要被增强,从而包括报告和分析的细节。状况评价来包括项目的定量分析。
过程与产品质量保证 没有明显的差异。
配置管理 没有明显的差异。
级别 3
需求管理 没有明显的差异。
技术解决方案 RUP 需要被增强,从而从候选标准中定义选择的解决方案的过程。
产品集成 没有明显的差异。
验证 RUP 需要被增强,从而为评审定义一个记录机制。
确认 没有明显的差异。
组织过程聚焦 在 RUP 中没有被定义。
组织过程定义 + IPPD 在 RUP 中没有被定义。
组织培训 在 RUP 中没有被定义。
集成项目管理 + IPPD RUP 需要被增强,从而加强计划的综合以及它们之间依赖关系的管理。
风险管理 RUP 需要被增强,从而包括识别风险参数和风险管理策略的过程。
决策分析与决定 在 RUP 中没有被定义。

创建更加详细的映射

表3更加详细的显示了从一个 CMMI 过程域到 RUP 的映射的结果

表 3: 一个 CMMI 过程域的详细映射结果
 
项目计划:CMMI 2 级过程域
映射要点:
项目管理是一个支持学科,并且项目经理是一个关键的角色,它通过建立和维护定义项目各项活动的计划来担负其责任。软件开发计划是一个复杂的、合成的事物,它将所有需要的信息收集起来对项目进行管理。它包含了许多在先启阶段被开发的产品,并且在整个项目中被加以维护。
CMMI 特定目标 RUP 流程 RUP 工件 映射说明
SG 1: 项目计划参数的评价被建立和维护 项目管理 软件开发计划,业务用例 类比规模,分析规模,以及软件工作量规模在 RUP 中讨论。
1. RUP 中没有提供有关非软件项目属性(比如劳动力、机器、原材料)规模的指导。
2. RUP 中没有涵盖评价过程。
SG 2: 项目计划作为管理项目的基础被建立和维护 项目管理,环境 软件开发计划,迭代计划,问题列表 项目计划不包括:
1. 数据管理计划(维护数据的交付和分发的计划)。
2. 维护不同介质的数据的计划,例如电子介质、硬拷贝等。
3. 维护不同形式的数据的计划,例如报告、手册、软件、证书、表格、规范等。
SG 3: 项目计划的委托事项被建立和维护 项目管理 工作顺序,产品验收计划 没有明显的差异。

在 RUP 中从映射创建额外的过程资产

RUP 到 CMMI 映射的更深一层限定了定义过程资产的映射。在这一层上,小心的分辨 RUP 中的差异是十分重要的,因为在结合这两个框架方面,这是典型的“真金火炼”。表 4 是一个需要在 RUP 中被创建或者增强的过程元素的快照,它用来处理同 CMMI 的兼容性问题。

表 4: 是 RUP 适应 CMMI 的额外的元素
 
CMMI 过程域 需要被插入的 SG 要在 RUP 中创建或增强的元素
项目计划 SG1, SG2 用已经被包括的必须的模板对程序进行评价。软件开发计划已经被增强,从而包括数据管理计划。
项目监督与控制 SG1 项目监控过程已经被增强,从而包括对事项的监测和对数据管理活动的监测。
验证 SG2 用于捕获和跟踪评审的工件或模版已经被添加进插件程序中(请看下面)。
风险管理 SG1 一个新的活动“Defining Risk Parameters and Risk Mgmt Strategy” 已经在项目管理流程中被详细的定义。工件 "Risk Management Plan" 已经被增强。

图3描绘了如何将 RUP 资产插入到 CMMI 技术解决方案过程域中。

将 RUP 资产插入到 CMMI 技术解决方案过程域中

图3:将 RUP 资产插入到 CMMI 技术解决方案过程域中

图 4 显示了修改过程资产的截图,它以 RUP 的格式定义。

图 4 显示了修改过程资产的截图,它以 RUP 的格式定义

图4:新的 RUP 过程资产的截图

在 RUP/CMMI 结合中面临的挑战及其解决方案

通常,希望执行 RUP 和 CMMI 的企业最终定义了单独的过程架构。许多企业使用一组 RUP 过程用于开发(往往配置 RUP 过程资产完全使用“现有的过程”)。然而,为了和 CMMI 兼容,他们定义了单独的 RUP 过程。这就在过程文档中产生了冗余,并且给 RUP 和 CMMI 的执行都提出了挑战。

增强您现已存在的 RUP 过程框架的一个更加有效的解决方案是,使其同 CMMI 的最佳实践相符合。如同上面的 CMMI-RUP 映射中所描绘的那样,RUP 几乎覆盖 CMMI 所要求的 80% 的过程域。所以问题来了,如何才能最好的处理其余的 20% 从而使得 RUP 完整起来并且同 CMMI 透视图向符合呢?

面向 IBM Rational Method Composer 的 RUP-CMMI 映射的 Wipro 插件程序能够处理本文中所讨论的 RUP/CMMI 结合的需要。它提供了经过验证的程序、最佳实践、模板、指导、以及其他来自 RUP 的过程资产,用基于上面所描绘的差异分析的额外的架构元素对其加以补充。该插件程序充分借鉴了 Wipro 在遵从 CMMI Maturity Level 3 要求方面所积累的经验和过程成熟度。

图5描绘了包括在插件程序中的若干资产。

针对 RUP-CMMI 映射的 Wipro 插件程序

图5:针对 RUP-CMMI 映射的 Wipro 插件程序

如果需要的话,这些架构元素能够被进一步增强或者修改,以适合公司的特定需要。Rational Method Composer 的过程创造能力在执行定制和管理方面,提供了额外的灵活性。

参考资料

学习
  • 您可以参阅本文在 developerWorks 全球网站上的 英文原文
  • 您可以参阅 Rational Edge 电子月刊中文版 的其他文章。
  • 参加 Webinar
    From Chaos to Continuous Improvement: Leveraging RUP Software Delivery Best Practices for CMMI
    2007 年 10 月 17 日,11am -- Wipro Technologies 和 Carey Schwaber 赞助,来自 Forrester Research 的高级分析师。
    无论你的组织是刚开始 CMMI,还是在巩固已有的成果,加入 Wipro Technologies 和 IBM Rational 软件在 10 月 17 日的一个教育 webinar:
    * 了解专家有关 CMMI 的软件交付最佳实践
    * 理解存在于 IBM Rational Unified Process (RUP) 和 CMMI 之间的强有力的协同
    * 了解一个准备好的解决方案,帮助你通过研究这些协同来快速跟踪你的质量
    注册,或查看重播。
  • 了解更多的有关 CMMI 的信息:Capability Maturity Model for Software (CMM)
  • 支持采用 CMMI:wibas GmbH home
  • The Rational Unified Process and the Capability Maturity Model -- Integrated Systems/Software Engineering,一本由 Brian Gallagher 和 Lisa Brownsword 以及 Carnegie-Mellon 大学的软件工程协会 (SEI) 所出的教程。可在 SEI 的网站获得 (pdf 文件)
  • Mapping RUP to CMMI,一本由 Number Six Software 的 Ken Clyne 所作的教程:Mapping RUP to CMMI(PDF)
  • 了解更多的有关 RUP-CMMI 映射的 Wipro 插件的信息:Wipro plug-in for RUP-CMMi mapping
讨论
  • 参与论坛讨论
  • 现在开办了一个特别为 Rational Edge 的文章创办的 新论坛,现在您就可以分享您对本文或本期杂志或以前杂志中的其他文章的想法。阅读世界各地您的同行们所说的内容,生成您自己的讨论,或者加入正在进行的讨论。单击这里开始。
  • 全球 Rational 用户组社区