静态代码分析工具(一)—Scitools Understand

  • Post author:
  • Post category:其他




一、概述

  • 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文件逐个警告查看,个人感觉并不是全部的规则都需要修改,能够检测出一些函数没有返回值、函数定义与声明不一致、缺少参数、参数未用等情况。



版权声明:本文为Davidysw原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。