I am looking for a tool that can reverse engineer C++ to UML (and vice-versa). However, the crucial requirement is that it can correctly parse method (member function) bodies so that dependencies are correctly identified.
More Detail:
In the following code, ClassA is dependant on ClassB, so the UML tool needs to show this with a dashed line. There appear to be very few tools which can do this. I have tried Enterprise Architect, UMLStudio, Visual Paradigm, Borland Together, IBM Rational Architect and others.
class ClassB { static void methodStatic() {} void method() {} };
class ClassA { void method() { ClassB::methodStatic(); ClassB c; c.method(); } };
Edit: I have also tried StarUML. Note that Enterprise Architect is almost perfect; it correctly identifies dependencies from method parameter types and field types and all other features of the round-trip engineering seem to work well. However, it simply does not identify dependencies from method bodies, as in the example.