6.6静态代码分析工具

在进行静态分析时,源代码文本会接受一系列形式检查,以扫描应用程序中的不规范和错误。这可以手动进行,也可以在工具的支持下进行。 工具可以帮助评估现有软件系统中的各种质量特性(如复杂性)。通过识别依赖关系,静态代码分析工具还可以用于优化运行时效率。它们还可以确定实现是否符合架构的要求,例如,确定在何处遵守了允许的依赖规则。

6.6.1需求和决策标准

• 可自动化,能够被集成到构建过程中 • 报告,能够以多种格式(HTML、RSS等)处理结果,包括可视化 • 灵活的分析标准和度量 • 支持多种编程语言 • 定义包含和排除标准(即应分析源代码的哪些部分以及如何分析)

6.6.2静态代码分析工具面临的挑战

• 支持多种编程语言 • 由于直接依赖(调用、包含)或间接依赖(依赖注入、通过数据结构的依赖或通过运行时环境的依赖),源代码中会出现依赖关系和耦合。间接依赖的分析要困难得多。

6.6.3 示例

静态分析: • Application Intelligence Platform (CAST Software .Inc) • Coverity (Synopsys) • FindBugs(开源) • Fortify Static Code Analyzer(Micro Focus) • JDepend(开源) • SonarQube (SonarSource) • Sonargraph (hello2morrow GmbH) • Sotograph (hello2morrow GmbH) • structure101(Headway Software)

Last updated