一、UCM简介
Unified Change Management (UCM)是Rational管理软件开发中变更的一种方法。它适用于从最初需求到最终发布的整个软件开发周期,可管理需求,设计模型,文档,组件,测试案例,及源代码中的所有变更。
UCM是使用ClearCase来进行版本控制和配置管理的一种模式。它基于Base ClearCase,在Base ClearCase之上提供了高层抽象,可在不了解Base ClearCase细节的情况下有效使用,简单易用。UCM的核心是基于活动(Activity)的变更和配置管理。它需要变更管理工具ClearQuest和配置管理工具ClearCase两者结合起来使用。
二、为何要用UCM
当今有多种软件配置管理工具可供软件开发团队选择,那为什么我公司要采用基于ClearCase和ClearQuest的UCM呢?主要是了解到UCM会带来以下益处:
1. 简单,易用
UCM建立在Base ClearCase之上,它定义了一种基于活动的变更管理方法,为项目开发提供了统一和简单易用的处理流程。任何需求和设计变更,以及缺陷修正,都以活动的方式展现在开发者面前,开发人员针对这些明确而实际的任务展开变动。通过直观的图形用户界面,无论是项目管理员还是开发人员,都可以在无需掌握Base ClearCase中相对复杂的操作情况下,完成日常的变更管理工作。诸如项目的建立,开发人员工作空间的创建,针对活动的工作,项目的整合,变更的追溯等等,都可以在简便的图形用户界面上进行。
2. 独立的工作空间
项目中每个开发者拥有一个或多个开发流(Stream),在每次项目整合之前,开发者均工作在自己的开发流上,通过关联到开发流上的视图(View),进行活动的选择,文件的检出,检入等工作,开发者相互不干扰。
3. 任务清楚,明了
对于需求和设计的变更以及缺陷的修正,项目管理者首先在ClearQuest中提交相应活动并分配给相关开发人员。相关开发者在ClearCase Explorer中,在自己的开发视图之My Activivities下,可清楚地看到当前分配给自己的任务。另外,如果在ClearQuest中设置相应Email Rule,相关开发者还可及时收到由ClearQuest自动发送的关于被分配任务的通知邮件,使得任何变更都可及时知会相关责任人。
4. 易于项目整合
每个项目除拥有多个开发流之外,还拥有一个集成流。集成流收集来自所有开发者所交付的成果。每个版本或Build需要整合与建立之前,项目经理决定需要包含哪些变更,然后通知各开发者提交相关活动,接下来开发者 从自己的开发流上把已实施的活动提交到项目的集成流上,与活动对应的所有文件变更从而被交付到集成流。项目的整合与建立在对应到集成流上的视图上进行。通过在ClearCase及ClearQuest中的查询,测试人员可准确地知道所要测试的版本有哪些功能变更。
5. 变更的追溯简便且直接
软件开发中经常需要查询针对某个功能的变动和缺陷的修正,有哪些文件被改过,以及文件的具体变动内容。使用UCM,在ClearCase和ClearQuest中,都可以通过方便的图形界面,查看到这些Change Set。对于每个vob不同基线之间的变化,也可以方便地查到。
6. 强大的与其它工具的集成功能
Ratioanl不仅将UCM集成到Rational的其它工具中(如建模工具Rose和Rose RealTime),更把它集成到许多流行开发工具中,如Microsoft Visual Studio, Sybase PowerBuilder, Adobe FrameMakeer等,还可以在Windows Explorer中直接使用。
三、UCM的工作流程
如图1,2,3所示,在UCM中,软件的循环开发过程可分为项目管理循环和开发循环。
图2 项目管理循环
图3 开发循环
具体为:
项目管理员创建项目及项目中的各组件,定义各组件的初始基线 开发者加入项目,创建自己的开发流和视图,建立私有工作区 项目经理和开发者创建和分配活动,开发者找到分配给自己的活动 开发者工作在活动上,在自己的私有工作区上进行文件的检出,检入和测试
开发者完成活动后,通过交付活动到项目集成流使其工作在项目共享工作区中体现项目管理员在项目共享工作区中集成由开发者交付的工作项目管理员根据需要在项目共享工作区中周期性地创建新的基线 开发者从新基线更新其私有工作区,以包含此基线对应的目录和文件之版本 开发者继续下一循环的工作,即查找活动,在活动上工作,交付活动,从新基线更新其私有工作区 项目管理员根据需要在项目共享工作区中周期性地调整基线的提升级以反映该基线的状况。