科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件使用Rational架构管理工具进行影响分析

使用Rational架构管理工具进行影响分析

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

虽然所有 Rational Architecture Management 工具中都没有“影响分析”特性,但是 Rational 工具集中有一些非常好的能力可以帮助您确定对您的应用程序所进行的建议的变更的影响。

作者:Joel Sundman 来源:论坛整理 2007年11月21日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
使用 Rational Application Developer 中的图

  那么,您需要观察您的应用程序,以看出您认为需要变更的特定类与那些类和接口是相关联的。存在许多将 Java 或 C++ 代码可视化为 UML 的方法。请注意,只有 RSA 中支持对 C++ 代码的可视化,而 RAD 和 RSA 中都支持对 Java 的可视化。

  要这样做的一种简单方法是使用 Browse Diagram。该图是不可保存的,但它允许您以类似浏览器的方式浏览代码。要想在 Browse 图中查看您的代码,右键单击您的类,并选择 Visualize > Explore in a Browse Diagram。当图打开时,您可以选择想要查看的关系(Extends、Uses, Implements、References,和 Declares)及关系的深度。然后单击 Apply。该图是可点击的,双击一个类,您就可以看到它与另一个类的关系。然后您可以使用 Forward、Backward,和 Home 按钮在您已查看过的这些图之间进行切换,如图 3 所示。

  RAD browse 图的屏幕快照。

  图 3:利用 Browse 图将代码可视化为 UML 符号

  Topic 图提供了另一种方法。Topic 图类似于 Browse 图,除了 Topic 图是可保存在您的工程中的 —— 保存为 .tpx 文件。Topic 图实际上是对您应用程序的代码的查询,所以,如果您的代码变更了,那么 Topic 图也将反映出该变更。在 Java 类型的环境菜单中,您可以按照创建 Browse 图的同样方法来生成 Topic 图。

  您还能够创建可以保存在您的工程中的 Class 图。与 Topic 图的差别是 Class 图只显示您添加的类,而且是可视化编辑 Java 代码的途径。您可以变更 Class 图中的类,这样会导致自动地对您的代码进行变更。记住在 Rational Application Developer 中,所有这些图 —— Browse、Topic 和 Class —— 都不是模型。您的 Java 代码位于图之后,而不是 UML 模型之后。

  如果您想更深入到方法中,但不想浏览源代码该怎么办?您可以创建该方法中 Java 代码的时序图。这是研究与其他许多类都进行交互的长方法的好工具,并且是对方法进行文档编制的好工具。 为了以时序图的形式查看方法,您可以在 package explorer 中展开类,右键单击该方法,并选择 Visualize > Add to New Diagram File > Static Method Sequence Diagram。它对静态的和平常的方法都可用,但时序图是静态的。图 4 展示了对于 Swing 类中的方法的静态方法时序图,您可以看到该方法所调用的同一个类和其他类中的其他方法。注意,概要图展示了一个较小的图,一个灰色的框表示您在图中的位置。

  Sequence 图的屏幕快照

  图 4:Swing 类中的方法的静态方法时序图

  可视化代码的另一种方法是生成带有 JavaDoc 的 UML 图。就像浏览 图一样,所有类、接口,和包都是可点击的,您可以浏览您所点击的类、接口,或包的 JavaDoc 文档。为了将 UML 嵌入您的 JavaDoc 中,按照以下方法进行操作:在 Java 透视图中,务必选择您的工程,然后选择 Project 下拉菜单。选择 "Generate JavaDoc with Diagrams" > Automatically。您将看到类似图 5 中的窗口。

  JavaDoc 环境的屏幕快照

  图 5:生成带有 JavaDoc 的 UML 图

  您需要告诉 RAD,您想要使用什么 javadoc.exe。图 2 中显示的实例使用了用 WebSphere Application Server 版本 6.0 测试环境加载的 javadoc.exe。选择您想生成的图,及 image 类型。如果您点击“Contribute diagrams and diagram tags to source”,它将在源代码中放置图的 image,并包含新的图 image 标签。这意味着将来您可以运行“Project > Generate JavaDoc with Diagrams > From Existing Tags”,来替代“Project > Generate Javadoc with Diagrams > Automatically”。

  单击 Finish,您的工程中将生成一个名为“doc”的新文件夹。展开 doc 文件夹,然后在 Web 浏览器中打开 index.html,您可以看到所生成的 JavaDoc。JavaDoc 页面上列出了对于每个类和接口的 UML 图,这些图显示了类或接口与其他类和接口之间的关系。您可以双击 UML 图,浏览 JavaDoc。图 6 展示了带有 UML 图的 JavaDoc 实例。

  JavaDoc 环境的屏幕快照

  图 6:带有 UML 图的 JavaDoc 实例

  Rational Application Developer 也拥有询问源代码的分析特性,寻找您还没有应用最佳实践的地方,或者您已经提出性能问题的地方。这个静态代码分析拥有分为以下几类的 212 条规则:设计原则(Design Principles)、全球化(Globalization)、J2EE 最佳实践、J2EE 安全、J2SE 最佳实践、J2SE 安全、命名、性能和私有 API 的检查。您还可以添加自己的分类和规则。如果您选择 Windows > Preferences,并展开 Analysis,您将看到 Custom Rules and Categories。在那里,您可以选择 Add a Category,然后向该分类添加规则。Custom Rule 向导将带您经过新规则的创建过程。

  这对代码质量的审查非常有帮助的。Rational Software Architect 通过添加“Architectural Discovery”规则集来扩展代码分析能力。我将在下个部分中分析这个 Analysis 特性。

  Rational Application Developer 中还拥有执行 Java 代码的运行时分析的 Java Runtime Profiling。这超出了本文的范围,但我强烈推荐您能自己研究一下该特性。

  用 Rational Software Architect 进行架构影响分析

  Rational Software Architect 允许您在应用程序上执行帮助您了解架构强度的代码审查。“Architectural Discovery”规则集包含了二十四条规则。标题为“Design Patterns”的子类包含了在您的代码中搜索七个“Gang of Four”设计模式的实现的规则。子类“Object-Oriented Patterns”将搜索您的代码,查看 OO 结构,并向您显示抽象和继承树。“Structural Patterns”子类中提供的反模式提供了帮助您寻找可能导致脆弱结构的 Breakable、Butterfly,和 Hub 的实现的规则。“System Patterns”分类包含了一条向您展示应用程序中包结构的规则。

  要使用该分析特性,就选择您希望审查的工程,然后单击右键,选择“Analyze”。一些透视图允许您选择 Run 下来菜单,然后选择“Analysis”。采用哪种方法都能让您看到类似图 7 中的窗口。

  RSA 中代码审查的屏幕快照

  图 7:在 Rational Software Architect 中运行代码审查的第一步

  在该窗口中,单击 New 按钮,然后您就可以选择分析名称并设置分析的范围。如果您在 RSA 中点击 Rules 选项卡,您将会看到 Architectural Discovery for Java 的选项。如果您选择该类,那么该类中的二十四个规则都将被选上。单击 Apply,然后选择 Analyze,进行分析。分析配置将被保存,并且可以通过环境菜单的 Analyze 选项很容易地再次运行。当 Analysis 运行完成时,将出现 Analysis Results 视图,如图 8 所示。

  完成的分析结构的屏幕快照

  图 8:当 Analysis 运行完成时,将出现 Analysis Results 视图

  Analysis Results 视图显示了为 Analysis 所选择的分类,括起来的信息表示找到了多少结果,以及分析运行了多久。当您展开该分类时,您将会看到带有关于该子类信息的子类。如果您进一步展开子类,您将看到列出的每个结果。双击结果,您就可以打开它,并且您将看到如图 9 中所示的直观视图。

  分析结果中的子类的屏幕快照

  图 9:展开 Rational Software Architect 中 Analysis Results 中的子类

  如先前提到的,结构模式是我们所称的“反模式”。在某些情况下,您构建或使用了您的整个应用程序所使用的框架,并且该框架可能出现在这些分类中的其中一种中。在这种情况下,您可以单击右键,并选择 Ignore the result。否则,您就应该注意是否找到了三种普遍的反模式的实现:Breakable、Butterfly 和 Hub。“Breakable”是一个依靠太多其他组件的组件或包。相反,“Butterfly”是拥有太多依赖性的组件或包。结合二者,“Hub”是即有太多依赖性,又有太多从属的组件或包。这些是由全球级别上的项目中的组件百分比和本地级别上的直接依赖性确定的。默认值分别是 15% 和 10%,在我前面介绍的,图 7 中所显示的分析配置中,二者都是可配置的。

  用 Rational Data Architect 进行数据库影响分析

  这是 IBM Web 站点上对 Rational Data Architect 的阐述:“影响分析将列出对具体元素的依赖性。结果以可视化的形式表示出来,而且为了更容易地观察,结果还以报告格式显示出来。”我在参考资源部分中列出的演示,“Managing Database Design Changes with Rational Data Architect”,提供了关于进行数据库影响分析的有用信息。

  总结

  Rational RequisitePro 不仅是需求管理的伟大工具,还擅长影响分析。Rational Application Developer 和 Rational Software Architect 中的分析工具是基于代码的,这意味着它们参照您的代码来分析,或构建直观视图。此外,使用 Rational Software Architect 可以参照 Models 来研究所提出的变更的影响。虽然 Rational Software Modeler 不包含 本文中提到的基于代码的分析工具的 IDE,,但是,如果您的模型可以表示应用程序代码的话,您仍旧可以进行影响分析。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章