本文将讲述 RMC 7.1 版本中的新功能之一,如何通过集成的三种版本控制软件之一,实现分布式环境下方法库的开发以及对方法库实现版本控制。
IBM Rational Method Composer Version 7.1(RMC) 是 IBM 在 Eclipse 平台上开发的商业化产品。它是我们之前我们称之为
IBM Rational Unified Process(RUP)的扩展部分。
方法库开发人员可以使用 RMC 轻松的定制、部署、修改特定开发团队的项目开发过程,它是一个灵活的工具平台,RMC 里内含的经典的
RUP 可以帮助项目组在整个软件开发生命周期中有效的协作,保证一致性的客户化开发过程。
IBM 将 RMC 其中部分代码贡献出来,这就是 Eclipse Process Framework(EPF),目前已经发布
EPF 1.0 版本。毫无疑问,开源的产品将使 RMC 拥有越来越多的用户。
随着 RMC/EPF 软件的推广,越来越多的人开始方法库的开发工作,其中大型方法库的开发必须由多人协同完成,如何在这种分布式方法库开发环境下实现多个用户对同一个方法库的操作就变得至关重要。
在发布版本的 RMC 7.1里,相比上一个发布的 7.0.1 版本增加了一些新特性,主要包括:
- 过程浏览器(Process Browser),用户可以直接在 RMC 中使用 RUP
- 评估(Estimation),用户可以对任务进行评估,评估结果可以方便得导入到 Rational Portfolio Manager
及 Microsoft Project,轻松实现数据的重用
- HTML 导入导出,更方便的实现在脱离RMC的情况下对方法库的翻译、修改工作
- 集成版本控制 (CM),轻松实现用户对方法库的版本控制以及分布式开发环境下多用户对同一个方法库的操作,这个新功能也是本文着重讨论的内容作
本文主要面向在流程、方法库的编写人员,也就是 RMC 的最终用户。假设读者已拥有了一定的 RMC 使用经验,熟悉非版本控制环境下的方法、过程的开发。
安装、配置 ClearCase Server 以及 CVS Server 不在本文的讨论范围内,请自行查找相关的帮助文档。本文假定读者已经准备好上述服务,并可以正确连接。
版本控制系统的功能就是记录用户的任何修改,并且可以让不同的使用者在不同的环境下方便地存取各个版本、比较版本之间的差异,便于在任何时刻回归到以前的某个版本。对于多人协作的开发环境,可以记录每个人的修改,解决不同版本之间冲突的问题。还可以对开发过程制作多个分支。
RMC 目前支持下面流行的版本控制系统:
IBM Rational ClearCase 远程客户端软件 (ClearCase Remote Client), 简称 CCRC,是
IBM Rational 推出的用于在广域网环境下进行资源配置管理的产品,是一个基于 Eclipse Rich Client 技术开发的用户界面,为用户提供了一种通过
ClearCase Web 服务器访问与使用 ClearCase 服务的便捷方式。
IBM Rational ClearCase SCM,作为 Eclipse 的插件形式提供,它使 Rational ClearCase
能够与其它基于 Eclipse 的产品(如IBM Rational Method Composer)进行集成,从而使整个项目团队能够共享一个公共的版本控制库、并行开发支持和统一变更管理(Unified
Change Management )。
CVS,CVS 是 Concurrent Versions System 的缩写,它是开放源代码软件世界的一个广泛应用的产品,特点是简单易用、功能强大,跨平台,支持并发版本控制。
下面的图示可以表示 RMC 与各个版本控制系统的关系。
图 1:RMC 与各个版本控制系统的关系
版本控制系统主要是监视并保存文件系统中文件的任何改变,而 RMC 7.1 中对所有元素的管理均通过文件实现,元素的内容以及它们之间的关系均保存在不同的元素文件中,所以,了解文件组织结构有助于更好的使用版本控制系统。
RMC 中目录的结构
图 2:RMC 中目录的结构
其中,New Library 是方法库的名称,作为方法库的顶级目录,所有隶属于该方法库的元素均保存在该目录下。下面分别列出了配置文件、评估文件以及方法插件(Test)的存放目录。
在方法插件下,分别列出下列目录:
- 能力模式
- 能力模式
- 定制类别
- 定制类别
- 任务
- 产品及产品类型
- 指导信息及附加的资源文件
- 指导信息及附加的资源文件
RMC 中元素文件的扩展名为 XMI,这是一种基于 XML 格式的文本文件,文件中记录了元素的各种属性以及元素与元素之间的关系。所有的文件均使用
UTF-8 格式存储以便在全球化应用中方便的实现方法库共享。
RMC 中的文件类型
RMC的方法库中主要由以下几个类型的文件组成,了解文件类型以及它们的作用对于更好的使用版本控制系统有很大的帮助,根据文件在版本控制系统中对其他用户的影响程度排列,它们分别是:
library.xmi
每一个方法库有且只能有一个 library.xmi 文件,这个文件包含方法库中的各个方法插件的引用关系,以及各个方法配置、内容包、流程。当前方法库中的所有插件共享这个文件,所以,在版本控制环境中,对这个文件的所有操作要特别注意。
plugin.xmi
每一个方法插件中有且只能有一个 plugin.xmi 文件,这个文件包含该插件中各个元素之间的引用关系,例如一个角色的输入输出产品列表。一个任务主要由哪些角色完成等等。
<method content element>.xmi
一个独立的元素会生成一个以元素名字命名的 XMI 文件,文件中包含这个元素的各种特定的属性。
model.xmi>br/>每一个过程有一个对应的 model.xmi 文件,这个文件中包含各种过程描述符之间的引用关系以及过程的图表。
content.xmi
每一个过程有一个对应的 content.xmi 文件,这个文件包含过程元素中的描述性文本(除名字、缩写以及简短描述以外,那些信息包含在
model.xmi 中)。
XMI 文件内容示例
<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:RoleDescription xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI"
xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.3/uma.ecore"
epf:version="1.0.0" xmi:id="-wFCUvhVz0ujOiVHZEUqpAg"
name="new_role,_yPQLcGliEduUQY6Z_b9rqQ" guid="-wFCUvhVz0ujOiVHZEUqpAg"
changeDate="2006-11-01T12:38:39.890+0800">
<mainDescription><strong>This is a Test</strong></mainDescription>
<keyConsiderations>This is a Test</keyConsiderations>
<skills>This is a Test</skills>
<assignmentApproaches>This is a Test</assignmentApproaches>
<synonyms>This is a Test</synonyms>
</org.eclipse.epf.uma:RoleDescription>
|
文件内容中的 GUID 由 RMC 在生成这个元素的同时随机产生,且在同一方法库中不允许有 GUID 相同的元素,RMC 在处理元素之间的引用关系时主要使用
GUID 来实现。
元素的其他可视属性使用标签标识各个属性的内容,以文本的方式体现。其中一些项目支持 HTML 富文本格式,如 <mainDescription> 。
通常的,这些内容的改变只在用户本地完成,对于以前的“分布式”开发而言,用户不得不手工交换数据并确认数据的可靠性,这在很大程度上限制了大型方法库的开发、应用。
RMC 7.1 集成的版本控制系统支持可以很好的监视上述所有文件的内容改变并在数据仓库中记录改变内容,以便在需要的时候恢复到相应的版本或者由小组成员共享方法库。
下面我们逐一介绍 RMC 7.1 所支持的各种版本控制系统的安装、使用的简单过程。
安装 CCRC
在软件更新界面中选择“查找和更新”,新建一个远程更新站点,输入 ClearCase WEB 服务器的地址,找到要安装的 IBM
CCRC 软件,单击下一步开始安装。
图 3:安装 CCRC
安装完成后,RMC 会提示重新启动以便使安装的插件生效。重新启动后,透视图栏中就会增加 ClearCase 可供选择。
新建视图
切换到 ClearCase 透视图,为新方法库准备一个基本 ClearCase 视图。后续的所有操作都基于这个视图来实现。
图 4:新建视图
选择服务器上已有的 VOB 作为 ClearCase 视图的存储区域。完成后,本地路径中会生成一个与服务器相同的静态视图。我们可以在这个视图中创建我们自己的方法库或者打开其他用户已经建立的方法库文件。
建立新的方法库
在静态视图中建立一个新的方法库的时候,IBM CCRC 会监视文件系统的改动,并弹出窗口提示是否将新文件或路径添加到源控制以及在添加后是否检出文件。
图 5:建立新的方法库
一般情况下,刚刚建立的元素都是会被修改的,所以,我们推荐使用“添加到源控制后检出文件”,避免下次修改的时候额外的检出操作。
完善方法库
根据需要定制的流程在方法库中添加必要的元素,例如角色、任务、流程以及修改各元素之间的引用关系。如果相应的元素所对应的文件不存在,ClearCase
会提示用户是否将这些文件添加到源控制并检出文件,否则会提示在修改前元素前必须检出文件,如果该文件已经检出,则与没有版本控制的操作一样,不会有任何提示。
在资源导航器视图里,不同文件图标代表不同的版本控制状态。
图 6:资源导航器视图
- 正常的图标(.lock,.project),表示文件不在源控制管理之下;
- 图标有外框(Test_task.xmi),表示文件已经添加到源控制;
- 图标有外框(library.xmi),并有绿色对号,表示文件已经添加到源控制,并已经检出。
检入方法库
方法库编写告一段落的时候,为了实现与他人的共享或者在必要的时候恢复到与此版本一致的内容,就需要执行检入操作。
可以在资源视图中根据图标检查已经检出的文件,最好的方法是使用 ClearCase 搜索,列出所有已检出的文件,全部选中后在右键菜单中选择检入文件。
图 7:在资源视图中根据图标检查已经检出的文件
安装 CC SCM
ClearCase SCM 适配器插件可从 IBM developerWorks 网站上 下载,在继续之前,请确保已经解压缩道本地路径。在软件更新-管理软件配置界面中单击“添加扩展位置”,指定
CC SCM 的解压缩路径,然后重新启动 RMC。进入“窗口”—“定制透视图”,在命令标签中选中 ClearCase。
图 8:定制 ClearCase SCM 适配器透视图
安装完成后,RMC 的“编写”透视图的菜单中会增加 ClearCase 项目。用户可以使用这个菜单完成连接、建立视图等操作。
新建 CC SCM 视图
使用视图创建向导创建一个视图。
图 9:新建 CC SCM 视图
视图建立成功后,其余的操作就与 CCRC 下基本一致了,用户可以在 CC SCM 版本控制状态下检入、检出、合并文件,这里不再讨论。下面我们说明如何检出上一节中创建的方法库以进行更进一步的操作。
维护视图中已有的方法库(分布式开发)
在上一步建立的视图中,找到已经建立的方法库目录,打开后,在资源导航器视图中可以发现所有的文件已经版本控制之下了。
默认情况下,所有的文件都是在检入状态,对方法库中的文件进行编辑、修改前必须检出文件。
图 10:检出文件
方法库编写完成后,执行一下“查找检出文件”功能,确保在关闭前所有文件都已经被成功检入,以便其他用户可以获得最新更新的文件版本。
配置 CVS
CVS 客户端是 Eclipse 的标准插件之一,所以,使用 CVS 前无需安装额外的插件,只需要根据服务器属性正确配置即可。
首先切换到 CVS 资源库研究透视图,新建一个资源库位置。
图 11:配置 CVS
位置一旦建立,用户就可以展开资源库中的相应的节点,找到其他用户已经共享的方法库。
共享方法库
在 CVS 中创建新方法库与没有版本控制环境中一样,用户可以选择任意一个路径来建立,编写靠一段落后保存。
用户可以选择将已经生成在本地的方法库共享,即上传到 CVS 服务器上供其他用户检出。
首先,切换到资源透视图,选中要共享的方法库,在右键菜单中选择“小组”—“共享项目”。
项目共享后,在资源视图中的方法库图标会发生变化,显示当前元素是否在版本控制管理之中。
图 12:共享方法库
检出方法库
用户可以检出其他用户共享到 CVS 服务器上的方法库文件到本地文件系统中,以便对方法库进行修改。
图 13:检出方法库
修改完成后需要检入所有已经检出的文件。以便尽量避免分布式开发可能带来的版本冲突问题。
以上介绍的是通过 RMC 提供的版本控制软件的集成实现方法库编写过程中的版本控制。这些应用大都是基于单用户环境的,通过一定的规则,RMC
可以很方便的实现多用户环境下的分布式方法库的开发。
由于大型的方法库中一般存在着复杂的数据模型和相关程度很高的内容,大量的方法内容需要由一个团队来负责开发维护。在 RMC 中,一些特定的文件会因为很多元素的更改而改变,所以分布式开发环境中各个成员必须遵循一定的规则以便确保团队开发的稳定。
版本控制系统对检出文件的管理分为两种。一种是悲观锁定,即文件一旦被用户检出,其他用户对该文件只拥有只读权限。另一种是乐观锁定,即文件被某用户检出后,其他用户仍然可以检出该文件进行修改,在检入的时候由版本控制系统提供比较工具并实现不同版本之间的合并操作。
ClearCase 以及 CVS 都能够很好的支持上述两种文件检出方式。对于悲观锁定,应该尽可能的少更改一些会影响全局的元素,这样才能更少的检出文件,确保不影响其他用户。对于乐观锁定,再更改某元素前必须同步本地视图并检出最新文件,更改后应该立即检入以便避免复杂的文件对比及合并操作。
由于 RMC 组织方法元素的特殊性,下列事项在使用集成版本控制的分布式开发环境中必须要特别加以注意:
- 一些临时生成的文件,比如导入导出时生成的记录文件,一般不应该被添加到源控制中,需要在忽略的资源里添加必要的文件类型。
- 对方法库的一个简单的更改可能会影响多个源文件。这意味着在能够修改各个方法元素之前可能必须检出多个文件而不仅仅是元素相对应的
XMI 文件。
- 方法库一旦建立,“.lock”和“.project”两个文件将会在方法库的最高一级目录创建,这两个文件不应放置在版本控制下。
通过本文我们可以了解如何在 RMC 中使用集成的版本控制系统,以及如何使用版本控制系统实现单用户开发环境的版本控制和多用户分布式开发环境的构成。
同样的版本控制系统集成也被部署在最新发布的 Eclipse Process Framework 1.0 上。感兴趣的读者可以去
Eclipse Process Framework (EPF) 项目页面 下载、试用。
三种集成的版本控制系统各有特点,用户可以根据需要选择适合自己使用的版本控制软件。
|