I am aware of this post. However:
- I can use either Linux or Windows, not just Windows (vastly increasing overall options)
- That post is ancient and tools have come and gone since then
- I have tried those mentioned and am looking for alternatives
What tools are available for creating UML Class Diagrams from a set of .h or .cpp files?
I am looking for something that...
- Is free
- Runs out of the box on Windows OR Linux
- Either does not require an IDE, or works with QTCreator (which my project is based on)
- Has a GUI
- At least gets the attributes and methods. If it can't get the complicated parts, that's fine.
- At least runs with "impure" C++ (Has macros and other pre-processor steps)
Here is what I have tried so far:
StarUML: While it has an addon that performs reverse engineering, the results were mediocre. I think it may have been broken. Every class was named "Class" in the sidebar. The "overview" for the module I was interested in was several boxes, with the name of an enumeration or class. They were otherwise empty, and several were missing.
QTCreator offers modeling. I can create a new model and drag a .h file into it, but the results is just an empty class - attributes and methods did not carry over.
Dia with cpp2dia - I cannot get this to work. Definitely doesn't work "out of the box", requires some configuration that I cannot follow.
BoUML - Won't work, the C++ has pre-processor directives.
Doxygraph: Only works if the entire code-base is covered by Doxygen properly, as far as I can tell. This project is not.
Modelio: Can't install, relies on some old packages that Fedora 29 no longer supports.
Umbrello: Looked promising, crashed when I attempted to do the import of the module I wanted the diagrams of.
Visual Paradigm doesn't work if there are macros...unless you define every single macro for it in advance. There's too many to do by hand in this code, not feasible.
Things I may try as a last resort:
WhiteStarUML: I already tried StarUML.
ArgoUML: Can't figure out how to install this addon or fork of ArgoUML that has reverse-engineering for C++ here. Looks fairly dead, given 12 years with no update.
EXTRACT_ALL
,EXTRAC_STATIC
etc. toYES
to get a full / better coverage.