本文针对利用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对文件进行版本控制操作了。
|