可视化功能层次结构树的工具?

时间:2009-01-17 19:34:08

标签: oop function code-analysis

任何可以执行上述任何操作的代码分析或“逆向工程”工具?:

  • 计算哪些类子类哪些类
  • 计算哪些类实例化哪些类 - (例如 VS Class Designer
  • 计算哪些功能调用哪些功能 - (很像调用堆栈

3 个答案:

答案 0 :(得分:1)

Doxygen + GraphViz (对于图片,doxygen需要GraphViz)

具有最大的语言支持(因为您没有指定语言)并且查看器是浏览器,因此一旦生成,任何人都应该能够查看它。

配置doxygen以生成甚至未记录的成员,并包含源代码。这样,源代码将包含指向函数声明的链接,以便于导航。

还有一些专门用于语言的工具,例如Understand for C++

答案 1 :(得分:1)

  

计算哪些函数调用哪些函数

NDepend可以产生一些有用的方法或类调用图,例如下面的截图(图片全尺寸here免责声明:我是该工具的开发人员之一

NDepend Methods Call Graph

查找有关how to generate call graph with NDepend here的更多解释。

  

计算哪些类是哪些类的子类

NDepend可以生成类继承图(explanation to generate class inheritance graph here)。

  

计算哪些类实例化哪些类

NDepend允许通过LINQ查询编写代码查询(我们称之为CQLinq)。使用CQLinq,您可以请求创建特定类的方法或类,例如:

from m in Methods 
where m.CreateA("NUnit.Core.NUnitConfiguration")
select m

可以将此类CQLinq查询结果导出到图表视图,以获得依赖关系的直观表示。

作为旁注,使用CQLinq还可以编写代码规则。默认情况下会提出超过200 code rules的内容,其中包括有关设计架构代码质量代码演变<的规则/ em>,命名约定死代码 .NET Fx用法 ......

CQLinq规则可以是verified live in Visual Studio,也可以在构建过程中验证reported in an HTML/javascript report

答案 2 :(得分:0)

了解2.0

  

...显示依赖   在写入的代码部分之间   不同的语言。 CLA成功了   轻松跟随电话。   〜Combined Language Analysis

特别是此Function Call tree图片。