views:

62

answers:

4

With doxygen I can generate nice diagrams but doxygen lacks a deeper analysis of the relationships between classes. It recognizes derivation but other relations are not understood by the tool. Which better utilities are there (commercial or not) that generate more complete UML class diagrams out of C++ source files?

PS: The tools available for C#/Java are a bit better but do not interest me right now.

+1  A: 

@jdehaan looks like lot of us are sailing in the same boat today ;)

codedrawer for C++(http://www.codedrawer.com/) is one such tool.

I will link to some started today that might interest you.

http://stackoverflow.com/questions/3776482/qt-dependency-visualizer/3777727#3777727 http://stackoverflow.com/questions/3777016/code-refactoring

Als
+1  A: 

For parsing C++ code, the best tool I have used is BoUML. It is not perfect, and it won't generate the diagrams for you, but it does understand the relationships. If you pull two classes into a class diagram, it will automatically draw the relationships, and it allows you to grow the diagram by selecting a particular class and having the tool bring up related classes (both classes that depend on the selected one and classes that the selected one depends on).

David Rodríguez - dribeas
+1  A: 

Enterprise Architect. Deeply analyzes the code, can generate diagrams from code, code from diagram, and support round-trip code generation which means modifying the generated diagram and saving the changes into source code. And it knows C, C++, C#, Java, Python, VB.NET & VB, PHP, Java, Delphi. Also, it support a whole bunch of diagram types including complete UML2.0 of course. (I don't know what it does in C :P)

Besides doing these stuff right, it does LOTS of other things, and I think it's really worth its price, which is 135-239 USD depending on the edition.

Tamás Szelei
The round tripping is working a bit weirdy but it's definitively a valuable tool. I'll dig a bit deeper into it.
jdehaan
A: 
BradTrim
I am looking for a tool capable of understanding the code a bit deeper. Doxygen just displays what has to do with what (references, members) but not in which exact way. At least a good starter like you said. Thanks anyway. Maybe this helps others that missed this setting.
jdehaan