在 IBM Rational Software Architect V7.5 中使用 UML Modeler 的新特性

这篇文章重点叙述了 IBM® Rational® Software Architect Standard Edition V7.5 和 IBM® Rational® Software Architect for WebSphere Software V7.5 中都很常见的 UML Modeler 组件的新功能,并解释了如何权衡几个新近添加的特性。

Wayne Diu, 软件开发人员, IBM Canada

Wayne Diu 是 IBM Rational 的一名软件开发人员,他从事设计和执行 Profile Integration 特征的工作。他已经开发了几个 Rational Modeling Platform 的几个其它特征,比如 Browse Diagram 基础结构,并且他还是模型继承框架平台化的开发负责人员之一。他还从事其它特征的不同系列、比如打印、查询和重置,以及重构支持。


developerWorks 投稿作者

2008 年 10 月 09 日

改进的 UML 创建

UML Modeler 组件的新功能对新的 IBM® Rational® Software Architect Standard Edition V7.5 和新的 IBM® Rational® Software Architect for WebSphere Software V7.5 来说都是很常见的。整篇文章中,我们将把这两个产品简称为 IBM® Rational® Software Architect V7.5 或者 Rational Software Architect V7.5。

这篇文章重点叙述了 IBM Rational Software Architect V7.5 (以及更高版本)中 UML Modeler 组件的一些新的功能,并解释了如何权衡新近添加的几个特性。

对于 Rational Software Architect V7.5 中的 UML Modeler 组件可用性也做了大量的增强。首先,模型管理特性已经大大加强,使您能够更容易地利用在大量用户中共享的大型模型进行工作。此外,对那些假设理解创建是件很困难的事情的人来说,已经采取了一些措施来减少最初的障碍。并且已经尽力简化了潜在的复杂区域,使您更快地获得结果。

另一个强调的重点是模型完整性:也就是,降低以破坏的模型作为结果的可能性。事实上,在 Rational Software Architect 中,您已经拥有了理解和修复您的模型中潜在问题的能力。最终的结果是您能够更快地完成工作,并且以更准确的模型结束。对于这个结果,已经进行了一些变更,使您的模型与 UML 规范高度吻合。


New Model 向导

从 Rational Software Architect 更早版本升级的用户在使用这个新 New Model 向导时能很快注意到其中的一个差别:

  • 有两个创建型的向导,Model 向导和 UML Model 向导。
  • 模型模板的设置已经升级。
  • 向导页面已经增加,从而允许您自定义新的特性(比如有一个作为根元素的 Package, UI 特性, 以及工作组设置)。
  • 扩展性机制已经改进,这将可以很清楚地明白为什么会呈现两个向导。

Package 作为一个根

如果您从这个模板中创建一个新的模型,让 UML Package 成为资源中的根元素是这个 New Model 向导出现的最大的可见的变更之一。这样模板将不再求助于模型,您将看到模板转向求助 Package

要搞清楚这个专业术语:一个 Model 实际上就是一个带有另外两个属性的 Package,其中一个是 String。 (另一个属性是它是否是一个元模型。)

这个变化十分微妙,但是它却有些重要的含义。从历史来看,在先前产品的所有版本中,Model UML 元素通常在 .emx 文件资源的根中。在 UML 规范中也没有任何规定什么应该在资源的根部:的确,在 UML 规范中没有这个资源的概念。

很显然在 Rational Software Architect V7.5 中 Model 确实仅仅是一个 Package 的规范,现在的选择就是将这个 Package 作为资源的跟元素。这就解释了为什么看到 “Blank Model,”时,您看到的是 “Blank Package。”

您可能会遇到的一个问题是关于文件的兼容性,因为早期版本的产品并不支持使模型作为一个根。那么,您如何确保这个文件是可兼容的呢?第一种方法来自接着产生的向导页面。

Package Details 向导页面

如果您在选择了一个模板之后点击 Next 按钮(并且假设它是这个模板所支持的),那么您将通过这个 Package Details 页面来呈现。

在这个 Package Type 组中,您将能够把这个包类型更改为 Model,如图 1所示。然后,这个资源的根将成为 Model,这个文件就会在早期版本中被打开。这些设置不会恢复。因此,如果您再次浏览这个向导, 将会生成 Model,而不是 Package。如果您打算在这个产品的早期版本中使用模型,那么选择 Model 替代 Package 将会阻止一个逆向兼容性问题。

图 1. 在 Package Type 组中的 Model 和 Package 之间进行选择
Package Details 向导页面

提示: 您在图 2 中可以看到 Project Explorer 中的这个包(一个封闭的文件夹)的图标与模型(一个带有三角形的封闭文件夹)图标稍微有些差别。因此您不需要启动 Properties 视图就可以将它们区分开来。

图 2. 一个 UML 图标代表一个 Model
AirlineSystem 在 Project Explorer 中展开

如果您已经创建了一个 Package,并想将它转化成一个 Model,您很容易就可以做到。

  1. 右键点击这个 Package
  2. 选择 Refactor > Convert Package to Model
  3. 点击 OK

提示: 您可以以相同的方式将一个 Model 转化成一个 Package。右键点击这个 Model,并选择 Refactor > Convert Model to Package 。您会被警告将丢失这个观察点属性。回想起这个观察点 String 仅仅是这个包支持的一个附件属性,而模式并不支持。同样,不要把这个来自 UML 规范的观察点 String 与用来隐藏用户界面的非必要元素的 Modeling 观察点搞混淆。

把这个跟元素作为一个包是有它的好处的。例如,可以利用一个简单的拖拽操作就可以将一个跟包移到另一个中去。这是非常有效的,因为一个包可以包含其它包。

Model Capabilities 向导页面

Model Capabilities 页面允许您将不相干的 UI 从您的模式中隐藏起来。例如,假设您选择从这个 Blank Package 模板中创建一个模型,您将毫无疑问会创建 Activity 图。不需要拆散这些菜单,工具板,以及带有菜单条目的图助手,工具,以及带有选项的按钮来创建您不感兴趣的元素。从这个向导页面中,您可以仅仅选择您可能在模型中使用的图和 UML 元素。

图 3. 选择这些特性使其与这个新模型连接起来
Activity Diagram 被选中

提示: 如果您决定在创建模型之后更改这些特性,可以简单地这样操作:

  1. 在 Project Explorer 视图中选择这个模型。
  2. 然后,您可以从 Properties 视图的 Capabilities 标签页中修改这些特性。

将这个项目添加到 Modeling Sets 向导页面上

一个 Modeling Working Set 就是由来自您的 Eclipse 工作空间中的 Modeling 资源所构成的资源组。您可以将它看做是过滤后仅仅包含 Modeling 文件的 Resource Working Set。

这个 Add the project to Modeling Working Sets 页面允许您将这个包含您新近创建的模型(要么从标准的模板中要么从一个现存的模型中)的项目添加到这样的工作空间中。如果您现在还没有一个工作空间,您可以点击 Select 按钮来创建您自己的工作空间,如图 4所示。

图 4. 添加一个项目到 Modeling Working Set 中
复选框和下拉列表

工作空间的目的是在您的工作空间中隐藏不相干的资源。例如,假设将您对 Scheduling System 操作的时间减半,另一半时间用来对 Reservations System 进行操作。两个资源都有相似的命名惯例,很容易就将它们混淆。通常情况下它们是独立的,但是偶尔您会同时使用它们。

作为这个问题的解决方案,您可以将这些资源划分开到两个工作空间中。

  1. 然后,您可以从像 Project Explorer (或者 Package Explorer) 的视图中,按下这个三角形按钮来显示 View 菜单。
  2. 从这里,选择 Select Working Set (如图 5所示),从而从您的工作空间中过滤出不相干的资源,避免混乱。
图 5. 从 Project Explorer 中现在工作空间
菜单命令

向导可扩展性

New Model 向导的可扩展性机制已经大大改进。的确,作为它可扩展性的实际证明,UML Model 向导扩展了这个属的,非 UML 特定 Model 向导。这解释了为什么会有两个向导:一个是常见模型所有,另一个是 UML 所用的向导。这个 UML Model 向导对 com.ibm.xtools.common.ui.wizards.NewModelWizard 进行次级分类。您也可以这样做,构建一个自定义向导。

要通过 org.eclipse.ui.newWizards 扩展点了解更多关于有贡献作用的向导,请参阅参考资源部分。要了解更多关于起作用的模板,请看这个产品的文本 ( 扩展产品特性 > 扩展 IBM Rational Software Architect Software 功能 > 扩展 Rational 创建环境 > Rational Modeling Platform Developer Guide > 程序员的 Guide > 自定义用户界面 > 将 Templates 添加到 New Model Wizard )。


减少模型加载时间

打开模型的标准方法是在 Project Explorer 视图中双击它。在 Rational Software Architect V7.5 中,您将注意到在每个模型旁边都有一个加号,如图 6所示。如果您点击一个封闭模型旁边的加号,在不打开主图或者这个模型编辑器的情况下就可以打开这个模型。通常情况下,这个当模型打开时打开的图,就是带有绝大多数参考的图。因此,绘制就是通常出发引用模型所加载的。点击这个加号而非双击模型,这样允许您在不打开这个图的情况下浏览这个模型,这样还会潜在触发其它模型来加载。这样的确是个节省时间的好方法。

图 6. 加号显示在 Project Explorer 中的封闭模型旁
树状视图

提示: 您还可以利用 Open Model 菜单条目来实现,当您在 Project Explorer 中右键点击一个被选择的模型时也可以完成。这个 Open Model 菜单条目将不会打开这个模型编辑器或者主图。

Model 完整性
您曾经打开过刚刚被适当打开过的模型吗,当您打开它时只需要找到它,它是否包含一些破坏的参考?在 Rational Software Architect 中,有一个新的对话框会通知您有破坏的参考。只要您打开包含一个或者更多破环的参考(例如,通过一个用户的动作,比如点击这个加号,双击模型,或者甚至直接打开一些其它参考模型)。

按下 Details 按钮,就会显示一个破环参数的表格,如图 7所示。在底部有三个按钮:

  • 第一个按钮是修复:可以很快修复这些参数,并且很快使其顺应您的工作空间的参数,这将在后面有详细的介绍。修复将仅仅搜寻当前被加载模型中的元素。而且只会创建当前不能解决的元素的问题标记。
  • 中间的按钮是标记问题,它将问题标记添加到 Problems 视图中所有破环参数上。此外,这些将被标记有红色 X 的元素表明问题的位置。
  • 右边的按钮是忽略。这意味着保留这些破环参数。
图 7.Repair Workspace References 对话框
元素在左边,路径在右边

如果不能修复问题,能够标记问题其实并没有太大作用。幸运的是,您可以对这些问题进行修复。如果您选择这个 Quick Fix 菜单条目,就会显示一个带有两个选择的对话框。选择 Automatic Workspace Reference Fixup 选项,从而扫描您工作空间(包括封闭的资源)中所有的资源。然后它就会通过找出一个资源中的元素位置来对其中所有破环参数进行修复。这个相匹配的算法是基于元素 ID 的。然而,选择 更改资源路径参数 选项将仅仅修复当前被选择的破环参数。

两种修复被标记的问题的方法

Repair Workspace References 对话框中的 Repair 与 Quick Fix 对话框中的 Automatic Workspace Reference Fixup 之间的区别如下所示。Repair 仅仅搜索当前的模型来查找破裂的参考元素。例如,注意当您的小组在一个包含两个片断包的模型上操作时,第一个片断包包含一个类。同样,在您模型根水平有一个图,包含一个针对那个类的参数。如果您的小组中有人将这个类从第一个片断包中移到第二个片断包,但是接下来却忘了检查主模型,那么这个图中对于那个类的参数就会被破环。

Repair Workspace References 对话框中的 Repair 将修复这个情景,假设您已经将 Check to perform 选项设置为 Check resource and elements 。然而,如果有人打算将这个类移到完全不同的模式中,您需要调用 Automatic Workspace Reference Fixup Quick Fix 来查询和修复破环的参数。

可以将这个参数解决方案设置到适合您的工作流程。您可以在 Preferences 对话框中来完成,在 Modeling 中,Resource Resolution 类之下,如图 8所示。

图 8. Resource Resolution 首选项。
在左边树上选择条目,设置首选项

这些是第一组选项 ( Resolution Method ) 的选择:

  • 一个也没有 : 当破环参数进入时没有进行任何行为。相当于这个对话框中的 Ignore 按钮。
  • 即时的 (默认的):显示 Repair Workspace References 对话框,允许您预览这个破环参数,然后决定做什么。
  • 标记破环参数 :当破环参数在没有提示的情况下突然出现,就会自动创建问题标记。相当于这个对话框中的 标记问题 按钮。
  • 修复破环参数 :在没有提示的情况下自动修复破环参数。相当于这个对话框中的 Repair 按钮。

第二组选项 ( Check to Perform ) 需要更多的说明:

  • 检查资源 (默认的):只要这个资源存在,这个参数就被认为是为被破环的,即时这个参数元素已经不再存在于这个资源中。
  • 检查资源和元素 :只要这个资源存在 并且 这个参考元素存在于这个资源中,这个参数就被认为是未被破环的。

提示: 要维持先前版本的行为,这个检查资源选项是默认选择的。然而,检查资源和元素执行了更彻底的工作(尽管这样会花更多的时间)。如果您需要在移动资源之间大量的元素之后修复参数,那么强烈建议您选择检查资源和元素选项。

Profile 完整性

除了从用断开的模型引用打开模型以外,您还应该用一个丢失的应用文件来打开模型。图 9描述了打开 (CateringSystem) 模型之后的情形,应用在 (PilotOrderMaker) 模型中的文件已经丢失。

  1. 首先,打开这个 Profile Editor 并点击 Details 标签页。
  2. 然后选择这个未被解决的应用文件。 Repair Remove 按钮都会被激活。

在 Rational Software Architect V7.5 中,您可以采取两种行为来帮助您解决这个问题。点击 Repair 可以让您重新选择这个被应用的文件。如果这个文件的位置已经移动,那么这将起到很大作用。例如,很可能发生的情况是这个文件用在您工作空间中的一个文件中,但是现在它被当作一个插件部署在您的环境中。

然而,如果应用了一个完全无用的文件(这个引航员给出了命令吗?),点击 Remove 按钮将会更合适。 Remove 将不会应用这个文件应用软件,也不会应用应用那些未被应用文件的应用模式。一旦移动这些信息就没法恢复,因此您使用时应当格外谨慎。假设这个文件显然已经没什么意义,那它使用起来就十分方便。

图 9. Profile Editor 显示了未被解决的文件
Details 标签页在屏幕底端被选择

Activity Diagram

Rational Software Architect V7.5 中 Activity 图的新演进包括:

  • Call Behavior Actions 和 Call Operation Actions 对各自的行为和操作都会自动同步
  • 版面设计的加强
  • 一个新的,标准的流工具
  • 对隐藏和显示引脚能力的控制

Call Behavior Actions 和 Call Operation Actions

以 IBM® Rational Software Modeler V7.0.5.1 和 IBM® RationalSoftware Developer V7.0.5.1 开始,以及最新的 Rational Software Architect V7.5, Call Behavior Actions 和 Call Operation Actions 就不再会拥有默认的特定名称了。当 Call Behavior Action 或者 Call Operation Action 未命名时,就会用参考行为或者操作的名称来代替。当然,如果您选择指定一个名称,就会显示这个指定的名称。

注意: 如果您选择在这个图上显示别名,并且这个 Call Behavior Action 或者 Call Operation Action 还没命名,那么及就会显示参考行为或者操作的别名(无论 Call Behavior Action 或者 Call Operation Action 的名称是否已经设置)。如果这个参考行为或者操作的别名是空白,那它们的名称就会显示。

因为 Call Behavior Actions 和 Call Operation Actions 是在产品的早期版本中创建的,而且有默认的名称,您应该在这个模型中清除这些行为的名称,并充分利用新的功能。要迅速清除所有 Call Behavior Actions 的名称,可按照以下步骤操作:

  1. 激活 Tasks 视图并选择一个标题为“建议命名行为活动‘【 名称 】’有一个空白名称来显示这个参考【行为/操作】的任务。”
  2. 右键点击并选择 Quick Fix
  3. 接下来,选择的选项为 清除模式中所有行为活动的名称 ,如图 10所示。

对于 Call Operation Actions 可以重复这些步骤,需要时用 Operation 替代 Behavior

图 10. Quick Fix 对话框中用来轻易清除 Call Behavior Actions 名称的选项
列在可用修复下的两个选项

版面设计

行为图中的 Arrange All Arrange Selection 行为已经被加强。尤其是,这些元素不会重叠。同样,现在将这些元素分配到某个部分中也是十分容易的事。当某个部分被选择时, Arrange Selection 已经被激活:这样就会使这些元素分配到当前被选择的部分中,如图 11所示。从另一方面看, Arrange All 会分别安排这个被选中对象的整个活动图。

. 图 11. 通过图工具套,也可以通过一个菜单条目来执行安排的行为
菜单命令

标准的 Flow 工具

如果您使用先前版本的 Rational Software Architect 对 Activity 图进行操作,那么您很可能会注意到这个工具板中的两个流工具: Object Flow Control Flow 。现在,在 Rational Software Architect V7.5 中,这个工具板已经被简化只包含一个工具。您不再担心要挑选其中正确的一个的问题,这个工具已经足够灵活让您能够决定那一个是您想要的基于 UML 规则和常识的。

Flow 工具非常灵活以至于在必要时可以在 Control 流和 Object 流之间进行变换。例如,isvaluedcustomerDecision 控制节点和Hang upGive之间的YesNo流是十分明显的。提供Activity Final 节点必须是 Control 流,如图 12所示。然而,由于某些原因您可能要添加一个 Central Buffer。如果您再使其以No结束 Central Buffer,那么这个 Control 流将会自定变更为一个 Object 流。

图 12. 利用 Flow 工具进行创建。
活动图

当然,您很可能十分关心要使用哪个流工具。

  1. 情况可能是这样的,您将仍然拥有使 General > Capabilities Preferences 对话框中的先前两个流工具重新生效的选项。
  2. 点击 Advanced 按钮并选择 UML Activity 4 选项,激活它,如图 13所示。
图 13. 激活此特性从而显示 Object Flow 和 Control Flow 工具。
Advanced Capabilities Settings 对话框

显示和隐藏引脚

有人发现引脚会分散注意力(尽管它们在语义上是必须的),所有想把它们从 Activity 图中隐藏起来。

  1. 点击这个图表面,然后在 Appearance 属性标签页上。
  2. 选择 隐藏行为引脚 复选框。这个引脚将会被隐藏。
  3. 您还可以选择从 Modeling 中的 Preferences 对话框中隐藏掉所有图的引脚 > UML Diagrams > Activity > Pin Display ,如图 14所示。
图 14. 在 Preferences 对话框中显示和隐藏引脚
树状视图在左边,明细信息在右边

序列图

您现在可以将序列图的部分重构到一个 InteractionUse 中。此外,重构一个操作将会更新序列图中相应的信息,即时当这个序列图在一个被选择的模型中。同样,序列图现在也支持 Formal 和 Actual Gates 更好地与 UML 规范兼容,并且拷贝和粘贴功能也大大改善。

序列图重构

有时候,序列图包含许多您并不感兴趣的情况。您可以将这个图的一部分重构到一个 InteractionUse 中。在这个图 15所显示的图中,AgentSystem 发送了一个取消请求给 CancellationManager。这个部分就可以被重构到 InteractionUse 中。要实现它,请右键点击并选择 Refactor > Refactoring Into New Interaction 。执行重构的特性对 Rational Software Architect V7.5 来说是新功能。

图 15. 将这个 序列图中的一部分重构到 InteractionUse 中。
菜单命令

双击 InteractionUse 打开这个由重构而来的新序列图。

此外,如果一个序列图消息引用一个操作,那么这个操作随后就会被重构,这个消息名称就会自动被更新。即时这个序列图在一个封闭的模型中,这个更新也会发生。这个功能对 Rational Software Architect V7.5 来说是新功能,但是在 IBM® Rational® Software Modeler V7.0.5.1 (以及更高版本)和 IBM® Rational® Software Developer V7.0.5.1 中都是可利用的。

提示: 如果您想考虑这些封闭模型,您需要执行一次重构(如图16所示),而不是一次简单的重命名。确保选择 Refactor > 在 Project Explorer 中操作的上下文菜单中 Rename ,而不是对操作进行简单的重命名(例如,从这个图表面或者从 Properties 视图中)。选择 Refactor > Rename 一个操作将会更新这个消息名称,即时这个包含消息的序列图在一个封闭的模型中。

图 16. 修复一个拼写错误的操作名称
待执行的变更列表

Gate 支持

Gate 支持已经被添加到 Rational Software Modeler V7.0.5.1 和 Rational Software Developer V7.0.5.1 中,但是它对 Rational Software Architect V7.5 来说是新功能。

  1. 在互动框上添加一个 Formal Gate,点击一个消息面板创建工具。
  2. 接下来,点击这个图框并将它拖拽到生命线。

在图 17所显示的例子中,已经从这个图框中创建了一个同步消息到此生命线,并且这个现存的操作,performCancel,也已经被选择。这些消息被添加到此生命线的底部。将它们移到合适位置最简单的方法是通过消息的重新安排。

  1. 要实现它,请在 Windows 中选择此消息时按下 Alt 键(或者选择此消息,右键点击并选择 Select Message Set > Reorder )。
  2. 然后将requestCancel拖拽到performCancel板块。
图 17. 创建一个 Formal Gate。
图在左边,组合框在右

在最初的图中模拟到 InteractionUse 的 Actual Gatein,可以按照下面的步骤执行。

  1. 从另一个生命线拖拽一个消息 (也就是说,一个 Actor 代表图 18中的一个Agent)到 InteractionUse。
  2. 与您为 Formal Gate 所选择一样选择相同的操作。
图 18. 创建一个 Actual Gate。
菜单命令

提示: Rational Software Architect V7.5 包含确认规则,从而发现不确定和不相匹配的 Gate 。这些错误和任务将会分别显示在 Problems 视图和 Tasks 视图中。这些规则名称就是 Interaction Gate 实际的 Gate ——正式的 Gate 匹配规则

拷贝-和-粘贴功能的增强

Rational Software Architect V7.5 中序列图的拷贝-和-粘贴支持已经大大增强。您现在可以在序列图中拷贝序列图元素,也可以在 Project Explorer 中拷贝 Interactions。 与这个功能相关最有用的增强可能是与上下文意识相联系的粘贴操作。

这意味着您可以将一个 Optional Combined Fragment 拷贝到另一个更有用的 Arguably 中,而现存的生命线和元素都尽可能地重复使用。例如,如果您拷贝一个消息,它们就会显示在最初生命线的底端。您甚至可以拷贝生命线以及这个消息的一部分。这些增强使序列图编辑起来更容易。


其它少数特性和改进

识别确认规则

这篇文章的先前部分讨论特定确认规则在Gate 支持下是如何被添加的。

然而,某些问题,警告,以及任务的原因可能不能很快向您显现出来。现在,有一种简单的方法能够识别与确认失败相应的规则。

  1. Problems 视图或者 Tasks 视图中选择一个问题,警告,或者任务,并右键点击它。
  2. 您将看到一个叫做强制定义的新菜单条目,如图 19所示选择这个菜单条目将向您提供这个任务的详细信息,这样您就可以更好地理解这个建议的活动。如果这个限制不是强制的,您有权通过清除这个复选框和点击 OK 选择使它失效。
图 19. 获取更多关于导致确认失败规则的详细信息。
菜单命令

Explore 工具板标签页

在 Rational Software Architect V7.5 中,您已经能够轻松地开发这些关系了。这个图工具板中的 Explore 标签页可以让您开发不同种类的关系。要查看与这些特定元素相关的元素,点击这个工具板条目,然后目标元素就会在这个图表面。这些关系和相关元素都会自动显示出来。

图 20 显示 了与 SingleAvailabilityQuery 相关的关系和元素(从这个工具板中 Explore 标签页中的 UML 选项中选择 All Relationships 工具,并点击SingleAvailabilityQuery类)。

图 20. 利用 Relationships 工具来显示它们之间的关系。
关联图在左边,工具板在右边

此外,从 Profile 选项中,您可以显示所应用的固定模式和文件,如图 21所示。要实现它,可利用工具板中 Explore 标签页中的 Profile 选项中的 Applied Stereotypes 工具。

图 21. 利用 Applied Stereotypes 工具来显示它们之间的关系。
图和工具板

分组

您可能想要吧特定的图元素放在一起。例如,StartLocationEndLocation所列举的都是类似的概念,因此它们一起显示在图中会更有意义。可以这样操作:

  1. 选择这些状态
  2. 右键点击它们,然后选择 Filters > Group…

当它们被分组到一起时,这些元素就会被看做一个不可分开的集合,即时在安排操作的过程中。此外,如果选择了这个组, Arrange Selection 将在这个组内部安排这些对象。

将这些元素分组的另一个好处是,可以快速修改这些被分组元素的显示。例如,StartLocationEndLocation组件的可视性可以从 Filters 的弹出式菜单中进行修改。

当这个组被选择时,其它属性可以从 Properties 视图的 Appearance 标签页中或者从 Format 弹出式菜单中进行修改。这样您就可以在做出变更之前没有对这些相同元素一次又一次重新选择的情况下,对各种元素进行始终如一的观察。您可以利用这个弹出式菜单将它们的分组解散,如图 22所示。

图 22. 解散分组的元素
菜单命令

建模异常

在 Rational Software Architect 先前的版本中,建模异常是不可能的。Rational Software Architect V7.5 为建立例外去添加支持。您可以通过执行以下步骤实现它。

  1. 添加一个 Operation 到一个 Class 中。
  2. 然后,选择 Operation,调用 Properties 视图。您将看到一个标题为 Exceptions 的表格,如图 23所示。
  3. 点击 Add 按钮来选择一个异常的添加。
图 23. Exceptions 特性表格。
Project Explorer, Main, 以及 Properties 视图

为多值属性建立默认值

您可以在 Rational Software Architect V7.5 中为一个属性详细指定多个默认值。

  1. 创建您的属性之后,选择 属性 视图。
  2. 点击 ellipses (……) 按钮。您将看到一个为建立多值属性的界面,如图 24所示。

提示: 如果这个 ellipses 按钮没有激活,确保您已经将多样性设置为 * 或者一个比 1 大的数字,并且您已经为这个属性设置了类型。不同的类型将会在创建多值属性的界面上显示不同的按钮。例如,将这个属性类型设置为Enumeration,与将这个属性设置为先前的类型相比会产生不同的按钮。

图 24. 创建多个默认值。
Properties 弹出窗口

同样地,如果您执行 Instance 创建,您将会发现通过一个简单的界面,Rational Software Architect V7.5 对于空缺值的支持有更好的支持。同样的改进也添加到 Rational Software Modeler 和 Rational Systems Developer V7.0.5.1 中。

富文本

Rational Software Architect V7.5 中的这个富文本功能进行了巨大的改进,并且功能变得更加强大,如图 25所示。值得注意的是,Linux 中的行为与 Windows 中的稍有不同。例如,要利用 Linux 在 Model Editor 中编辑这个文本,点击这个文本板块下面的 Edit 按钮,从而显示一个允许您编辑这个富文本的对话框。

图 25. 利用模型文本的富文本
所选择的 Overview 标签页

元素和关系功能

Rational Software Architect V7.5 还有几个其它重要的新特性。

适时的展开元素和包的导入

您可以通过点击这个加号从而轻松地展开元素和包的导入,如图 26所示。这些功能对于 Rational Software Architect V7.5 都是新功能,但是在 Rational Software Modeler 和 Rational Systems Developer V7.0.5.1 中都是可利用的。适时的展开这些元素可以让您能够在跟大的团队中共享可管理规模的模型,而且可以轻松地引用它们。

非常重要的一点是,要清楚这些导入并不一定是这个系统的储存库。它们可能是您与另一个小组成员(或者甚至是另一个小组)共享的另一个模型,或许它们还能指向同一个模型中的另一个包。只要您可以对那个元素创建元素或者包入口,它就可以适时的被打开。

图 26. 在 Project Explorer 中展开包的导入。
树状视图

选择 Element 对话框

当您在工作空间中拥有大量模型时,最好不要同时打开它们,因为这样将不会对执行产生作用。的确,前面所讨论的加号增强帮助减少了环境中的开放模型的数量。

在 Rational Software Architect 先前的版本中,您不能在 Select Element 对话框的封闭模型中操作。事实上,封闭模型已经被过滤掉。为例从一个封闭模型中选择一些选项,您需要抵消这些 Select Element 对话框,手工开打这个模型,然后利用这个对话框来选择这个元素。

再没其它的了!首先,Select Element 对话框将在 Browse 标签页中显示这些封闭模型,如图 27所示。接下来,双击这个封闭模型将它打开。

提示: 当然,在 Browse 标签页中,您还可以用 Project Explorer 中相同的方式展开元素入口和包入口。展开这些入口从而代替了先前版本中的 Model Imports 虚拟文件夹,这就是您将要找到和选择的最初的类型。

图 27. 显示在 Select Element 对话框中 Browse 标签页的封闭模型
树状视图

类似地,在 Select Element 对话框的 Search 标签页中,来自封闭模型中的元素又重新回到它们相匹配的列表中。在它们所显示的图标的左上方有一个小的装饰物,如图 28所示。

  1. 双击这些相匹配之物(或者选择它并按下 OK 键)将下载这个模型并选择这个元素。
  2. 要从您搜索的范围排除封闭模型,可以点击 修改搜索范围 并清除 搜书整个工作空间 复选框。
图 28. 匹配列表中来自封闭模型的元素
查询和结果

内容帮助和创建位置类型

当您在适时的展开元素和包的导入时,它们不仅仅是能够给予帮助的。如果您导入一个元素并内容帮助,这个导入包的类型将包含在结果中。内容帮助会显示来自导入包的类型。CentralSystem 包已经被导入 (请看图 29中显示的 Project Explorer 视图),因此它的类型显示在内容帮助中。

图29. 内容帮助
所选择元素上下文相关选择

注意按照能见度标准 Select Element 对话框显得更为放松。事实上,它像一个微型 Project Explorer 一样运行,显示了封闭模型(取决于它是怎样被调用的),甚至还显示了可能并不是有效选择的元素。

然而,内容帮助显示了来自当前模型的无效选择(这里的 当前模型 与实际元素的位置相关,而不是与可能存在此元素的图相关),并且是从通过入口可以使其有效的元素中显示的,不管能见度如何。只要这些来自封闭模型和片断的元素是有效的选择,它们都会显示出来。

另一方面,如果您原本打算键入一个不能识别的类型,您将被提示创建一个初始类型,如图 30所示。创建的类型将被添加到您模型根部的PrimitveTypes 包中。如果这个包已经不存在,就创建一个。

图 30. 当键入一个未知类型时就会出现一个对话框。
Create New Type 对话框

您可以通过在 Modeling > Miscellaneous 页面上调整 当进入一个未知类型时就自动创建一个新类型 设置来控制 Preferences 对话框中 Create New Type 对话框的设置。此外,您还可以从这个优先页面修改内容帮助,如图 31所示。

图 31.Modeling > Miscellaneous 参数页面
树视图在左边 ,具体细节在右边

相互关系

在 Rational Software Architect 的先前版本中,为了构建一个相互关系,您至少要将这个资源拖拽到一个图上,然后利用相互关系工具板或者连接工具拖拽这个相互关系。同样,如果您不想这些元素在这个图上,也可以删除这两个元素和相互关系。

在 Rational Software Architect V7.5 中,您可以不用看到图上的任何元素就可以构建一个相互关系。

  1. Project Explorer 中,找到这个对象,它将在这个相互关系的资源末尾。
  2. 然后,右键点击并选择 Add UML Relationship
  3. 您可以从菜单中常见关系中挑选一个,或者点击 Advanced 。在任何情况下,您都会看到一个熟悉的 Select Element 对话框的修改版本,您将用它来选择相互关系的目标元素。如果您选择 Advanced ,您还将选择这个相互关系的类型,如图 32所示。

提示: 如果 Advanced 不在 Add UML 中显示 >Relationship 菜单,将激活 UML Element Building Blocks 中的 UML Relationship 3 特性。

图 32. 选择目标重点和相互关系的类型
树视图在顶端,类型列表在下面

同样,您还可以选择一个源或者一个目标元素,然后在 Properties 视图中显示这个新 Relationships 属性标签页。从这个标签页中,您可以选择创建一个新的相互关系,并选择这个目标元素或者这个相互关系的源元素。(这不像 Add UML 菜单,假设所选择的元素就是这个源元素并且只允许您选择这个目标元素。)这个 Relationships 标签页还显示了参与此相互关系的元素,如图 33所示。如果您点击 Navigate 按钮,您将在 Project Explorer 中看到所选择的相互关系。另一方面,如果您点击 Navigate to Related Element(s) 按钮,您将看到 Project Explorer 中所选择的其它参与此相互关系的元素。

图 33. Properties 视图中的 Relationships 标签页
源和目标相互关系

模型片断

片断中最显著的变化是,当您右键点击 Project Explorer 中的页面, Create Fragment Absorb Fragment 菜单就已经移到 Refactor 子菜单下,如图 34所示。

图 34. 这个 Refactor 子菜单包括创建和吸收片断的菜单条目
菜单命令

除此之外,您还将发现新的菜单条目,包括 Fragment All Sub-Packages Absorb All Sub-Fragments 。这些可以让您执行一批创建和片断吸收操作。先前,片断都必须单独创建和吸收。

提示: 当您选择 Fragment All Sub-Packages Absorb All Sub-Fragments 时,所选择的条目并没有被片断化和在吸收。只有内嵌的子元素被片断化或者吸收。


重构

您已经看到了如何将一个序列图的部分重构到一个InteractionUse的,这样事情就简单多了。此外,您还了解了 Rational Software Architect 是如何在重构的基础上帮助使模型元素保持同步的,从而保证了模型的完整性:也就是说,在序列图中更新消息名称,使 Call Behavior Actions 和 Call Operation Actions 使用重构的 Behavior 和 Operation 名称。然而,在 Rational Software Architect V7.5 中还有几个重构增强。

重构,删除

一个新的 Delete 菜单条目已经被添加到 Project Explorer 的 Refactor 弹出式菜单中。 Refactor > Delete 打开了封闭模型(删除了这个元素的参数),并且更新了这些参数。例如,引用删除元素的图元素已被清除。

粒度预览以及使非强制性更新失效的能力

在 Rational Software Architect V7.5 中,当您执行重构时(包括创建和吸收片断),您会看到一个列有所有受影响资源的粒度预览图。或许更重要的是,您现在可以取消不必要的更新,如图 35所示。这与强制吸收整个重构操作恰恰相反,如先前的版本就是如此。

因此,这个预览图不仅仅是对是否应该执行所有重构的警告。此外,它还提供了取消特定更新的特性,这在团队(这里的文件并不都是可写的)中是非常重要的。您时常会真正执行一个重构,即使您还不能更新一个非独立文件(您可能对它还没有改写权)。在版本之间进行一个 API 变更就是它的一个例子,即使您知道您将会破坏一个外部的客户。

图 35. 您可以在 Refactoring 预览图窗口使不想要的变更失效
不带预览的树状视图

添加片断创建和吸收的部分

片断创建和吸收的自定义参与现在是被支持的。这与 Eclipse 的重构参与十分类似。要获得关于 API 使用的详细情况,请选择 File > New > Example ,然后从 UML Modeler Plug-ins 目录中选择 Fragment Participant Example , 如图 36所示。

图 36. 这个向导是用来在您的工作环境中创建 Fragment Participant Example 的。
树状视图

提示: 如果您在 New Example 向导中没有看到这个样例,确保要从 Installation Manager 中安装 Modeling Extensibility 组件。


Rational Software Architect 中的新功能

就从您能在更大规模的团队中工作而言,模型修复和文件应用软件修复已经加强,在确保模型一致性和完整性方面它们都起到很大作用。在适当的位置展开元素入口和包入口的特性,使模型在更大规模的团第中共享的执行比以前更容易了。此外,提供了一个重构预览图,这样比以前更容易识别哪些变更是破坏的变更,特别是那些在较大团队中与许多不熟悉模型一起运行的变更。

对于使用的轻松,Modeling Working Sets 使资源在您的工作环境中的效率更高。这里有一种在不需要图的情况下创建相互关系的新方法,利用这个应用软件,清楚地表明什么样的元素可以是对象特定的资源(反之亦然)。现在是支持分组的。 Activity 图已经被加强,所反映的情况是,并不是每个人都想了解流和引脚 UML 语义的具体情况。

分配支持已经被改进。现在很容易就可以快速识别确认失败相应的确认规则。模型加载时间也变得更短,因为这个产品可以让您通过封闭的模型,利用这个加号快速浏览。内容帮助已经被加强,认为被添加的入口,和类型创建特特性够帮助您快速创建类型。它再次重点强调了您的工作流,而不是语义。

也可以以同样的方法来对待相关 Select Element 对话框的增强:它重点强调您的工作流。序列图的拷贝功能已被加强,使得这个图的编辑更加容易。同样, Explore 标签页也使查找元素之间相互关系的速度更快。

至于对 UML 规范的顺应问题,序列图是支持正式和实际的Gate 的,并且还可能拥有一个作为根元素的 Package。

对于普遍增强:

  • New Model 向导的扩展机制已经被改进
  • 富文本支持也被增强
  • 现在可以对模型异常和多值属性进行功能增强了。

此外,更新消息名称和 Call Behavior Actions 和 Call Operation Actions 的各种增强,使您的模型保持同步以及保留模型的完整性更简单了,即使发生了不可避免的重构。


致谢

作者对审核这篇文章的 Dusko Misic 和 Michael Hanner 表示衷心的感谢。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=345128
ArticleTitle=在 IBM Rational Software Architect V7.5 中使用 UML Modeler 的新特性
publish-date=10092008