Generating UML from C++ code?


C++ Problem Overview

Is there a tool that can parse C++ files within a project and generate UML from it?

C++ Solutions

Solution 1 - C++

Here are a few options:

Step-by-Step Guide to Reverse Engineering Code into UML Diagrams with Microsoft Visio 2000 -


StarUML -

Reverse engineering of the UML class diagram from C++ code in presence of weakly typed containers (2001) -

Umbrello UML Modeller -

A list of other tools to look at -

Solution 2 - C++

If its just diagrams that you want, doxygen does a pretty good job.

Solution 3 - C++

I've developed a tool called Doxygraph which can parse the XML generated by Doxygen and turn it into an interactive UML class diagram which you can view in a web browser or import into any software that can read Graphviz "dot" files.

Solution 4 - C++

I believe Enterprise Architect can do that.

Solution 5 - C++

I find that Wikipedia can be a great source of information about such tools, especially for comparison tables. There's a page on UML tools. See in particular the reverse engineered languages column.

Solution 6 - C++

UML Studio does this quite well in my experience, and will run in "freeware mode" for small projects.

Solution 7 - C++

Seems Umbrello produces best UML from C++ code (suggest to use latest version >= 2.22) comparing to command-line autodia for Dia and other tools.

StarUML have not produced good diagrams for me: strange import, not usable, does not work for many people:

Solution 8 - C++

I have used Rational Rose and Rational Rhapsody for reverse engineering large projects. I would prefer Rational Rhapsody for getting the UML class files for C++ !

Solution 9 - C++

Whoever wants UML deserves Rational Rose :)

Solution 10 - C++

StarUML does just that and it is free. Unfortunately it hasn't been updated for a while. There were a couple of offshoot projects (as the project admins wouldn't allow it to be taken over) but they too have died a death.


All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestiongakView Question on Stackoverflow
Solution 1 - C++jwpfoxView Answer on Stackoverflow
Solution 2 - C++user48956View Answer on Stackoverflow
Solution 3 - C++OktalistView Answer on Stackoverflow
Solution 4 - C++cscholView Answer on Stackoverflow
Solution 5 - C++RhubbarbView Answer on Stackoverflow
Solution 6 - C++Patrick JohnmeyerView Answer on Stackoverflow
Solution 7 - C++Aleksey KontsevichView Answer on Stackoverflow
Solution 8 - C++ShanView Answer on Stackoverflow
Solution 9 - C++obecalpView Answer on Stackoverflow
Solution 10 - C++graham.reedsView Answer on Stackoverflow