我们在分析工程源码时,会分析各种函数的调用关系,如果是单向的还好,比如:A调用B,B调用C,C调用D和E,这种逻辑非常容易梳理。
但实际中更常见的是,我们要分析 Linux 或者 Andorid 源码,或者一些开源第三方库的源码。这种源码代码量非常庞大,函数调用关系也很复杂,比如:A调用B和C,同时获取C的返回值进行回调,B调用D和E并且将返回值返回给A。如果想梳理这种关系单靠自己是比较难的,所以使用协助分析软件是必须的。
今天为大家介绍两款代码分析工具:bouml、understand。
bouml 在4.23版本之前是免费的,但是有一定bug,比如:有一个箭头指向调用,你删了,后来发现删错了,再次建立会发现建立不起来。如果工作用,可以购买正版。
bouml支持C++、Java、Idl、Php、Python、MySQL。主要用来分析面向对象语言对于类的继承关系和函数调用关系。
understand 软件,没有免费版本,但 CSDN 有蛮多注册机可以下载。支持 C、C++、C#、Ada、Java、Fortran、Delphi、Jovial等。对我们嵌入式工程师来说,知道它可以用来分析 C 语言函数调用关系即可。
bouml 软件和教程在公众号后台回复【code】即可领取。
软件使用教程大家在CSND和博客园找找就行,有很多。
官网:https://www.bouml.fr/
参考文档:https://www.bouml.fr/documentation.html
时序图和函数调用关系图。
其中时序图可以很好的表现每个函数的生命周期,我在很多技术文档都见过时序图。
bouml 是用 UML 生成调用关系的其中一个软件,还有很多其他付费 UML 软件,功能更加强大。
官网:https://www.scitools.com/
·················· END ··················