适用于C ++的优秀代码可视化/重构工具?

时间:2010-05-18 18:38:11

标签: c++ refactoring visualization

我发现自己最近在工作中遇到了许多相当大而复杂的代码库,我被要求进行审核或重构或两者兼而有之。当代码高度并发,大量使用模板(特别是静态多态)并且具有依赖于回调/信号/条件变量/等的逻辑时,这可能非常耗时。

C ++期间是否有任何良好的可视化工具,其中有哪些实际上与“高级”C ++功能配合得很好?任何事情都可能比我现在的方法更好,这基本上是笔+纸或踩过调试器。调试器方法可以很好地跟踪特定的代码路径,但是对于在进行严格的重构时看到真正需要的大图片并不是很好。

编辑:我应该提一下,Visual Studio插件对我来说不会有很多帮助,因为我们的东西主要是Linux版本。

7 个答案:

答案 0 :(得分:3)

你可以使用Doxygen来帮助你入门;一旦完成了简单的部分(类布局,层次结构......),您需要编写其他软件,这些软件不能像doxygen这样的工具轻松处理。

祝你好运。

微米。

答案 1 :(得分:2)

可视化:

我不知道UML世界之外发生了什么,但它内部可用的内容并不能完全逆向设计基于模板的现代C ++。充其量,您将获得简单的类图。

重构:

Mozilla创建了dehydra / Pork工具来分析和重构他们的C ++源代码,用更好的习语改变他们的旧式XPCOM和内存管理。它不依赖于可视化工具,而是使用模式匹配和JavaScript。我自己没有尝试过,幸运的是没有处于需要的位置。

答案 2 :(得分:1)

没有。编号和编号。您需要手动记录和绘制代码库;应该已经部分完成的事情。

对于xemacs,有一个重构工具,或者至少声称是。有一个用于VS,但它不起作用,只知道像5-10个重构。 xemacs的价格是250美元或者其他东西。不知道Eclipse的一个。你很可能需要手工完成你的重构。

答案 3 :(得分:1)

我不知道C ++的重构工具甚至在同一个联盟中,例如你可以为Java找到的重构工具。 Eclipse / CTD有一些小的重构(提取方法,make public / private / getter + setter),但就此而言。

Eclipse / CDT仍然是一个很好的工具,可以概述庞大的代码库。代码导航功能(显示引用,显示定义,显示声明,类层次结构等等)是我在C / C ++编辑器中看到的最好的。

答案 4 :(得分:1)

答案 5 :(得分:0)

我无法保证,但有CDT Refactoring Project 修改:该页面看起来过时了。也许其他人可以证明CDT重构的地位?

答案 6 :(得分:0)

DMS Software Reengineering Toolkit是由语言定义参数化的程序转换引擎。它有一个完整的C ++前端,并且已被用于进行用C ++编码的软件系统的大规模重构。

参见Akers,R,Baxter,I.,Mehlich,M.,Ellis,B.,Luecke,K.,案例研究:通过自动程序转换重新设计C ++组件模型,信息&软件技术49(3):275-291 2007讨论DMS及其如何应用于C ++模块以支持航空电子软件。

相关问题