适用于 .NET 的静态分析工具

上一篇 / 下一篇  2010-05-25 11:55:52 / 个人分类:FXCOP

http://msdn.microsoft.com/zh-cn/magazine/dd263071.aspx

使用静态代码分析工具提高软件质量
许多软件团队使用代码评审来确保开发人员编写的代码正确、安全且符合公司的设计原则。这些原则可能规定了访问数据或其他外部资源所使用的命名约定、模式等内容。代码评审过程的很多方面都很机械,因此可以自动执行。静态代码分析工具扫描源代码或中间代码,并搜索违反定义的设计原则规则的代码。
FxCop (1.36 版)就是这样一个针对 Microsoft .NET Framework 中的应用程序的静态分析工具,由 Microsoft 创建,免费提供。FxCop 分析编译的 .NET 程序集的中间代码,并提供相关的建议来改进设计、安全性和性能。默认情况下,FxCop 根据开发类库的设计原则设定的规则分析程序集。设计原则规则可划分为九个类别,其中包括设计、全球化、性能和安全性等内容。例如,其中一个命名规则是“事件不能使用‘before’或‘after’前缀”。如果 FxCop 识别出某事件的名称为 BeforeUpdate,它便会建议您将 BeforeUpdate 替换为事件名称的现在时形式,即 Update。您也可以插入自定义规则类来反映您公司的内部设计原则。
要分析程序集,先启动 FxCop,创建新的项目,然后将程序集添加到该项目。FxCop 会显示分析该程序集时使用的 200 多个规则;您可以关闭现有的规则或添加您自己的规则。单击“分析”按钮开始分析。在枚举出该程序集的类型、类、方法和成员后,FxCop 会显示分析结果,其中将列出违反规则的代码和其所违反的规则。选择一项结果可以查看更加详细的描述和解决方案。
FxCop 作为独立的应用程序提供,还包含命令行实现功能,用户可轻松将其插入到自动执行的构建过程中。(代码分析是一项与 FxCop 非常相似的工具,附带 Visual Studio Team System,并已集成到 Visual Studio Shell 中。)有关如何使用 FxCop 的详细信息,请参阅 John Robbins 撰写的 Bugslayer 专栏:“遇到糟糕代码?FxCop 相助”和“三个重要的 FXCop 规则。”
FxCop 根据 .NET 设计原则设定的规则分析程序集(单击图像可查看大图)
Microsoft 还提供了一个静态代码分析工具,即 StyleCop (4.3 版)。FxCop 评估中间代码是否符合设计原则,而 StyleCop 评估的对象是 C# 源代码的样式。样式原则是指定应该如何对源代码进行格式化的规则,规定是否应该在 for 循环、if 语句和其他结构的缩进和格式中使用空格和制表符。StyleCop 示例规则包括:for 语句的主体应括在一对大括号中;= 和 != 运算符两边应有空格;对类内部成员变量的调用必须以“this”开头。
StyleCop 没有集成到 Visual Studio Team System 中,您必须亲自安装。在 Visual Studio 中执行 StyleCop 会分析当前打开的解决方案中的源代码,并在错误列表窗口中以警告的形式显示结果。StyleCop 也可以与 MSBuild 集成。
当 FxCop 和 StyleCop 查明违反规则的代码时,开发人员仍负责实现这些工具的建议。SubMain 的 CodeIt.Right(1.1 版)通过使违反规则的代码自动重构为一致的代码,将静态代码分析提升到了一个更高的级别。与 FxCop 类似,CodeIt.Right 也附带一组丰富的预定义规则(如前面提到的设计原则文档所述),能够添加自定义规则,但 CodeIt.Right 使创建和使用自定义规则更加轻松。
使用 FxCop 中的自定义规则需要构建和编译规则类并将其插入 FxCop。使用 CodeIt.Right,会从图形用户界面生成自定义规则;定义新规则需要采用基本行为模式,然后自定义一些属性。CodeIt.Right 集成了 Visual Studio .NET 2003、Visual Studio 2005 和 Visual Studio 2008 的解释器,还提供了命令行实现功能。
CodeIt.Right 更新所选的违反规则的代码,使之符合规则(单击图像可查看大图)
要在 Visual Studio 中使用 CodeIt.Right,请在 CodeIt.Right 菜单中选择“开始分析”选项。分析完解决方案后,CodeIt.Right 在 Visual Studio IDE 的窗口中显示结果,其中将列出每个违反规则的代码。此报表可以导出为 XML 文件,也可以导出为 Microsoft Office Excel 文件。
CodeIt.Right 最大的优点是自动代码重构功能。您可以通过结果屏幕查看需要修复哪些违反规则的代码,然后单击“修复选中项”(Correct Checked) 按钮。CodeIt.Right 所做的所有更改都会在 Visual Studio 中突出显示,单击一个按钮即可将自动进行的更改恢复到原来状态。
静态代码分析工具提供了一种快速、自动化的方法,来确保您的源代码符合预定义的设计和样式原则。遵循这些原则有助于生成更统一的代码,还可以查出潜在的安全性、性能、互操作性和全球化方面的缺陷。静态代码分析工具不能代替人为代码评审,但是,它们可以先检查一遍代码库,并突出显示需要高级开发人员特别注意的地方。
价格:FxCop(免费);StyleCop(免费);CodeIt.Right(每个用户许可证 250 美元)。

TAG:

 

评分:0

我来说两句

Open Toolbar