The Joel on Software Discussion Group (CLOSED)

A place to discuss Joel on Software. Now closed.

This community works best when people use their real names. Please register for a free account.

Other Groups:
Joel on Software
Business of Software
Design of Software (CLOSED)
.NET Questions (CLOSED)
Fog Creek Copilot

The Old Forum

Your hosts:
Albert D. Kallal
Li-Fan Chen
Stephen Jones

Tools that can reverse engineer C/C++ code -> UML or diagrams

Anyone know of some free and easy to use tools that can do the job of generating UML and block diagrams from existing source code?
CMMI Sucks! Send private email
Wednesday, May 02, 2007
depends on the diagram and what you want it for. iirc doxygen can do class diagrams (as can countless other things). don't remember seeing any that generate sequence diagrams, which happens to be the only part of uml i've found particularly useful. but i don't use it much..
Wednesday, May 02, 2007
Not free, no.

"UMLStudio" from ($500 or so) will do both "forward" (diagram to .H files) and "reverse" (Code to UML class diagram) diagramming.  For C++, Java, IDL, and Ada.

"Understand for C++" will ingest entire subdirectory trees of code (and include directories).  It then will generate call trees, class diagrams, etc.  And it provides an excellent 'code browser'.  Again, around $500 per single license.  There's versions for Java, Ada, and Fortran too.
Wednesday, May 02, 2007
StarUml claims to reverse engineer C++ code. Never tried it though.
Wednesday, May 02, 2007
thanks.. i will check those two out.
CMMI Sucks! Send private email
Wednesday, May 02, 2007
I never actually tried, but it sounds a fairly easy thing to implement with Ruby or Python + Graphviz...
Carmack Send private email
Wednesday, May 02, 2007
Sparxsystems Enterprise Architect is good.
However nearly all of them will have issues with code having lots of macros and templates
Wednesday, May 02, 2007
UMLStudio (there is a student edition) and Embarcadero Describe (I hear about to be discontinued) did OK job for me.

There is a lot to be decided up front do you want typedef and macro to be dealt with.

C++ is not so simple to parse. Doxygen is not 100% accurate on large complex code bases

Thursday, May 03, 2007
i think the real question that needs to be answered first is why do you want to do this? im guessing it has to do with your sig?
Thursday, May 03, 2007

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz