前言

二十多年来,Rational软件一直致力于提供全面可靠的软件开发管理解决方案,其中软件配置管理(software configuration management,SCM)解决方案集成了两个业界的工具:用于软件工件管理(software artifact management,SAM)的Rational ClearCase和用于缺陷及变更跟踪的Rational ClearQuest。这两个工具合在一起构成了一个市场的软件配置管理系统,提供了真正用于加速软件开发周期和流程的解决方案,这一方案已连续四年居市场第一位(摘自IDC报告:"Rational′s SCM solution continued to dominate the software configuration management market in 2001, with a 36.5 percent share. Rational′s SCM solution market share grew in 2001 despite a decline in revenue in the overall SCM market during the year.")。
在大量软件工程实践经验和用户反馈的基础上,Rational软件提出了第三代的配置管理解决方案- 统一变更管理(UCM)。这里,首先,让我们简单回顾一下软件配置管理的发展历程:软件配置管理在其不长的发展历史中不断进行演化,从七十年代基于文件(File Based)以版本控制、支持check-out/check-in模型和简单分支为主要特征的第一代软件配置管理,到基于项目库(Project Based)将元数据与配置项分开存储管理从而更好地支持并行开发、团队协作以及过程管理的第二代软件配置管理,发展到基于文件访问透明(File Transparency Based,即开发人员可以在不保留本地副本的情况下直接访问受控配置项)、全面结合变更请求管理(Software Change Management)、软件系统分析设计以及软件测试等等各个软件开发环节的完整的软件配置管理方案。而Rational配置管理解决方案UCM正是体现这一趋势的代表。


以前两代配置管理方法为基础上,Rational软件提出的统一变更管理(UCM)是用于管理软件开发过程(包括从需求到版本发布)中所有变更的"佳实践"流程。UCM定义了一个可以立即用于软件开发项目的一致并基于活动的变更管理流程。通过Rational ClearCase和ClearQuest的支持,UCM已成为Rational用于软件开发佳实践的全面框架--Rationial统一过程(RUP)的关键组成部分。根据软件开发团队的具体需要,可以使用相应的过程模型来加速软件开发进度,提高软件质量并优化开发过程。


UCM通过抽象层次的提升简化了软件开发,从而使得软件开发团队从更高的层次根据活动(activity)来管理变更。通过UCM,一个开发活动可以自动地同其变更集(封装了所有用于实现该活动的项目工件)相关联,这样避免了管理人员手动跟踪所有文件变更。使用UCM还可以获得以下好处:


预定义的工作流程:可以直接采用预定义的UCM工作流程,快速提升开发组织的软件配置管理水平;
项目的跟踪和组织:项目管理人员可以实时掌握项目的新动态,合理分配资源和调度开发活动;
协作自动化:通过将许多耗时较多的任务自动化处理,UCM使得开发人员更多地将注意力集中在更高层次的开发活动上;
轻松管理基线:UCM将开发活动嵌入到各个基线中,这样测试人员确切地知道他们将测试什么,而开发人员则确切地知道其他开发人员做了什么;
支持跨功能开发组:UCM已成为Rational Suite产品中的核心部分,从而可以将从需求到测试各个阶段的工件(例如需求文档、设计模型、应用源代码、测试用例以及HTML及XML内容等)在UCM框架下进行统一集成,简化了贯穿整个软件开发周期的变更过程;
基于同一代码构件可以进行多项目开发,简化了多项目开发管理,增大了代码共享,节省了开发资源;
可扩展性:小型团队可以从ClearCase LT和UCM开始,而大型团队可以结合ClearCase的高级构建管理(build managment)功能,以及ClearCase MultiSite和ClearQuest MultiSite跨地域的使用UCM。
本文第三代配置管理解决方案:一种基于活动的配置管理过程详细描述了统一变更管理(UCM)的概念、优点以及开发团队如何通过使用Rational ClearCase,Rational ClearQuest和Rational Suite来受益。


软件开发过程中的变更

 

变更是非常频繁并且是不可避免的!
的软件开发团队面临着巨大的挑战:一方面Internet驱动下的市场要求以空前的速度来开发高质量的软件应用;另一方面,软件应用需求随着开发环境和结构的日趋复杂而变得更加复杂;加上分布式开发、高性能要求、多平台、更短和连续的发布周期--这些及其他一些因素加重了软件开发一直承受的压力,实际上现在许多软件开发团队经常在能否成功开发一个新型应用上"赌博"。


由于软件开发不同于传统意义的工程技术(如建筑、机械等),市场变化以及技术上的高速更新都注定了软件变更是非常频繁并且是不可避免的,可以说变更是软件开发的基石。一方面在软件开发环境下的内部活动以新特性、新功能增强以及缺陷修复等方式不停地制造着变更;另一方面外部因素--例如新操作环境,新工具的集成,工程技术和市场条件的改善等以另一种力量驱动着变更。


管理变更的能力是项目成败的关键!
既然变更是不可避免的,那么如何管理、追踪和控制变更显得尤为重要。尽管有多种方式可以帮助开发团队提高变更处理能力,但其中重要的一点是整个团队的协作性,这是因为以一种可重复和可预测的方式进行高质量软件的开发需要一组开发人员相互协作。随着系统变得越来越大和越来越复杂,尽管个人生产率依然十分重要,但是决定项目成败更多的是作为一个整体的开发团队的生产率。


而软件开发团队的生产率很大程度上是由其相互协作和组织活动的能力决定的,并且开发团队的成功同其如何高效地响应不断变化的环境因素紧密相连。


对在竞争激烈的市场下想占有一席之地的开发团队而言拒绝变更无疑是行不通的,只有积极面对变更,采取有效的工具、方法和流程有机地管理、追踪和控制变更才是保证开发团队成功的关键。另外,由于各种因素的变更,原来采用的工具、方法和流程也会随着组织的成长和不停变化的需求而逐步演化,因此对软件开发团队来说另一个关键的成功因素是其扩展能力。


统一变更管理
随着开发团队的成长、产品发布周期的加速以及对软件资产(包括代码、文档等)控制的加强,对基于第三代配置管理工具和过程的需要变得越来越大。Rational软件的统一变更管理(UCM)通过Rational ClearCase,Rational ClearQuest以及Rational Suite所提供的开发平台实现了贯穿整个软件开发周期的配置管理过程,即基于活动对软件构件和项目进行变更管理。


活动和工件
随着软件系统和开发团队在规模和复杂性上的不断增长,对开发团队来说如何围绕周期性的版本发布来合理地组织开发活动以及高效地管理用于实现这些活动的工件变得日益重要。活动(activity)可以是在现有产品中修复一个缺陷或者新加一个增强功能。工件(artifact)可以是在开发生命周期中涉及的任何东西,例如需求文档,源代码,设计模型或者测试脚本等。实际上软件开发过程是软件开发团队执行活动并生产工件(图1)。UCM集成了由Rational ClearQuest提供的变更请求活动管理和Rational ClearCase提供的工件管理功能。


图1:UCM集成了Rational ClearQuest提供的活动管理能力和Rational ClearCase提供的工件管理功能

活动管理


UCM中的活动管理是由Rational ClearQuest提供的,Rational ClearQuest是一个高度灵活和可扩展的缺陷及变更跟踪系统,它可以捕获和跟踪所有类型的变更请求(例如产品缺陷、增强请求、文档变动等)。在UCM中这些变更均以活动出现。