代码分析工具推荐Understand
之前看ogitor ,第一次看到那么多代码~~不知道从哪里下手,而且好多东西都不会Ogre什么的都不是很清楚,对ogitor的代码结构的了解就更不用提了。晕头转向的不知道从哪里下手,一点点的看起来好吃力。后来从博客中看到了说understand的 ,当时用了一下可以从源代码生成类图 感觉很不错。不过由于考试啊乱七八糟的原因放了一段时间之后又由于系统出了问题重装后把他弄丢了,今天想用结果怎么也找不到是什么,连名字都忘了 汗~~以后要及时记录啊 找了几乎一天终于又找回来了 呵呵感觉比rational rose好得多吧,rational rose 现在已经没有更新了 下了一个都感觉不好用 win7下直接打不开 纠结 这个understan 的ui使用qt开发的呢 呵呵
Understand
---- 源代码分析&度量
Understand™ 从度量、图表、依赖关系分析、代码检查、等各方面全面管理您的源代码。
Understand™主要特点
Understand度量
Understand™对所分析的代码进行高效的度量计算,其计算也可通过命令行自动运行,同时支持表格导出、图形显示以及GUI动态浏览;另外,更可以通过Understand Perl API进行度量的自定义。通过Understand,还可以产生项目级(包含文件、类、函数或系统架构)的报告。
代码检查
Understand检查您的代码是否符合代码的国际标准(如MISRA-C 2004,MISRA-C++ 2008等),或者您自己自定义的检查标准,如企业的代码规范等。
代码编辑器
Understand提供了可以维护和理解您的代码的编辑器,通过其浏览、对比(文件/目录对比,‘微’对比 – 如字符级对比)您的源代码,可以更容易、更高效的进行代码的编辑;同时,该编辑器还支持自定义的设定,满足开发人员的工作需要。
依赖关系分析
Understand依赖关系浏览器具备以下特点:
- 文件及结构依赖关系快速浏览
- 依赖/被依赖关系、Butterfly图(文件/架构)
- 依赖关系图表导出
- 最新设计的依赖关系浏览Dock显示所以的依赖信息
Understand可以生成各种依赖关系图表(如整体架构的继承关系、子系统的继承关系等),
其结果可以保存为PNG、JPEG、SVG等,更可以直接保存为VISIO文件。
Understand依赖关系信息可以导出为CSV文件以备您进行进一步的分析。
即时搜索
通过Understand的即时搜索能力,您可以在上百万行的代码中立刻找到您需要的信息。
多种图表
Understand支持各种图表的生成,所有的图表您都可以将其保存成图片格式作为更广泛的编辑用途。通过Understand,您可以生成下列图表:
- 声明关系图
- 继承关系图
- 控制流图
- 依赖关系图
- UML类图
- 树形关系图
- 自定义图表
代码信息
- 通过Understand的信息浏览器,你可以看到相关代码实体所有详细信息。
- 代码上下文信息显示
- 自动化:通过Understand提供的相应命令,您可以快速的创建、分析项目和产生报
告,同时可以将Understand与您的构建系统进行集成,自动完成所以代码的分析。
报告
Understand支持各种报告的生成,根据您项目的开发语言,基本可以生成如下几类报告:
- 交叉引用报告
- 架构分析报告
- 质量报告
- 度量报告
- 客户自定义报告
支持的语言
Understand支持:Ada, C/C++, C#, FORTRAN, Java, JOVIAL, Pascal, PL/M, VHDL, Cobol, Web Languages (如PHP, HTML, CSS, Javascript和XML等)。
即使您的项目同时包含多种语言,Understand也可以进行分析。
支持的操作系统
Understand支持:Microsoft Windows (32位、64位),Linux (32位、64位),Solaris Sparc,Solaris X86,Mac OSX。
引用自http://www.emenda.eu/index.php?option=com_content&view=article&id=44&Itemid=22&lang=zh
推荐】强大的代码阅读工具Understand
4
个附件_http://www.scitools.com/products/understand/
Understand软件的功能主要定位于代码的阅读理解。界面貌似是用Qt开发的。
具备如下特性:
1、支持多语言:Ada,
C, C++, C#, Java, FORTRAN, Delphi, Jovial, and PL/M ,混合语言的project也支持
2、多平台:
Windows/Linux/Solaris/HP-UX/IRIX/MAC OS
X
3、代码语法高亮、代码折叠、交叉跳转、书签等基本阅读功能。
4、可以对整个project的architecture、metrics进行分析并输出报表。
5、可以对代码生成多种图(butterfly
graph、call graph、called by graph、control flow graph、UML class
graph等),在图上点击节点可以跳转到对应的源代码位置。
6、提供Perl
API便于扩展。作图全部是用Perl插件实现的,直接读取分析好的数据库作图。
7、内置的目录和文件比较器。
8、支持project的snapshot,并能和自家的TrackBack集成便于监视project的变化。
小技巧(官网的FAQ里有):
1、设置字体和颜色风格
修改默认字体:Tools
-> Options -> Editor -> Default style
修改颜色: Tools -> Options
-> Editor ->
Styles
2、生成UML类图、调用树图
默认安装的插件不支持这两种图,需要从官网下载插件。
_http://www.scitools.com/perl_scripts/uperl/uml_class.upl
_http://www.scitools.com/perl_scripts/uperl/invocation.upl
放到sti/conf/scripts/local目录下。
然后重新运行,执行
project-> project graphical views ->
xxxx可以生成这两种图。
3、更改图的字体
直接修改对应的脚本文件(\Program
Files\STI\conf\scripts目录下),在do_load(
)函数的对应位置加入如下的设置:
$graph->default("fontname","Consolas","node");
$graph->default("fontsize","10","node");
$graph->default("fontname","Consolas","edge");
$graph->default("fontsize","10","edge");
注意:有的脚本中的作图变量名不是
$graph 而是 $g。
另外一款代码可视化理解工具: http://www.sgvsarc.com/prod_crystalrevs_screenshots.htm