一、概述
- Understand是一个用来进行静态的软件分析、软件度量、软件可视化的工具。
二、软件使用
1、安装
安装的是Understand 5.1,安装及另起可用网上很多资源。
2、新建工程
- 创建工程名称、路径
- 选择语言,注意,在C/C++后面有两种模式,下面有注释,其中Strict模式包含Object-C和Object—C++
- 添加代码文件夹路径
工程创建完毕
3、查询功能
1、常规搜索Ctrl+F
2、全局搜索,快捷键F5或者去上面菜单栏中的search栏中查找
4、项目视图
- 项目视图能够自动生成各种流程图结构图,帮助理清代码逻辑、结构等,以便快速理解项目流程,快速开发。鼠标右键Graphical Views。
1、Butterfly:如果两个实体间存在关系,就显示这两个实体间的调用和被调用关系;
2、Calls:展示从你选择的这个方法开始的整个调用链条
3、Called By:展示了这个实体被哪些代码调用,这个结构图是从底部向上看或者从右到左看;
4、Calls Relationship/Calledby Relationship:展示了两个实体之间的调用和被调用关系,操作方法:首先右键你要选择的第一个实体,然后点击另一个你要选择的实体,如果选择错误,可以再次点击其他正确即可,然后点击ok;
5、Control Flow:展示一个实体的控制流程图或者类似实体类型;
6、Cluster Control Flow:展示一个实体的流程图或者类似实体类型,这个比上一个更具有交互性;
7、Declaration:展示一个实体的结构关系,例如:展示参数,则返回类型和被调用函数,对于类,则展示私有成员变量(谁继承这个类,谁基于这个类);
8、Declaration File:展示所选的文件中所有被定义的实体(例如函数,类型,变量,常量等);
9、UML Class Diagram:展示这个项目中或者一个文件中定义的类以及与这个类关联的类;
三、静态代码检测
- 个人感觉能检查出来一部分不规则的代码,不能全相信检测结果。
之后可以按照.c文件逐个警告查看,个人感觉并不是全部的规则都需要修改,能够检测出一些函数没有返回值、函数定义与声明不一致、缺少参数、参数未用等情况。