内容


集成 Rational Software Architect 与 Rational Team Concert

比较和合并 UML 模型

Comments
下载 Rational® Software Architect 试用版 | Rational® Team Concert 试用版
获取免费的 Rational 软件工具包系列,下载更多的 Rational 软件试用版

系统中的大多数的软件开发团队都意识到模型驱动开发(MDD)和统一建模语言(UML)的好处,并开始使用 IBM® Rational® Software Architect 家族的产品来利用它们。IBM® Rational Team Concert™ 就是下一代的配置-管理环境,它是使用敏捷开发方式开发的。它建立在 IBM® Rational® Jazz™ 与 Eclipse 平台的基础之上,提供了需要的资源,通过使用最新的协作性技术,软件开发规划功能,以及变更管理功能,使一个全球分布的团队去获取成功。

Rational Software Architect 与 Rational Team Concert 之间的集成,是由权衡使用 Eclipse 内核共享而提供的。Rational Team Concert Eclipse 客户端可以安装到 Rational Software Architect Eclipse 内核中,它允许您使用 Rational Team Concert 功能,包括源控制,工作项管理,以及 Rational Software Architect 之中的管理。在 Rational Software Architect 端,您可以对源控制之下的 UML 模型使用可视化的合并-比较功能,从确认模型时产生的错误中创建工作项,并追踪到 Rational Team Concert 工作项的 UML 资源。

接下来的部分具体演示了通过模拟两个用户之间真实的并发开发场景,来具体演示如何将不同人员的工作集成起来。并发行的工作将会导致冲突的产生,当用户使用安装在 Rational Software Architect Eclipse 内核之中的 Rational Team Concert Client 时,这种冲突需要得到处理。两个用户会处理一个包含单个模型的 UML 项目,然后他们将会使用逻辑性模型。

软件要求以及知识要求

您需要对 UML 模型有一个基本的了解,以顺利完成本文的学习以及实例的应用。对使用 Rational Team Concert 进行配置管理工作的概念性和实际性理解,都是假设的。Rational Team Concert 环境会得到配置,并为协作性开发做好准备。

接下来的软件必须从该场景中的两个虚拟性用户那里得到:

  • Rational Software Architect for WebSphere® 7.5.5 版本或者更新的版本
  • Rational Team Concert 2.0.0.2 版本或者更新的版本安装到 Rational Software Architect 内核上

连接至 Rational Team Concert 存储库

为了完成集成操作,您将会需要访问 Rational Team Concert 服务器上的项目区域。两个 Rational Team Concert 用户,本例中的 User1 与 User2,拥有能够读/写访问项目区域的权限。如果您想要了解关于创建 Rational Team Concert 的信息,那么您可以从信息中心中的 开始起步 部分中获得。

  1. 在一个新的工作区内启动 Rational Software Architect for WebSphere。
  2. 从主菜单中选择 Window > Show View > Other
  3. 选择 Team > Team Artifacts,并点击 OK
图 1. Team Artifacts 视图
Team Artifacts 视图中所显示的选项
  1. 点击 Connect to Project Area 链接。
  2. 点击 Next 以创建一个新的存储库链接。
  3. 输入您的 Rational Team Concert 连接信息,以及您的 Rational Team Concert 服务器 URI 和用户名及密码,如图 2 所示。
图 2. Jazz 存储库连接
向导中的连接信息
向导中的连接信息
  1. 点击 Next >按钮。
  2. 选择您的项目区域,并点击 Finish 按钮。

比较和合并 Rational Software Architect 中的 UML 模型

当您在使用诸如 Rational Team Concert 之类的配置管理工作时,由于并发开发的缘故,开发员会在他们的日常工作中比较和合并文件。当一个团队使用更加需要协作的敏捷开发方法时,这种倾向会愈发的明显,此时通常需要开发员不断地与其他项目成员的工作相集成。

对 UML 模型执行比较合并操作,要比对基于文本的文件,例如 C++ 与 Java™ 代码复杂困难的多。Rational Software Architect 对其模型使用一种基于 XML 的格式来满足其连接性和语义的 UML2.0 需求。

在 Rational Software Architect 中有两种类型的模型:单个的 逻辑性的。一个单个的 模型位于单个的文件(.emx)之中;而一个 逻辑性的 模型则被分为物理上分开但是逻辑上有关的子单元中。在 Rational Software Architect 中,子单元叫做 片段 并存储在主模型(*.emx)所引用的 *.efx 文件之中。Rational Team Concert 2.0.0.2 版本或者更高的版本在与 Rational Team Concert 一起使用时,支持 Rational Software Architect 逻辑性模型。

从 Rational Software Architect 导入一个范例 UML 项目

User1 将会从 Rational Software Architect Samples Gallery 之中导入一个名为 PiggyBank UML 模型的范例项目。稍后,范例项目将会与 Rational Team Concert 源控制存储库一起使用。

  1. 从主菜单栏中选择 Help > Help Contents
  2. 打开 Samples > PiggyBank application > PiggyBank UML models
  3. 点击 Import the sample link
  4. 点击 Finish 按钮以导入范例 PiggyBank UML 模型项目。PiggyBank UML 项目将会出现在 Project Explorer 视图之中,如图 3 所示。
图 3. PiggyBank UML 项目结构
Project Explorer 视图
Project Explorer 视图

与 Rational Software Architect 之中的 Rational Team Concert 共享一个项目

既然您已经有了范例项目,那么 User1 首先会创建一个新的 Rational Team Concert 工作区,它有一个构件位于服务器上。该工作区将会用于共享前面章节中导入的项目和 Rational Team Concert 源控件。

  1. 右击项目,并选择 Team > Share Project
  2. 选择 Jazz Source Control 然后点击 Next 按钮。
图 4. Share Project 窗口选项
选择一个带有 3 种选项的存储库类型
选择一个带有 3 种选项的存储库类型
  1. 选择 创建一个新的存储库工作区,并给您的存储库起一个名字,例如 User1Respository
  2. 选择 与一个来自已存在流程中的构件共享
  3. 在项目区域的流程之下选择您的构件。如果您尚没有一个构件,那么您可以点击 New Component 以创建一个新的构件。
    注意: 如果您创建了一个新的构件,那么请确认您的用户拥有适当的 Rational Team Concert 许可权。
  4. 点击 Finish
  5. 在 Pending Changes 视图中右击 User1Workspace,并选择 Deliver
    注意: User1 必须是目标团队的一名成员,而且项目区域能够执行 Deliver 操作。

从 Rational Team Concert 中导入一个项目

User1 向项目区域的流程交付了 PiggyBank UML Models 项目,这样其他的团队成员也能访问该项目了。在接下来的章节之中,User1 将会从主流程中将项目导入到 Rational Team Concert 工作区之中。

  1. 启动 User2 将会使用到的 Rational Software Architect 的一个新实例。
  2. 按照 连接至 Rational Team Concert 存储库 章节中的相同步骤,来作为 User2 登录到存储库之中。
  3. 从主菜单栏之中选择 Show View > Other
  4. 选择 Team > Team Artifacts 并点击 Ok 按钮。
  5. Team Artifacts 视图中,右击 MyProjectArea > Source Control > Team 1 Stream (Team1),并选择 New > Repository Workspace。根据您的配置情况来选择您的项目区域。该范例使用 MyProjectArea 作为项目区域名,使用 Team 1 Stream 作为流程名。
  6. 给您的存储库工作区起一个名字,例如 User2Workspace
  7. 点击 Finish
  8. 选择 Find and load Eclipse projects,如图 5 所示,并点击 Finish
图 5. 载入存储库工作区
Load Repository Workspace 视图选项
Load Repository Workspace 视图选项

提示:

PiggyBank Models 项目载入到了本地工作区之中。

交付非冲突性的更改

User2 将会对模型做一些更改,并将这些更改交付给主流程。因为 User1 并没有更改模型,所以更改就不是冲突性的了。User2 所交付的更改还会产生模型确认方面的错误。

  1. 右击模型并选择 Refactor > Fragment All Sub-Packages,来为用例模型之中的包创建片段。
  2. 点击 OK 按钮以更新引用。
  3. 现在您已经将角色的名字从 Customer 更改为 Client。右击并选择 Use Case Model > Account Operations > Customer 然后,从下列菜单之中选择 Refactor > Rename
  4. 输入 Client 以替换对话框之中的 Customer,并点击 OK
  5. 现在您已经为项目创建了一个新的模型,它不会添加至 Rational Team Concert 存储库之中。右击并选择 Project Explorer 视图之中的 PiggyBank Models > Models,并从下列菜单之中选择 Create Model
  6. 选择 Standard 模板,并点击 Next 按钮。
  7. 选择 Requirements 种类以及 Use Case Package 模板来创建一个 Use Case Package 模型,如图 6 所示。
图 6. 创建一个 Use Case Package 模型
UML 模型模板选择窗口
UML 模型模板选择窗口
  1. 点击 Finish

您刚刚创建的需求模型会自动作为检入到 Rational Team Concert 源控件的一个候选对象。现在您要向 Ignore 列表添加模型,这样该模型就不会被检入或者交付给源控件存储库。

  1. 右击模型并选择 Team > Add to Ignore List
  2. 保持默认的选择不变 :
    • 忽略什么:带有选择名字的 Resources
    • 什么地方忽略:只忽略相同目录之中的项目
  3. 点击如图 7 所示的对话框中的 OK
图 7. 向 What to Ignore 列表添加一个 UML 模型
忽略什么以及什么地方忽略的选项
忽略什么以及什么地方忽略的选项
  1. 右击模型并选择 Add UML > Actor。将其命名为 ATM,来向创建的模型添加一个 UML 角色。
  2. Use Case Model > Overviews 之中打开 Actors Overview 图表。
  3. ATM 角色拖拉至图表之中。
  4. 点击 File > Save All 来保存所有的模型。
  5. Pending Changes 视图之中,展开您的存储库工作区构件,如图 8 所示。
图 8. 未处理更改视图
对受控元素到来及外出的更改
对受控元素到来及外出的更改
  1. 右击 Unresolved 文件夹并选择 Check in and Deliver
  2. 在“Change set comment”之下输入相关的评论,然后点击 Finish,如图 9 所示。
图 9. 检入与交付对话框窗口
更改集评论字段与响应
更改集评论字段与响应

接受非冲突性的更改并从模型确认中创建工作项

现在 User1 将会把它的工作区与主开发流程保持同步化。现在主开发流程包含了 User2 在前一步之中所交付的更改。User1 将会接受 User2 向工作区所交付的更改。最终 User1 将会确认一个模型,并从模型确认错误之中创建 Rational Team Concert 工作项。

  1. 在 User1 的 Rational Software Architect 窗口中,打开 Pending Changes 视图中,点击 Refresh 按钮。
  2. 展开您的工作区/构件。点击 Pending Changes 视图之中带有一个箭头符号的图标 图标,来接受 所有到来的更改
  3. 打开 Project Explorer 之中的 PiggyBank Models > Use Case Model。您将会看到一个出错信息,告诉您含有一个受损引用的模型可能会自动修复。
  4. 点击 Ignore 按钮。
  5. 选择 Project Explorer 之中的模型,并点击主菜单栏之中的 Modeling > Run Validation 来确认 Use Case Model
  6. Problems 视图之中,从确认中选择出错的结果。右击并选择 Create work-item
图 10. 创建一个工作项
Work Item Type 选择窗口
Work Item Type 选择窗口
  1. 选择 Defect 作为工作项类型,并点击 Finish

注意:
工作项类型的列表可能不同于如图 10 所示的列表,因为这取决于 Rational Team Concert 服务器的工作项模板配置情况。

  1. 填充 Work Item 编辑器中必须填写的字段。
  2. 选择工作项的主人是 User2。点击 Owned By 字段并选择 More
  3. 搜索 User2,并点击 OK 以将该用户设置为工作项的主人。
  4. 点击 Save 按钮来保存工作项。

合并冲突性的更改:非逻辑性的合并

您已经学到了怎样去比较和合并非冲突性的变更。在接下来的章节中,您将会学到怎样使用 Rational Software Architect Compare 和 Merge 功能来合并冲突性的模型变更操作。

  1. 打开 Team Artifacts 视图并点击 MyArea > Work items > Shared Queries > Predefined > Open assigned to me,以找到分配给 User2 的工作项。
  2. 在工作项视图之中,如图 11 所示,双击工作项以打开它。
图 11. Rational Team Concert 查询结果
来自查询的工作项结果列表
来自查询的工作项结果列表
  1. 既然 User2 知道这个问题的存在,它显示在缺陷描述之中,您就会向 Rational Team Concert 源控制添加丢失的工件以将其修复。
  2. 右击 Project Explorer 之中的模型并从下列菜单中选择 Team > Remove from Ignore List,来将 Use Case Model 从 Rational Team Concert “Ignore” 列表中删除掉。
  3. 点击 OK 按钮。
    注意: 您可以点击描述之中的模型资源链接,以浏览 Project Explorer 之中的 UML 元素。
图 12. 工作项描述
工作项描述部分
工作项描述部分
  1. 将缺陷的状态更改并将其声明为 ResolveFixed,来解决缺陷问题。
  2. 保存工作项。
  3. 现在,对 PiggyBank Design Model 作出更改。在 Project Explorer 视图之中展开 PiggyBank Design Model > PiggyBankImplementationDesigns
  4. 右击图表并从下列菜单之中选择 Refactor > Rename,将 PiggyBankImplementationDesignPackages 重命名为 PiggyBankUser2Design

交付所做的变更

  1. 现在您已经为交付更改做好准备了。打开 Pending Changes 视图。检入并交付未解决的更改。
  2. 将分配给 User2 的缺陷分配给早期创建的更改集。当您需要为更改集提供评论时,您可以点击 Next
  3. 选中 Show resolved 复选框,这样解决的缺陷就会被列出了,如图 13 所示。
图 13. 检入并交付附属于一个工作项的更改集
Associate Work Item 对话框
Associate Work Item 对话框
  1. 点击 Finish 按钮。

处理冲突

现在我们已经更改了在 UML 模型中将会创建的冲突。

  1. 使用 User1 的工作区来启动 Rational Software Architect。
  2. 重复 6 到 7 步,并将图表重命名为 PiggyBank User1 Design。这将会创建 User1 所做更改的冲突,该冲突应该进行手动解决。
  3. 保存 模型。
  4. 当您打开 Pending Changes 视图时,您就能够看到 Unresolved 以及 Incoming 更改了。右击 Unresolved 并从主菜单中选择 Check in all
图 14. Pending Changes 视图以及进入的更改和外出的更改
Pending Changes 视图显示了冲突
Pending Changes 视图显示了冲突
  1. 点击 Pending Changes 视图之中的 Pending Changes 来接受所有的更改。
  2. 点击 Auto-Resolve 按钮。
  3. 在声明没有冲突可以得到自动解决的对话框中点击Click OK
  4. 现在需要手动合并模型以解决该冲突。双击 Design model.emx (Modified > Modified)
  5. 图 15 显示了 Compare and Merge 编辑器。从 User1 中接受更改。User2 所做的更改将会被覆盖掉。
  6. 扩展所有的冲突。右击适当的冲突并选择 Accept
  7. 点击 Resolve as Merged 按钮。
  8. 切换至 Pending Changes 视图,并点击它以向随后的更改输入一条评论。接着就会出现一个可编辑的文本框。
  9. 右击 Outgoing changes 并从下列菜单中选择 Deliver,来向存储库交付合并模型。
图 15. Model Compare 与 Merge Editor 视图
Design Model.emx 项视图
Design Model.emx 项视图

图 15 的大图

激活逻辑性模型比较和合并

为了使用 Rational Software Architect 之内的 Rational Software Architect 来比较和合并 UML 模型,需要激活特定的选项。在完成以下的步骤之后,您就能够运用 Rational Team Concert 来使用逻辑模型了。

  1. 从主菜单栏中选择 Window > Preferences
  2. 选择 Team > Jazz Source Control > Model Enablement
图 16. Jazz 源控制模型激活偏好
Preferences 窗口之中的 Model Enablement 视图
Preferences 窗口之中的 Model Enablement 视图
  1. 选择以下的复选框 :
    • 支持建模工具(例如,UML)来参与 Accept 期间的文件内容
    • 逻辑性模型
    • com.ibm.xtools.model.ui.resources.modelProvider
  2. 点击 Apply 然后点击 OK
  3. 对于用户的工作区重复以上的步骤。

执行逻辑性模型合并操作

接下来, User1 与 User2 就会在逻辑性模型之中创建冲突。稍后,那些冲突都会得到解决。

  1. 作为 User1,点击用例并选择 Refactor > Rename,来给 Use Case Model > Account Operations 包之下的 Cash Check 用例重命名。
  2. 给它起一个 Deposit Check 的新名字, 然后点击 OK
  3. 向流程交付未解决的更改。对交付不冲突的更改部分重复 16–18 步以完成操作。
  4. 作为 User2,重复上述的步骤,从“Check Allow…”到“selecting Refactor > Rename”,但是将用例命名为 Cash Check (或者 Cash Cheque。这将会在逻辑性模型之中创建一个冲突。
  5. 打开 Pending Changes 视图,并检入您在前面步骤中所有未解决的更改。
  6. 接受来自 User2 的所有更改。
  7. 点击 Auto-Resolve 冲突性更改。
  8. 当 Logical Merge 对话框出现时(图 17),您可以双击 Logical Models > PiggyBank Models > IBM Rational Logical Model [Root file: Use Case Model.emx] (全文本合并)
图 17. 逻辑性合并窗口
Jazz Source Control Model Merge 窗口
Jazz Source Control Model Merge 窗口

图 17 的大图

  1. 右击并从下列菜单之中选择 Conflicts > Conflicting Modifications > Accept,来接受 User1 所做的更改。
  2. 点击 Commit Merge 按钮来保存合并的模型。

如果您想要得到关于 Rational Software Architect 与 Rational Team Concert 的更多信息,那么您可以查看 Resources 部分之中的引用。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=577038
ArticleTitle=集成 Rational Software Architect 与 Rational Team Concert
publish-date=11092010