Es ist wieder eine Art von "wie man es richtig macht" Frage. Tut mir leid, wenn jemand verärgert ist.
Ich muss ca. 150 TLOCs einer C/C++-Mischung verstehen. Ich habe den Code in das UML-Tool "Enterprise Architect" importiert und ein unübersichtliches Diagramm erhalten. Viele Structs und Enums hatten anonyme Namen wegen dieser C-artigen Konstrukte: typedef struct/enum {...} MyType;
Im zweiten Durchgang habe ich es in C++-Form umgewandelt: struct/enum MyType{...};
bekam aber einen Haufen unzusammenhängender Strukturen. Leider löst Enterprise Architect keine Typendefinitionen auf, z.B. wurden keine Beziehungen zwischen A, B und C erkannt:
struct A;
struct B;
typedef A *PtrA;
typedef List<B> BList;
struct C{ PtrA pA; BList lB; };
Dank der durchgängigen Namenskonvention konnte ich alle Typendefinitionen durch den Originaltyp wie folgt ersetzen:
struct C{ A pA; B lB; };
Der Import des Quellcodes in "Enterprise Architect" ergab nun ein schönes Diagramm mit allen Beziehungen. Natürlich lässt sich der Code nicht kompilieren und ist auch nicht derselbe. Alle Änderungen im Code erfordern eine lästige Konvertierung, um diesen "Pseudo"-Code für EA wieder verständlich zu machen. Daher meine Fragen:
- Gibt es eine Möglichkeit, EA zu unterrichten? die ursprünglichen Typen zu erkennen?
- Erkennen andere UML-Tools die Typen (und erstellen Beziehungen zwischen ihnen) robuster?
Vielen Dank für jeden Ratschlag! Valentin Heinitz