扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:Joel Sundman 来源:论坛整理 2007年11月21日
关键字:
那么,您需要观察您的应用程序,以看出您认为需要变更的特定类与那些类和接口是相关联的。存在许多将
要这样做的一种简单方法是使用 Browse Diagram。该图是不可保存的,但它允许您以类似浏览器的方式浏览代码。要想在 Browse 图中查看您的代码,右键单击您的类,并选择 Visualize > Explore in a Browse Diagram。当图打开时,您可以选择想要查看的关系(Extends、Uses, Implements、References,和 Declares)及关系的深度。然后单击 Apply。该图是可点击的,双击一个类,您就可以看到它与另一个类的关系。然后您可以使用 Forward、Backward,和 Home 按钮在您已查看过的这些图之间进行切换,如图 3 所示。
图 3:利用 Browse 图将代码可视化为 UML 符号
Topic 图提供了另一种方法。Topic 图类似于 Browse 图,除了 Topic 图是可保存在您的工程中的 —— 保存为 .tpx 文件。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 类中的方法的静态方法时序图,您可以看到该方法所调用的同一个类和其他类中的其他方法。注意,概要图展示了一个较小的图,一个灰色的框表示您在图中的位置。
图 4:Swing 类中的方法的静态方法时序图
可视化代码的另一种方法是生成带有 JavaDoc 的 UML 图。就像浏览 图一样,所有类、接口,和包都是可点击的,您可以浏览您所点击的类、接口,或包的 JavaDoc 文档。为了将 UML 嵌入您的 JavaDoc 中,按照以下方法进行操作:在 Java 透视图中,务必选择您的工程,然后选择 Project 下拉菜单。选择 "Generate JavaDoc with Diagrams" > Automatically。您将看到类似图 5 中的窗口。
图 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 实例。
图 6:带有 UML 图的 JavaDoc 实例
Rational Application Developer 也拥有询问源代码的
这对代码质量的审查非常有帮助的。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 中的窗口。
图 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:展开 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 中的分析工具是基于代码的,这意味着它们参照您的代码来分析,或构建直观视图。此外,
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者