如何从C ++源文件生成UML类图?

时间:2010-09-23 15:21:33

标签: c++ uml generator class-diagram

使用doxygen,我可以生成漂亮的图表,但是doxygen缺乏对类之间关系的更深入分析。它识别派生,但工具不理解其他关系。哪些更好的实用程序(商用或非商用)可以从C ++源文件生成更完整的UML类图?

可用于C#/ Java的工具有点好,但我现在不感兴趣。

4 个答案:

答案 0 :(得分:4)

对于解析C ++代码,我使用的最好的工具是BoUML。它并不完美,它不会为您生成图表,但它确实理解了这些关系。如果将两个类拉入类图中,它将自动绘制关系,并允许您通过选择特定类并使工具调出相关类(这两个类依赖于所选类和类,选定的一个取决于)。

答案 1 :(得分:3)

@jdehaan看起来我们很多人今天都在同一条船上航行;)

C ++编译器(http://www.codedrawer.com/)就是这样一个工具。

我将链接到今天开始的一些您可能感兴趣的内容。

Qt Dependency Visualizer

Code refactoring

答案 2 :(得分:3)

它识别派生但该工具无法理解其他关系。

Doxygen还支持生成协作图,它为非继承关系提供图像。

来自Doxygen手册:

COLLABORATION_GRAPH
如果COLLABORATION_GRAPHHAVE_DOT标记设置为YES,则doxygen将为每个记录的类生成一个图形,显示直接和间接实现依赖项(继承,包含和类引用)具有其他记录类的类的变量。

我自己并不喜欢UML,但这些图表对我的目的来说已经足够了(图表继承和组合)。

答案 3 :(得分:1)

Enterprise Architect。深入分析代码,可以从代码生成图表,从图表生成代码,并支持往返代码生成,这意味着修改生成的图表并将更改保存到源代码中。它知道C,C ++,C#,Java,Python,VB.NET& VB,PHP,Java,Delphi。此外,它支持一大堆图表类型,当然包括完整的UML2.0。 (我不知道它在C中的作用:P)

除了正确地做这些东西之外,还有很多其他的东西,而且我认为它真的值得它的价格,这取决于版本135-239美元。