UML软件工程组织

 

 

利用Rational Rose 和 VSS实现团队建模
 
2007-11-23 作者:E.K(风语者) 来源:blogdriver.com
 

本文针对利用Ratioanl Rose进行建模的团队,讲述了如何通过配置VSS与Rose将两者集成实现团队协同工作,同时,还提出了一个相对成熟的工作环境配置方案,从而降低了团队沟通成本,使得团队建模更具经济性和实用性。对于高端用户,还给出了解决复杂问题的小技巧。

IBM Rational Rose是目前业界公认最优秀的建模工具,很多文章都介绍了如何利用Rose进行模型设计,但在实际项目工作中,特别是在大中型的软件项目中,往往不可能一个人完成整个建模工作,必须由整个团队协同工作。那么就必然用到了版本控制工具,同样,Microsoft Visual Source Safe(VSS)也是非常常用的版本控制工具。本文将结合一个实际的案例讲解如何利用Rational Rose和VSS这两项工具实现团队建模。

一、安装IBM Rational Rose Enterprise 2003

参见Rose 2003安装手册。

二、安装Microsoft Visual Source Safe 6.0b

要将项目纳入版本控制体系中,必须首先建立VSS数据库。如何建立VSS数据库,请参见VSS帮助。

三、约定项目文件组织结构

可以根据团队的工作习惯或制度要求,约定一个公认的文件组织结构,每个团队成员的项目文件组织结构都必须以此为依据,以便于进行版本控制。

例如:Z:\Building\Sample

      |-Doc

             |-Business

             |-Model

             |-Reqirement

             |-Reference

      |-Projects (子项目)

             |-P1

                    |-Doc

                          |-……

                           |-Model

             |-P2

                    |-……

             |-P3

                    |-……

对于项目目录所在驱动器,建议使用比较大的字母作为盘符,如:X, Y, Z等,这样可以最大限度地避免冲突。可以通过映射实现。点[开始] –〉[运行……] –〉输入cmd进入Dos操作台,输入命令:

Microsoft Windows 2000 [Version 5.00.2195]

(C) 版权所有 1985-2000 Microsoft Corp.

C:\>subst z: F:\My\

图1 一个典型的项目文件组织结构

四、设置虚拟路径映射目录(Virtual Path Map)

每个团队成员应根据自己工作机的实际情况,设置虚拟路径。具体方法是:进入[File] -> [Edit Path Map……],弹出Virtual Path Map对话框,依次输入:键Symbol ,实际路径Actual,注释Comment,点击Add即可添加路径到虚拟路径映射目录中。

推荐的设置如下:

$CurDir=& // &表示当前模型文件.mdl所在路径

$Root=Z:\Building\ //项目根目录,所有与模型文件有关的资料都将在此目录及其子目录内

$Sample=$Root\Doc\Model\ //项目模型文件目录

$P1=$Root\Sample\Projects\P1\Doc\Model //P1项目模型文件目录

$P2=$Root\Sample\Projects\P2\Doc\Model //P2项目模型文件目录

按照上述的方法设置,可以确保模型文件中的cat包和外部链接存储的路径为相对路径,避免了不同机器中出现路径不相同的情况下,无法打开链接的情况发生。

注意:每台机器上的$Root路径可能也允许不同,但推荐使用相同的盘符路径。而其他映射路径则不允许不相同,这样可以避免不必要的沟通成本。

例如:

团队成员Lee的$Root=X:\

团队成员Yee的$Root=Y:\Working\Projects

团队成员Liu的$Rott=Z:\Building\

五、VSS环境初始化

对VSS环境进行初始化,需要做以下几件事情:

1、 在VSS服务器端为每个团队成员分配一个用户名。为简化操作,用户名和密码应与成员客户机上登录的用户名和密码相同。这样就可以不需要每次打开VSS时系统都提示输入用户名、密码。特别注意的是,VSS服务器所在的服务器操作系统也必须设置相同的用户名和密码,但安全性应根据需要做适当改动。

2、 每个团队成员应设置本地工作目录。选定根结点$/,按Ctrl+D,弹出[设置工作目录]对话框。该路径应与前面设置的$Root路径相同。

3、 项目配置经理建立完整项目结构,并配置各个Project的安全性。比较简便的方法是选择根目录->Show Difference,将本地存在而VSS数据库中不存在的目录全部加入到数据库中。事实上,第一次执行该操作时VSS数据库中没有任何数据,因此所有本地目录和文件都将被加入到数据库中。

六、在Rose中实现VSS操作

由于VSS是符合SCC规范的系统,通过Rose的Version Control 插件可以无缝集成VSS。

使用VSS实现版本控制的主要操作有:Add、Check out、Check in、Get latest version。

对于一个拥有多个子项目的复杂项目而言,分包是必不可少的选择,并且还需要将各个子项目的包分别寸放在各自的项目目录内。

1、 将包加入到VSS中,选择该包按右键Add to Version Control,弹出Add to version control对话框,选择需要加入的包,这些包都将被保存到当前目录下的同名.cat文件。

2、 要自定义保存包可以选择该包按右键Units->Contorl <unit>…,将该包保存到其他目录中。

3、 要将其他cat包加入到模型文件中,可以选定一个包,然后选择File->Units->Load…,将其他包加入到模型文件中来,当其他人修改该包后,可以反映到模型文件中。

4、 通过选择包,按右键Check out来获得修改包的权限。

5、 通过选择包,按右键Check in来更新包的修改成果。

6、 建议只能由项目负责人具有Check in 、Check out 模型文件的权限。

7、 建议为每个子项目建立一个模型文件用于子项目的模型设计,同时与项目模型文件共享设计包。

注意:通过分包,可以确保团队中各司其职,同时又能共享工作成果。VSS的安全性设置也保证了工作成果不会被随意修改。

七、非正常情况下的解决办法

对于一些非常特殊的情况,通过正常的方法无法达到或者操作非常复杂。那么这时候我们可以通过直接修改源文件的办法很快地解决问题。

注意:只推荐非常熟悉Rose的用户使用,并且操作之前请做好备份。

例如:原来的Virtual Path Map配置中$Root=Z:\Building\JOA,我们修改为$Root=Z:\Building以后,再打开之前修改保存过的模型文件,这时候在引入子包时就会出现错误信息:

我们查看Log时会发现以下的提示:

09:00:59|  Warning: The directory Z:\Building\Projects\JCM\Doc\Model does not exist.

这是因为在修改了Virtual Path以后,模型文件中的相对地址也就发生了变化,按照以前的设置自然无法找到文件,即使碰巧找到了,也不是预想的文件。

使用记事本或者类似EditPlus的文本编辑器,打开.mdl文件,查找JCM.cat我们可以从中找到类似这样的内容:

              logical_models    (list unit_reference_list

           (object Class_Category "Business Object Model"

              is_unit        TRUE

              is_loaded    FALSE

              file_name    "$CURDIR\\Business Object Model.cat"

              quid         "412F4917009A")

           (object Class_Category "JCM"

              is_unit        TRUE

              is_loaded    FALSE

              file_name    "$ROOT\\Projects\\JCM\\Doc\\Model\\JCM.cat"

              quid         "3D256AB500B8"))

这里描述的是Logical View包中的一部分子包Business Object Model包和JCM包的基本属性,其中file_name指的就是该包存储的文件名。出现这样的描述的前提是Business Object Model包和JCM包已经是一个Controlled Unit单独加入到版本控制(Add to Version Control)中。如果$Root发生了变化,并且不能够通过$ROOT\\Projects\\JCM\\Doc\\Model\\JCM.cat找到.cat文件,那么我们就可以修改这个路径,例如:$ROOT\\JOA\\Projects\\JCM\\Doc\\Model\\JCM.cat,保存后,再重新打开模型文件,一切OK!

同样的解决办法,也可以用在修改版本控制信息上 ,例如:

           (object Attribute

              tool          "sc"

              name              "SourceControlProject"

              value        (value Text

|"$/Projects/JCM/Doc/Model", FFUAAAAA

              ))

将$/Projects/JCM/Doc/Model改成$/JOA/Projects/JCM/Doc/Model,就可以保证能够直接通过Rose对文件进行版本控制操作了。

 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号