软件工程是一项需要焦点的富有挑战性的实践活动。项目经常被延迟交付,并且许多问题只要在软件运行期间才能够被发现。延迟的交付导致压力的产生,首先要做的事情是什么呢?答案就是:测试。
这 种压力所带来的一个结果就是,越来越少的测试被执行,许多问题无法被发现,从而生产出来的产品变得越来越不稳定。随着不稳定性的增加,施加在开发团队上面 的压力也随之增长,如此往复,形成恶性循环。因此,有效的测试是一个项目获得成功的关键因素。静态分析通过授予开发人员和测试人员一种柔性的方法打破了这 一恶性循环,这种柔性的方法在不影响正常的开发活动的情况下进行有效的测试。
代码复查 (Code Review) 的分析特性概述
静 态代码分析 (Static Analysis) 反映了工具和测试的一个逐渐发展的过程。正如开发工具和平台已经发展到使得开发人员能够创建更大型和更复杂的应用程序一样,IBM® Rational® Application Developer 的分析特性使得开发人员能够更加快捷地在代码中进行评审、识别、并且修正潜在的问题。
然 而,自动化的代码复查并不会取代手工的代码复查。代码复查工具是作为手工评审处理过程的一个必要补充。它们使您能够将更好的代码传递给手工评审阶段,并且 更有效的利用评审会话的时间。与将时间花费到修正常规的错误和矛盾上面所不同的是,您能够集中精力解决那些超出自动化评审范围的、更加复杂的和更具创造性 的设计决策上面。
在组评审中,您能够摆脱那些琐碎的和令人为难的编码错误和矛盾的困扰,将精力集中到设计问题上面。如果代码的变化值得登记的话,那么它们就值得首先通过代码复查来运行。
静 态代码分析使您能够评审代码基础 —— 全部或者任何一个部分 —— 满足一定标准的代码的出现。这些可能是预先定义的条件或者由您所定义的条件。这种类型的代码复查是组件测试和运行时分析的先决条件。在您确定代码通过静态 代码分析测试之后,组件测试和运行时分析应当产生有用的结果,从而使您能够运行后续类型的评审:
大小和复杂性 问题。大小妨碍开发人员和体系结构设计师在早期有效地发现问题。复杂性隐藏了来自开发人员的副作用。执行手工的代码复查和检查是一种在代码中确定问题的很 有效的方式。然而,这种效力往往受到时间约束条件的限制,导致以下这种情况的出现:代码复查和检查或者是不被执行,或者是很少被执行。
由于这种自动化的处理过程十分快捷,所以您能够经常运行代码复查。代码复查使得您能够在早期捕获和修正问题,从而最容易也最经济地做出改变。
自动化的代码复查工具有若干种向软件开发处理过程添加值的方式,这是由于它们执行以下这些任务:
代码复查的规则
Rational Application Developer V7.0 及其后续版本的分析特性包括 212 规则,分类介绍如下:
这些规则分类被进一步地组织到评审之中。被选中的评审指示了哪些规则将被应用到您的代码上面。分析特性包括如下这些评审或者规则集合:
静态分析处理过程涉及如下三个基本步骤(请参见图 1 所示):
设置例子项目
为本文设置一个例子项目,从 StaticSampleCodeAnalysis.zip 文件中导入例子源文件。(请您参见 Download 一节。这个例子代码将在本文中通篇被用到。)您还可以在您自己的代码上面运行该静态分析。具体操作步骤描述如下。
使用分析特性
Java 和 Debug 透视图默认情况下就包括分析功能,但是如果您希望在 Java 源代码文件以外的资源上运行一个静态分析的话,那么您可以将分析功能添加到任何一个透视图之中。
为静态分析自定义透视图
遵照以下这些步骤来执行:
本文转自:IBM developerWorks 中国
请点击此处查看全文