内容


使用 IBM Rational Software Architect V7.5 版本来逆向工程 UML 图

Comments

通过使用 Software Analyzer 来创建类的继承树

在面向对象的编程语言中,继承(inheritance)显示了家族内继承类之间的公共字段以及方法,并为每一个类展示了特定的字段和方法。开发员以及结构师可以使用 Java™项目中类的继承树结构,来理解项目中类之间的关系。假设您在 IBM® Rational® Software Architect V7.5 中创建或者载入了一个 Java 项目。按照以下步骤来在项目中创建一个继承树:

  1. 通过选择 Run > Analysis(见于图 1),来打开 Rational Software Architect V7.5 中的 Software Analyzer。您就可以使用 Software Analyzer ,来生成基于您所选择的规则的报告。Rational Software Architect V7.5 含有 Java Architectural Discovery、Code Review、UML Model Metrics,以及 UML Model 域内的规则。在 Java Architectural Discovery 域内创建一个继承树。
图 1. 打开 Software Analyzer
打开 Software Analyzer 的下拉菜单
打开 Software Analyzer 的下拉菜单
  1. 创建一个配置程序:
    1. 在 Name 字段内,输入一个名字。
    2. 在 Analysis Domains 和 Rules 区域内,展开 Object-oriented Patterns 类别并选中 Inheritance Tree 复选框(见于图 2)。
图 2. 创建一个继承树
Software Analyzer 窗口
Software Analyzer 窗口

点击查看 图 2 的大图

  1. 点击 Analyze,就会出现一个继承关系树(见于图 3)。该继承树显示了一个拥有三个子类的 Vehicle 类:BicycleCar,以及 PogoStickCar 类拥有两个子类:FamilyCarSportsCar。在继承树中没有过关于类字段和方法的任何信息。使用浏览器图表来研究类的字段和方法。
图 3. Software Analyzer 生成的继承树
继承树的屏幕截图
继承树的屏幕截图

点击查看 图 3 的大图

使用浏览器图表来研究继承树的细节信息

您使用 Software Analyzer 来创建的继承树,并没有包含关于类的字段以及方法的任何信息。使用浏览视图,来找到关于特定范围内每一个类的细节信息。所谓的范围可以是一个 Java 包裹、一个项目、一个工作集,或者一个工作单。例如,使用 FamilyCar 类作为使用浏览图表来研究细节信息的起始点:

  1. 为了打开一个浏览图表,您可以右键点击 FamilyCar.java 类名然后选择 Visualize > Explore in Browse Diagram(图 4)。
图 4. 在浏览视图中研究 FamilyCar 类
打开浏览视图步骤的图片
打开浏览视图步骤的图片
  1. 在 Browse Diagram 窗口中,关系工具栏下,点击 Extends 按钮(见于图 5)。关系工具栏包含了五种类型的关系:
    • 箭头图标Extends:从展开的 FamilyCar 来研究类
    • 箭头图标Dependency:研究 FamilyCar 方法使用的类
    • 箭头图标Realization:研究 FamilyCar 执行的界面
    • 箭头图标Association:研究与 FamilyCar 相关的类
    • 放大镜图标Declares:研究 FamilyCar 类中的声明的包裹
    • Degree of separation:研究应用关系扩展的层次
图 5. 带有一隔离程度的 FamilyCar 类的浏览图表
浏览视图中类的图片
浏览视图中类的图片
  1. 在关系工具栏旁边显示的是隔离的程度,它指示了图表中显示的 FamilyCar 类关系层次的数量。在图 5 中,显示的 1 值意味着图表只显示出 FamilyCar 类。当显示值为 2 时,图表会显示 FamilyCarCar,以及 Vehicle 类(见于图 6)。
图 6. 2 度隔离度浏览图表中的 FamilyCar 类
浏览图
浏览图

继承树的浏览图表是一个您不能保存的暂时性图表。一般来说,您使用浏览视图,来研究某个给定的类,或者记录某个项目的设计方案。

使用一个典型的图表来生成一个继承树

前面展示的范例,显示了怎样使用浏览视图,来可视化一个类的继承树关系。在特定的环境下,您可能想要创建一个图表,该图表在程序的开发期间,呈现了 FamilyCar 类的所有继承类。在这种情况下,您可以使用某个主题图表,来呈现给定类的继承树。不像浏览图表这样,您可以在模型文件夹内保存一个主题图表以便重复利用。

按照以下方法,来在主题图表中创建一个类的继承树:

  1. 打开某个给定类的主题图表,例如 FamilyCar,通过右键点击 FamilyCar.java 类然后选择 Visualize > Add to New Diagram File > Topic Diagram(见于图 7),来打开某个给定类的主题图表,例如 FamilyCar
图 7. 打开主题图表中的 FamilyCar 类
打开主题图表的下拉菜单选择
打开主题图表的下拉菜单选择
  1. 生成一个主题图表:
    1. 选择一个主题,例如 Inherited Java Classes(N 层次)
    2. 指定要显示的相关元素。在本例中, Extend 关系在进入以及出去的方向上都没有明确的表达式,以呈现整个继承树关系。
    3. 点击 Finish。结果显示在图 8 的右边。

为了响应 Java 源代码中发生的更改,您可以右键点击主题图表工作区并点击 Refresh,来更新图表。

图 8. 使用主题图表来创建一个继承树
显示创建继承树的 3 个屏幕截图
显示创建继承树的 3 个屏幕截图

点击 这里以得到图 8 的大图。

使用 Harvest 来将生成的类图集成到一个模型文件中

在 Rational Software Architect 中,您可以将某个模型文件转化为 Java 代码。您可以通过创建一个带有一些属性和方法的新类,来创建模型文件;也许您还可以从一个项目中将已存在的 Java 类集成到模型文件中。按照以下的方法,来使用 Rational Software Architect 中的 Harvest 函数,来将生成的类图复制到您的模型文件中:

  1. 通过点击 File > New item 来创建一个空白的模型文件。接着一个新的向导窗口就会打开(见于图 9)。
图 9. 打开 Model 向导
Rational Software Architect 中的 New 窗口
Rational Software Architect 中的 New 窗口
  1. 点击 Next 并遵循图 10 中的工作流程,它显示的是一个自由的图表。
图 10:创建一个模型文件
3 个屏幕截图:怎样去创建一个模型文件
3 个屏幕截图:怎样去创建一个模型文件

点击查看 图 10 的大图

  1. 通过使用 Harvest 函数,来将类图复制到新的模型文件中:
    1. 选择图表中的所有类(见于图 11)。
    2. 右键点击图表,然后点击 Harvest
图 11. 在浏览图表中 Harvest 选择的类
下拉菜单中选中的 Harvest 特性
下拉菜单中选中的 Harvest 特性
  1. 将类粘贴到新的模型文件中(图 11 显示出了结果)。

在图 11 中, Vehicle 和 Car 类都不会显示关于字段和方法的信息。为了让字段和方法变得可见,在图表中选择一个或者多个类,右键点击类,并点击 Filters > Show/Hide Compartment > All Compartments(见于图 12)。如图 13 所示,查看激活隔间的最终结果。

图 12. 显示 Vehicle 类的所有隔间
选择类的隔间的下拉菜单
选择类的隔间的下拉菜单

点击查看 图 12 的大图

图 13. Vehicle 类的隔间
类的所有隔间都是可见的
类的所有隔间都是可见的

总结

为了分析以及展开 Java 项目,您可以使用 Rational Software Architect V7.5 版本中的工具,来实现这个操作:

  • 使用 Software Analyzer ,来为项目中的所有类生成一个继承树。
  • 使用浏览视图,来可视化作为继承树一部分的类的细节信息。
  • 使用主题图表,来利用固定的查询来监视代码发生的更改。
  • 使用 Harvest 函数来从继承树中将类粘贴到一个模型文件中。

相关主题


评论

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=456242
ArticleTitle=使用 IBM Rational Software Architect V7.5 版本来逆向工程 UML 图
publish-date=12112009