Scitools Understand
概述
Scitools Understand 是一款功能强大的软件度量和可视化工具,它可以帮助开发者深入理解及分析C/C++代码,提高代码质量和开发效率。
功能介绍
代码统计分析
Understand 可以统计代码的各种指标,如行数、复杂度、注释率等,直观判断代码质量。
图形化展示
Understand 可以以各种图形方式展示代码结构、调用关系、变量流程等,便于快速掌握代码架构。
通过 Understand 可以生成下列图表:
声明关系图
继承关系图
控制流图
依赖关系图
UML 类图
树形关系图
自定义图表
代码检查
Understand 支持检查代码是否符合代码的国际标准(如MISRA-C2004,MISRA-C++2008等),或者您自己自定义的检查标准,如企业的代码规范等。
依赖关系分析
依赖关系浏览器具备以下特点:
文件及结构依赖关系快速浏览
依赖/被依赖关系、Butterfly 图
依赖关系图表导出
可以生成各种依赖关系图表,其结果可以保存为 PNG、JPEG、SVG 等。
代码编辑器
Understand 提供了可以维护和理解代码的编辑器,可以更容易、更高效的进行代码的编辑;同时,该编辑器还支持自定义的设定,满足开发人员的工作需要。
使用说明
概述
以 ffmpeg 中的开源播放器 ffplay 源码为例对 Understand 使用进行说明。
新建项目
新建一个项目:
选择要分析的源码目录:
选择不编译代码:
选择保存位置后即可创建一个 Understand 工程:
代码分析
信息浏览
信息浏览器中包含了源码文件中包含的方法、结构体、变量等信息,双击即可定位到代码中位置:
Butterfly 图
概述
Butterfly 图用来表示函数间的调用关系。
操作示例
定位到 main 函数,右键选择 Butterfly:
即可查看 main 中调用了哪些函数:
Control Flow 图
概述
Control Flow 图用来表示函数内部的执行流程。
操作示例
定位到 main 函数,右键选择 Control Flow:
UML Sequence Diagram
概述
UML Sequence Diagram 用来展示两个实体之间的时序关系图。
操作示例
定位到 main 函数,右键选择 UML Sequence Diagram:
UML Class Diagram
概述
UML Class Diagram 用来展示这个项目中或者一个文件中定义的类以及与这个类关联的类。
操作示例
双击定位到结构体 clock,右键选择 UML Class Diagram:
即可查看 clock 的 UML 图:
上一条:嵌入式代码查看分析利器-Understand
下一条:源码分析神器-Understand的使用教程