UCM ClearCase 与 ClearQuest的集成

UCM ClearCase 与 ClearQuest的集成

商慧波 , Rational Team 软件工程师,IBM中国软件实验室,IBM

2006 年 2 月 20 日

    ClearCase 是业界非常优秀的软件版本控制工具和软件资源配置管理工具,目前在软件开发项目中应用较为广泛;ClearQuest则是软件变更管理和缺陷跟踪工具。在实际的软件产品开发过程中,两者的结合使用,会极大地提高开发效率,保证产品质量。本文详细介绍了ClearCase与ClearQuest的两种集成方式之一:UCM ClearCase与ClearQuest的集成。

引言

ClearCase 是业界非常优秀的软件版本控制工具和软件资源配置管理工具,在实际的软件开发过程中,采用ClearCase进行版本控制能够实现真正意义的并行开发,提高开发效率。ClearCase具有两种应用的方式:Base ClearCase 以及 UCM ClearCase。这两种方式拥有着各自不同的概念、功能和应用范围:由于Base ClearCase 的概念相对简单,功能也比较单一,因而它易于掌握,适用于小型软件项目的开发过程中;而UCM ClearCase涉及的概念比较多,逻辑也相对复杂,它提供了更加丰富和完善的功能,因而较多的应用于大型软件系统的开发过程中。

ClearQuest作为软件变更管理和缺陷跟踪工具,在实际开发中,对于保障软件产品的质量,协调各开发团队之间的合作起到了相当重要的作用。 ClearQuest是高度可配置的,可适应几乎所有的自动化流程设计,同时支持用户定义、工作流支持(可定制的状态机)、字段、表单和电子邮件通知等。


一、 ClearCase 与ClearQuest的集成

所谓ClearCase和ClearQuest的集成,就是指将ClearQuest中的变更请求(Change Request)关联到ClearCase中某元素(element)的某一版本(Version)上。一个变更请求可以被关联到一个或多个版本上,这些版本被称为变更请求的变更集(Change Set)。一个版本可以被关联到一个或多个变更请求,这些变更请求被称作版本的请求集(Request Set)。由于ClearCase的应用分为两种方式:Base 和 UCM,因而,ClearCase 与 ClearQuest的集成也具有两种方式:Base ClearCase 与 ClearQuest的集成以及UCM ClearCase 与 ClearQuest的集成。本文主要介绍的是UCM ClearCase 与 ClearQuest 的集成方式。


二、 UCM ClearCase 与 ClearQuest 集成的应用过程介绍

工程(Project)是UCM ClearCase的一个重要概念,要实现UCM ClearCase与ClearQuest的集成,首先必须在ClearCase UCM的环境里创建一个CQ Enabled Project,即一个激活了ClearQuest相应功能的工程(Project)。

下面将详细阐述UCM ClearCase 与 ClearQuest 集成环境的搭建,以及具体的集成的应用过程。

1. 环境搭建

1) ClearCase 方面,首先要创建一个Project VOB和 Component VOB,并且将新创建的Component VOB成为Project VOB的一个Component。

Windows 环境下:

    * 创建Project VOB:选择Programs > IBM Rational > Rational ClearCase > Administration > Create VOB,输入VOB名称:pvob;选择"Create as a UCM project VOB"选项,表示要创建的是一个Project VOB;在选择administrator vob一项里,选择none。其他采用默认值,在确认页上单击"继续" ,完成Project VOB的创建过程。
    * 创建 Component VOB:选择Programs > IBM Rational > Rational ClearCase > Administration > Create VOB,输入VOB名称:cvob;选择"contain UCM objects",表示要创建的是一个Component VOB;在选择administrator vob一项里,选择刚刚创建的pvob,建立这两个VOB之间的关系。其他采用默认值,最后在确认页上单击"继续",完成Component VOB的创建工作。
    * 使cvob 成为pvob的一个Component:从开始菜单里选择 Programs -> IBM Rational -> Rational ClearCase -> Project Explorer,选中pvob,从菜单中选择Tools ' Import ' VOB as Component,在弹出的选择页面中从左面的备选框中选择cvob,加入到右面的已选框,最后单击"import"。


图1 Import VOB


Unix环境下,可以使用命令行完成以上过程:

    * 创建Project VOB:
      > cleartool mkvob -nc -ucmproject -tag /var/tmp/pvob /var/tmp/pvob.vbs
    * 创建 Component VOB:
      > cleartool mkvob -nc -tag /var/tmp/cvob /var/tmp/cvob.vbs
    * 创建Project VOB的component:
      > cleartool mkcomp -nc -root /var/tmp/cvob comp_1

2) 在ClearQuest方面,需要做的准备工作有:

    * 在选定的数据库关系系统上,创建schema 数据库和user 数据库;
    * 如果是在Windows环境下应用UCM ClearCase 与 ClearQuest的集成,只需利用Windows 环境下的ClearQuest Maintenance Tool创建repository schema。

创建Sample DB时,Schema 的类型需要选择 UCM 类型:

图2 选择UCM 的 Schema 类型


    * 如果是在Unix环境下应用UCM ClearCase与ClearQuest的集成,需要另外准备一台装有ClearQuest Maintenance tool的机器,帮助建立repository schema, 然后再在Unix机器上创建相应的connection 。这是因为,目前ClearQuest产品在Unix平台上还没有提供图形界面的Maintenance tool。

2. 创建CQ Enabled Project

下面主要以Windows环境为例,介绍CQ Enabled Project的创建过程。两种方式创建一个CQ Enabled Project:

    * 创建Project 的过程中,指定该Project是CQ Enabled 从开始菜单里选择 Programs -> IBM Rational -> Rational ClearCase -> Project Explorer,选中pvob,从菜单里选择File ' New ' Project,为Project 设定一个名称,下一步;是否以一个已知的baseline为起点来创建这个Project,选择"否",下一步;加入Component的 baseline,点击add,选择initial baseline;选中cvob前方的复选框,使得这个VOB可以被修改,即在将来的操作中可以在这个VOB里加入元素,或者对元素进行修改;选择 "yes",使得所创建的Project 是可以和ClearQuest相关联的。这时,connection的下拉列表中会显示出之前在ClearQuest 端已经创建好的Connection的名称,从下拉列表里选中这个Connection,则User Database项会自动显示出与这个Connection 所对应的Sample DB的名称。如果是初次登陆ClearQuest数据库,会出现一个登陆窗口,这里假设使用QE帐户登陆,也就意味着在接下来的操作中,只有分配给QE帐户的 ClearQuest记录才能被关联。在确认页中选择"continue",一个CQ Enabled的Project:myproject 创建成功。

      图3 创建CQ Enabled 工程

    * Project创建完成之后,修改Project的属性,指定其CQ Enabled。 在Project Explorer中,选中刚刚创建的Project,右键,选择属性(properties),在打开的属性页中选择"ClearQuest"页。此时 "Project is CQ enabled"复选框应该是出于未被选中状态。选中复选框,从下来列表中选择已经在ClearQuest建好的Connection 和Sample DB。"确定",完成操作。

      图4 在工程属性中指定工程为CQ Enabled


3. Join project:创建集成流,开发流,集成试图,开发视图。在开发视图环境下创建新的文件,或者对文件进行检出检入操作打开ClearCase Explorer,选择开发视图,在cvob的根目录里创建一个新的文件,选择"Add to source control",将这个文件加入源控制。在"Add to source control"的界面上,需要选择一个与这个文件的版本相关联的活动(activity)。

图5 为元素新版本指定活动(activity)


在设定相关联的activity的时候,有三种方式:选择"New",新创建一个ClearQuest的记录类型(defect 或者BaseCMActivity两种类型可供选择);或者在下拉列表中选择一个已有的defect与之关联;或者使用"browse"查询一个满足一定条件的记录。

下面分别详细介绍这几种方式:

    *

      新建方式

      选择"New",默认情况下,可以选择新建两种类型的activity :defect和BaseCMActivity。单击"New",可以看到这两种记录类型,如图所示:


      图6 可选的记录类型


      是否可以创建这两种类型的记录,或者只能创建哪一种是可以自由设定的。方法是:在Project Explorer 里,右键选中pvob,在右键菜单中选中"policies"策略。如果"Do not allow submitting of records from ClearCase client"选项是被选中状态,就意味着不允许在ClearCase端创建ClearQuest的记录,在将文件加入源控制、对元素检入、检出操作时,关联activity的界面中也不会出现"New"这个操作按钮;相反的,如果"Do not allow submitting of records from ClearCase client"选项是不被选中的状态,就意味着用户可以在ClearCase 端创建ClearQuest的记录,但是,在"Allowed record types"中限定了允许创建的记录类型,如果选中了"defect",说明可以新创建defect类型的记录,在ClearCase里点击"New" 时,在弹出的选择页里相应的也只能看到"defect"这一类型。对于BaseCMActivity也是同样的。默认的情况下,这两种类型都是被选中的。


      图7 设定可以在ClearCase端提交的类型


      这里假设单击了"New" 之后,选择的是defect,则会调用ClearQuest的新建defect的窗口:


      图8 新建Defect


      输入必要的信息后保存,新建的defect的headline就会出现在activity对应的下拉列表选择框内,可以默认的选择这个新建的 defect,完成相应的ClearCase的操作。如果使用QE用户登陆到ClearQuest的客户端,运行关于defect的查询,则会查询到刚刚创建的defect,并且此时这个defect是处于opened状态的。


      图9 Defect处于Opened 状态

    *

      选择已有的defect
      如果事先在ClearQuest客户端中已经创建了一些记录,那在activity的下拉列表中就会自动列出来这些记录。不过,哪些纪录会列在列表里也是有一定的限制条件的:

      1) 这些defect的所有人(owner)必须和ClearCase中作集成时登陆ClearQuest所使用的用户帐户是一致的,也就是说只有那些分配给这个用户处理的defect才能在备选的活动列表里出现。

      2) 只有处于Assigned、 Opened状态的defect才会被列到activity的备用下拉列表中,而处于submitted状态和resolved以及closed状态的defect则不会出现在备选下拉列表中。
    *

      "Browse"方式
      选择"Browse"按钮,弹出"Activity Entity Browser"窗口。可以在这个窗口中选择"New Query"建立一个新的Query,设定查询条件,选择满足需要的记录。设定好查询结果要显示的字段以及查询条件后,可以将这个查询保存(保存后的查询也可以直接在ClearQuest客户端中被使用)。新创建的查询会列在"Activity Entity Browser"的窗口中,选中这个查询,或者选择其他已经在ClearQuest中创建的查询,点击"运行"(run)按钮,在查询结果中选择正确的记录,作为与ClearCase中的文件版本相关联的活动(activity)。


      图 10 查询相关记录


4. Deliver操作

Deliver操作开始后,ClearCase中会自动生成一个对应的Activity,这个Activity的名称中包含"deliver"的字样,以及执行Deliver操作的时间。对应这个Activity,会自动建立一个ClearQuest的"UCMUtilityActivity"类型的记录,这个记录的状态随着Deliver状态的改变而改变。

    *

      Deliver操作进行到最后,不确认结束Deliver的操作

      在Project Explorer中,右键选中开发流,选择"Deliver from Stream> to Default",开启Deliver的操作,采用默认的设置,在最后的确认页中选择"Close"。


      图11 是否完成Deliver操作


      用QE用户登陆ClearQuest的客户端(建Project指定CQ Enable时,假设使用QE帐户登陆到ClearQuest数据库)。新建一个查询,查询对象是UCMUtilityActivity类型的记录,运行查询,在查询结果中找出headline是ClearCase中deliver activity名称的记录,查看目前这个记录的状态应该是"Active"。
    *

      取消Deliver操作

      如果之前没有确认结束(在Deliver的最后提示页中选择Close)Deliver操作,重新开启"Deliver from Stream > to Default"之后,会出现让用户选择"继续"还是"取消"的询问界面,这里选择"Undo the Delivery"。 Deliver的操作被取消后, ClearQuest中对应的UCMUtilityActivity类型的记录也不复存在了。
    *

      Deliver操作进行到最后,确认结束Deliver的操作

      重新开启Deliver操作,并且在最后的确认页中选中"Complete",在ClearQuest客户端,登陆到数据库,运行上面创建的查询,看到以ClearCase的activity名作为headline的记录出现在查询结果列表中,并且此时的状态改为:"Complete"。

      图12 UCMUtilityActivity 的记录状态改为Complete

5. Rebase操作

同样地,对于Rebase操作,也会自动生成一个ClearCase的Activity,名称中包含"rebase"字样以及执行Rebase的时间。在ClearQuest中也会自动创建一个"UCMUtilityActivity"类型的记录。随着Rebase操作进行到不同的程度,记录的状态也随之改变,三种不同的状态和Deliver的情况相同,这里不作过多赘述。

6. 在ClearQuest界面执行ClearCase的一些操作

实现了UCM ClearCase与ClearQuest的集成之后,不仅可以在ClearCase端执行例如新建一个defect 等ClearQuest的操作,同时,也可以在ClearQuest端执行例如检入、查看历史信息等ClearCase的操作。

从以上的介绍中可以了解到,在ClearCase Explorer中,当对一个文件进行加入源控制、检入、检出操作时,会使活动(activity)指向ClearQuest的某一个记录。其实,这种关联建立之后,也把这个文件加入到了ClearQuest所对应的记录的变化集(change set)当中。

在ClearQuest中通过查询得到和ClearCase中某个文件版本相关联的记录(defect或者其它类型的记录),打开他的变化集(change set),会看到与之相关联的文件及其版本。右键点击这个文件,在弹出的菜单中可以进行ClearCase的一些相关操作。如图所示:

图13 可以在ClearQuest中进行的ClearCase的操作


7. 如何取消Project 的CQ Enabled的特性。

如果一个Project 此时是CQ Enabled的,在Project Explorer中,选中这个工程(Project),右键,选择属性(properties),在打开的属性页中选择"ClearQuest"页。此时 "Project is CQ enabled"复选框应该是被选中的状态。想要取消这个工程(Project)的CQ Enabled 特性,只要去掉复选框的选中状态即可。"确定"之后,系统会提示取消的操作会涉及到多少个ClearQuest的记录。


三、 总结

本文首先简要介绍了IBM 的软件版本控制和配置管理工具ClearCase以及缺陷跟踪管理工具ClearQuest,并论述了ClearCase 与 ClearQuest集成的真正含义。ClearCase 与 ClearQuest的集成主要分成两种方式:Base ClearCase 与 ClearQuest的集成以及UCM ClearCase 与 ClearQuest的集成。本文以UCM ClearCase 与 ClearQuest的集成为主,详细阐述了集成应用的一般操作过程。希望通过阅读本文,能为从事相关工作的开发人员提供实际的使用指导。


参考资料

    * Software Configuration Management -A Clear Case for IBM Rational- UCM ClearCase and ClearQuest.

    * ClearCase product manual: UCM development guide

    * ClearCase product manual: UCM project introduction

    * Multiple DBset application for UCM ClearCase ClearQuest integration

    * 使用IBM Rational ClearCase和IBM Rational ClearQuest进行良好的电子记录管理

关于作者       

商慧波:IBM中国软件开发实验室,Rational Team,软件工程师。[email protected]

你可能感兴趣的:(UCM ClearCase 与 ClearQuest的集成)