是否有任何工具可以可视化模板/类方法及其用法?

Posted

技术标签:

【中文标题】是否有任何工具可以可视化模板/类方法及其用法?【英文标题】:Are there any tools to visualize template/class methods and their usage? 【发布时间】:2008-08-30 06:51:07 【问题描述】:

我已经接管了一个大型代码库,想大致了解某些类及其方法的使用方式和位置。

有什么好的工具可以以某种方式可视化依赖关系并绘制漂亮的调用树或类似的东西吗?

如果这有助于缩小任何选择范围,代码在 Visual Studio 中的 C++ 中。

【问题讨论】:

【参考方案1】:

这里有几个选项:

CodeDrawer CC-RIDER Doxygen

最后一个,doxygen,更像是一个自动文档工具,但它能够生成依赖图和继承图。它也是在 GPL 下获得许可的,不像前两个不是免费的。

【讨论】:

【参考方案2】:

当我使用 Doxygen 时,它会生成完整的调用者和被调用者列表。我认为你必须打开它。

【讨论】:

【参考方案3】:

大卫,感谢您的建议。我在周末试用了这些程序。

Doxygen 似乎是这 3 种方法中最全面的,但在方法调用方方面仍有一些不足之处。

所有 3 种 C++ 模板似乎都存在不同程度的问题。 CC-Rider 只是在分析过程中崩溃了,CodeDrawer 没有显示很多关系。 Doxygen 工作得很好,但它也没有找到并显示所有关系,而是用大量的宏引用让我不知所措,直到我将它们过滤掉。

所以,也许我应该澄清一下“大型代码库”,以便最终提出其他建议:> 100k 行代码总体分布在 100 多个模板文件以及几个实际的类文件中。

还有其他工具可以胜任这项任务并且可以做得更好(更彻底)吗?哦,特别是:任何了解 IDL 和 COM 接口的东西?

【讨论】:

【参考方案4】:

当我使用 Doxygen 时,它会生成完整的调用者和被调用者列表。我认为你必须打开它。

我当然这样做了,但就像我提到的,doxygen 不考虑对象之间的接口,因为它们在 IDL 中定义。它“仅”显示直接 C++ 调用。

不要误会我的意思,它的作用已经很了不起了,但从我的高层次来看,它仍然不完整,试图很好地理解所有东西是如何组合在一起的。

【讨论】:

【参考方案5】:

在 Java 中,我将从 JDepend 开始。在 .NET 中,使用 NDepend。不懂C++。

【讨论】:

以上是关于是否有任何工具可以可视化模板/类方法及其用法?的主要内容,如果未能解决你的问题,请参考以下文章

在窗体中迭代所有控件及其相关控件的通用递归方法

是否有任何工具可以可视化 RDF 图? (请附上截图)

java中修饰符及其用法

java文件读写类及其用法介绍

是否有可视化 grails webflow 的工具?

如果给定模板参数,是不是有可以将模板类转换为实际类的 C++ 工具? [关闭]