Ich spreche UML nicht fließend, aber ich würde gerne ein Klassendiagramm basierend auf bestehendem C ++ Code erstellen. Andere StackOverflow-Fragen haben gezeigt, dass zwei Programme - Enterprise Architect und Rational Software Architect - ziemlich gut im C ++ - Code "reverse engineering" sind (d. H. Erstellen von UML-Klassendiagrammen basierend auf bestehendem C ++ - Code).
Ich habe die Testversion für beide Anwendungen heruntergeladen. Ich kann jedoch keine Fortschritte darin machen, zu verstehen, was zu tun ist, um in jeder dieser Anwendungen ein Klassendiagramm zu erstellen.
In Rational Software Architect habe ich ein UML-Projekt erstellt, aber ich kann im Programm keinen Weg finden, meinen vorhandenen C ++ - Code auszuwählen und zurückzuentwickeln.
In Enterprise Architect konnte ich meinen C ++ - Code importieren, aber alle Elemente (Klassen) erschienen in einer nutzlosen, sich überschneidenden diagonalen Linie innerhalb des Diagramms. Ich habe andere Einstellungen versucht, z. B. Kreis, aber diese waren ebenso unmöglich zu lesen, weil die Diagramme so groß waren (aufgrund der Attribute und Methoden, die viel Platz beanspruchten), dass kein Schwenken und Zoomen nützlich war. Was ich möchte ist, alles außer den Klassennamen zu verbergen (d. H. Keine Methoden oder Attribute anzuzeigen), so dass alle 20 Klassen bequem und leserlich auf einem Bildschirm erscheinen.
Ich finde jedoch keine Möglichkeit, alles außer den Klassennamen zu verbergen. Stattdessen, als ich eine Option (in Enterprise Architect) fand, die alles andere als die Klassennamen zu verbergen schien, verschwanden die Elemente aus irgendeinem Grund im Klassendiagramm, und es gab keine Wiederholung der Schritte & amp; Durch das Löschen und erneute Hinzufügen von Paketen wurde das Klassendiagramm wieder angezeigt.
Hinweis: Mein C ++ - Code (mindestens die Dateien, die ich für den Import in Enterprise Architect ausgewählt habe) beträgt nur etwa 20 Klassen.
Leider bietet eine sehr sorgfältige Suche in der Dokumentation für diese beiden Programme nur allgemeine Hinweise - für jedes dieser Programme werden keine spezifischen Anweisungen bezüglich des Reverse Engineering gegeben, soweit ich es finden konnte.
Ich wäre dankbar, wenn mir jemand die grundlegenden Schritte erklären könnte, um ein lesbares, leicht zu navigierendes Diagramm zu erstellen. Reverse Engineering (dh C ++ - zu-UML), das nur die Klassennamen anzeigt, sodass etwa 20 Klassen (lesbar) auf einen Bildschirm passen, entweder mit Enterprise Architect oder Rational Software Architect - ODER mit jedem anderen Werkzeug, das dazu in der Lage ist (Ich schlage EA und Rational nur vor, weil sie in anderen StackOverflow-Antworten als die besten verfügbaren Programme für diesen Zweck hervorgehoben wurden).
Diese Antwort gilt für EA.
Sie können einzelne Dateien oder ganze Verzeichnisse rekursiv oder nicht importieren. Der Verzeichnis-Import ist bei weitem der häufigste Fall; Beim Import einzelner Dateien können Sie kein Diagramm automatisch erstellen.
Wenn Sie ein Quellverzeichnis importieren, haben Sie die Möglichkeit, Diagramme für jedes UML-Paket oder gar keine Diagramme zu erstellen. Sie entscheiden auch, ob Sie Pakete für jedes Quellcodeverzeichnis, Namespace (Standard) oder Datei erstellen möchten.
Wenn Ihr Code aus nur 20 Klassen besteht, dann befinden sie sich wahrscheinlich in einem einzigen Verzeichnis und / oder Namespace, also spielen Sie mit dieser Option (Package Structure im Dialog Import Source), um die richtige Anzahl an Diagrammen zu erhalten / p>
Im selben Dialog gibt es eine Schaltfläche "Neue Diagrammoptionen", die einen weiteren Konfigurationsdialog öffnet, in dem Sie auswählen können, ob die Diagramme die Attribute und / oder Operationen der Klassen enthalten sollen. Sie können die Entscheidung auch auf Basis der Sichtbarkeit treffen, z. B. nur öffentliche Mitglieder anzeigen.
Dieser Dialog beeinflusst nur, was in den Diagrammen angezeigt wird, wenn sie erstellt werden. Die Mitglieder werden immer noch importiert, nur nicht angezeigt. Das klingt nach dem, wonach du suchst.
Sie können die Anzeigeoptionen für jedes Diagramm ändern, indem Sie auf einen leeren Bereich doppelklicken oder indem Sie mit der rechten Maustaste klicken und Eigenschaften auswählen. Es hört sich so an, als ob du dich in diesen Dialog eingemischt und etwas verändert hast, aber ich kann nicht genau sagen was. Die Situation, die du beschreibst, wo du die Anzeige nicht so zurückbekommst wie sie war, ist keine, die ich jemals in EA gesehen habe.
Sie können Anzeigeoptionen auch für einzelne Klassen auswählen, indem Sie im Diagramm mit der rechten Maustaste darauf klicken und Feature Sichtbarkeit auswählen. Ich empfehle nicht, dass Sie dies in reverse-engineered Diagrammen verwenden, ich erwähne es nur für die Vollständigkeit.
Das Layout, das Sie beschreiben, mit allen Klassen in einer bedeutungslosen Diagonale, legt mir nahe, dass das Diagramm nach der Erstellung nicht richtig angelegt wird. Die Diagrammerstellung ist ein zweistufiger Prozess. Zuerst werden alle Klassen darauf gelegt, dann wird das Layout angewendet.
Das ist seltsam, da EA automatisch generierte Diagramme erstellt und ich keine Option gefunden habe, mit der Sie dieses Verhalten abwählen können. Wenn dies weiterhin auftritt, senden Sie einen Fehlerbericht an Sparx Systems. Sie können das Diagramm immer anordnen, indem Sie es öffnen und Layoutdiagramm aus dem Diagrammmenü der obersten Ebene auswählen.
Wenn Ihre Klassen schließlich auf die verschiedenen Namespaces und verteilt sind, sodass EA mehrere Diagramme für sie generiert, müssen Sie sie manuell zusammenführen. Öffnen Sie dazu beide Diagramme, wählen Sie alle (Strg-A) in einem, kopieren (Strg-C) und einfügen (Strg-V) in den anderen und fragen Sie EA erneut nach Layout-Diagramm.
Also:
Hoffe, das hilft.
Tags und Links c++ uml enterprise-architect rational