Depends简介与使用说明

Depends是个开源软件,刚发现,试用之后,效果惊艳。

它可以分析代码依赖关系。作为一个基础工具,仅仅提供了命令行。但通过graphviz(亲测可用),plantuml,DV8这些开源或者商业的工具,能基于depends的数据进行输出。

Depends生成的数据,直接进行展示,有时会出现线过多根本看不清的问题,如下图:

 

为此做了一个优化工具depends_opt,通过它可以优化数据,然后再提交给graphviz展示。

有关的使用方法及depends_opt,见附。

在实际项目中,选取了2个模块的代码,进行分析,示意如下:

 

 

 

 

提供简单使用说明,方便整理出代码模块关系图,从而能直观感受模块的当前状态,希望能对模块改进有所帮助。

约定:

  1. 以文件为最小单位,而不是以函数为最小单位。(这应该是depends的要求)

使用方法:

  1. 使用depends分析代码

java -jar tools\depends.jar --auto-include --format=dot cpp f:\...\VirtualGponOnu\ ponup_gpon

正常的话,会生成 ponup_gpon.dot

  1. 优化分析结果

tools\depends_opt ponup_gpon.dot 20

正常的话,会生成 ponup_gpon_2.dot

过程中,会打印出调用次数过大的扇入扇出文件名称。

  1. 使用graphviz展示

首先安装graphviz。

使用 GVEdit 打开 ponup_gpon_2.dot,就能看到展示图了。

通过 菜单graph -- setting 可以根据需要生成 png/pdf 等格式的文件。

注意事项:

  1. Java建议安装最新的版本。
  2. Pdf文档非常宽,建议使用foxit打开。
  3. 上文粗体字,使用时需要根据自己的情况修改。
  4. 在展示方面,因为graphviz不接受”.”,所以,.h ,.c 以 _h, _c 显示。

 

附:

  1. Depends  https://github.com/multilang-depends/depends/releases/
  2. Graphviz  http://graphviz.org/

你可能感兴趣的:(Depends简介与使用说明)