Generierung von Klassendiagrammen aus XMI

9

Situation

Ich habe ein PHP-Projekt mit vielen Klassen mit vielen Beziehungen in vielen Ordnern nach den Zend Namenskonvention .

Ich benutze die NetBeans IDE 7.1. Ich arbeite unter Windows 7.

Ziel

Ich muss eine grafische Darstellung der Klassenbeziehungen sehen, möglicherweise in unterschiedlichen Tiefen und unterschiedlichen Komplexitätsgraden. Außerdem wäre es schön, wenn die Klassen im Diagramm anklickbar sind. Ich muss nicht unbedingt Dokumentation generieren.

Versuche

1. Innerhalb von NetBeans

NetBeans ist eine großartige IDE mit vielen Funktionen. Tatsächlich erkennt es Klassenabhängigkeiten, und es wäre klug anzunehmen, dass es eine Möglichkeit gibt, diese Beziehung nativ oder über ein Plugin grafisch darzustellen. Ein solches Plugin existiert, ist aber für Version 5.5. Ich habe 7.1, und es ist nicht kompatibel. Fehler.

2. Unternehmensarchitekt

Eine einfache Google-Suche bringt Enterprise Architect als allumfassendes, vollständiges Tool zur Lösung solcher Probleme auf den Markt . Also, ich lade und installiere. Ich werde nicht auf die Details eingehen, wie ich nichts verstehen konnte und wie die Tutorials damit prahlen, was die Software kann, aber selten sagen wie .

>

Also habe ich die Quelle importiert. Es erzeugte viele verschiedene Klassen und analysierte alle Mitglieder. Außerdem erzeugte es die Klassendiagramme. "Perfekt!", Dachte ich, aber leider. Die Klassendiagramme zeigen nur Beziehungen zwischen Klassen, deren Dateien sich im selben Quellordner befinden, obwohl die Beziehungen in den Eigenschaften der Klassen sichtbar registriert sind. Eine Suche nach einer Dokumentation, wie ich all diese Diagramme zu einem zusammenführen könnte, war nicht erfolgreich. Fehler.

HINWEIS : Ich habe vor diesem einen parallelen Thread erstellt hier .

3. PHP_UML

dieses PEAR-Tool gefunden. Sieht gut aus. Also habe ich die Dokumentation gelesen, wie ich es für mein Setup aus verschiedenen Quellen installieren kann, und habe es ausgeführt. Zuerst habe ich das html Ausgabeformat verwendet. Groß! Viele Dokumente mit einem Index, bla bla bla. Aber das Beste, was ich in der von mir gewünschten Richtung tun konnte, war: Ich brauche wohl nicht zu sagen, dass dies eine sehr schlechte, super vereinfachte Version dessen ist, was ich wirklich brauche. Fazit: scheitern.

4. Enterprise Architect + PHP_UML

PHP_UML kann jedoch auch XMI generieren. Beeindruckend. Sehr schön. Ich kann meine Beziehungen speichern und sie auf verschiedene Arten sehen und mit anderen Menschen austauschen.

Also habe ich es in Enterprise Architect importiert. Ergebnis: wie bisher nur bei Enterprise Architect, nur keine Klassendiagramme. Nur die Klassen. Soweit ich darüber gelesen habe, kann ich jetzt die Beziehungen manuell erstellen. Episch scheitern.

5. ArgoUML + PHP_UML

Irgendwo durch meine Suche nach der Lösung stolperte ich über jemandes Kommentar, der sagte, dass sie ArgoUML verwendeten. Heruntergeladen und installiert. XMI wurde mit einigen Problemen importiert (musste die Version explizit auf 1 setzen). Fehler (siehe Versuch 3).

Fazit

So eine scheinbar triviale Aufgabe und doch so schwer. Muss ich durch diese ganze Liste gehen und jede Anwendung ausprobieren?

    
XedinUnknown 25.09.2012, 19:46
quelle

2 Antworten

5

Einer der Wege, dies zu tun, wäre, den in meinem Versuch 2 oder 4 dargestellten Ansatz zu nehmen, und folgen Sie dann den Anweisungen für hier für Enterprise Architect.

Um eine XMI Datei mit PHP_UML zu erstellen:

  • Folgen Sie diesen Anweisungen , um PEAR zu installieren, falls es noch nicht installiert ist, wenn Sie PHP separat installiert haben .
  • Wenn Sie XAMPP unter Windows (meinem Fall) verwenden, folgen Sie diese Anweisungen , um PEAR zur PATH-Umgebungsvariablen hinzuzufügen und somit PEAR verfügbar zu machen CMD und erfahren Sie, wie Sie Pakete sowohl in * nix- als auch Windows-Systemen installieren. Hinweis: Das PATH-Trennzeichen ist ";" (Semikolon) für Windows.
  • In einigen Setups, wie bei der Verwendung von XAMPP , muss möglicherweise die XSL-Erweiterung aktivieren . Öffnen Sie in diesem Fall Ihre php.ini -Datei (möglicherweise benötigen Sie Administratorrechte, um sie zu speichern) und entfernen Sie die Kommentarzeichen oder Fügen Sie am Ende des Abschnitts "Dynamische Erweiterungen" die folgende Zeile hinzu: extension=php_xsl.dll .
  • Installieren Sie das Paket PHP_UML mit pear install PHP_UML .
  • Führe phpuml -f xmi -o name_of_output_dir aus. Wenn Sie planen, das generierte XMI später mit älteren Programmen zu verwenden, müssen Sie möglicherweise XMI Version 1 angeben, indem Sie -x 1 hinzufügen.
  • Für mich hat das nicht sofort funktioniert und gesagt, dass ich vermisse ../../data/xmlschema.rng. Nicht sicher, warum dies passiert ist, aber wenn Sie einen ähnlichen Fehler erhalten, können Sie ihn von hier und platziere es im Ordner data direkt unter deinem PEAR-Verzeichnis.

Dieses XMI kann später mit Enterprise Architect , ArgoUML und anderen XMI-Tools .

    
XedinUnknown 28.09.2012, 13:57
quelle
0

( Bearbeiten : Diese Antwort ist eine Alternative für Leute, die ein UML-Klassendiagramm aus einem PHP-Projekt erzeugen wollen, es erklärt nicht, wie man XMI-Dateien liest)

  

Ziel

     

Ich muss eine grafische Darstellung der Klassenbeziehungen sehen,   möglicherweise in unterschiedlichen Tiefen und unterschiedlichen Komplexitätsgraden. Auch das   wäre schön, wenn die Klassen im Diagramm anklickbar sind. Ich tue nicht   muss unbedingt Dokumentation generieren.

Wenn Sie ein Klassendiagramm aus einem PHP-Projekt generieren wollten, fand ich eine bessere Lösung als PHP_UML. Was Sie wahrscheinlich wollen, ist BoUML . Mit dieser Software können Sie einen PHP-Projektordner auswählen und das Reverse Engineering durchführen. Erstellen Sie dann ein Klassendiagramm. Wenn Sie die Klasse ziehen und ablegen, sind die Beziehungen im Gegensatz zu AlgoUML (wenn ich nicht falsch liege). XMI-Dateien sind in diesem Fall nicht mehr nützlich.

    
snoob dogg 07.06.2017 02:31
quelle