6 Stimmen

Wie kann ich UML-Klassendiagramme aus C++-Quelldateien erzeugen?

Mit Doxygen kann ich schöne Diagramme erstellen, aber Doxygen fehlt eine tiefere Analyse der Beziehungen zwischen den Klassen. Es erkennt zwar Ableitungen, aber andere Beziehungen werden von dem Tool nicht verstanden. Welche besseren Dienstprogramme gibt es (kommerziell oder nicht), die vollständigere UML-Klassendiagramme aus C++-Quelldateien erzeugen?

Die für C#/Java verfügbaren Tools sind etwas besser, interessieren mich aber im Moment nicht.

4voto

Für das Parsen von C++-Code ist das beste Tool, das ich verwendet habe, BoUML. Es ist nicht perfekt und generiert die Diagramme nicht für Sie, aber es versteht die Beziehungen. Wenn Sie zwei Klassen in ein Klassendiagramm ziehen, zeichnet es automatisch die Beziehungen, und es ermöglicht Ihnen, das Diagramm zu erweitern, indem Sie eine bestimmte Klasse auswählen und das Tool verwandte Klassen anzeigen lassen (sowohl Klassen, die von der ausgewählten Klasse abhängen, als auch Klassen, von denen die ausgewählte Klasse abhängt).

3voto

Alok Save Punkte 196241

@jdehaan sieht so aus, als ob viele von uns heute im selben Boot sitzen ;)

codedrawer für C++( http://www.codedrawer.com/ ) ist ein solches Werkzeug.

Ich werde auf einige Links verweisen, die heute begonnen haben und die Sie interessieren könnten.

Qt-Abhängigkeitsvisualisierung

Code-Refactoring

3voto

BradTrim Punkte 56

Es erkennt die Ableitung, aber andere Beziehungen werden von dem Tool nicht verstanden.

Doxygen unterstützt auch die Erstellung von Kollaborationsdiagrammen, die ein Bild für Nicht-Vererbungsbeziehungen liefern.

Aus dem Doxygen-Handbuch:

COLLABORATION_GRAPH

Si le COLLABORATION_GRAPH y HAVE_DOT Tags sind festgelegt auf YES dann erzeugt doxygen für jede dokumentierte Klasse einen Graphen, der die direkten und indirekten Implementierungsabhängigkeiten (Vererbung, Containment und Klassenreferenzvariablen) der Klasse mit anderen dokumentierten Klassen zeigt.

Ich selbst mache nichts Ausgefallenes mit UML, aber diese Diagramme sind für meine Zwecke (Darstellung von Vererbung und Komposition) gut genug.

1voto

Tamás Szelei Punkte 22099

Unternehmensarchitekt . Analysiert den Code gründlich, kann Diagramme aus dem Code und Code aus dem Diagramm generieren und unterstützt die Round-Trip-Code-Generierung, d. h. die Modifizierung des generierten Diagramms und die Speicherung der Änderungen im Quellcode. Und es kennt C, C++, C#, Java, Python, VB.NET & VB, PHP, Java, Delphi. Außerdem unterstützt es eine ganze Reihe von Diagrammtypen, darunter natürlich die komplette UML2.0. (Ich weiß nicht, was es in C macht :P)

Abgesehen davon, dass es diese Dinge richtig macht, kann es noch VIELE andere Dinge, und ich denke, es ist seinen Preis wirklich wert, der je nach Ausgabe 135-239 USD beträgt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X