Generierung eines Klassendiagramms aus XMI
Ich habe ein PHP-Projekt mit vielen Klassen mit vielen Beziehungen in vielen Ordnern nach demZend Naming Convention.
Ich benutze die NetBeans IDE 7.1. Ich arbeite unter Windows 7.
TorIch brauche eine grafische Darstellung der Klassenbeziehungen, möglicherweise in unterschiedlichen Tiefen und Komplexitätsgraden. Außerdem wäre es schön, wenn die Klassen im Diagramm anklickbar wären. Ich muss nicht unbedingt eine Dokumentation erstellen.
Versuche1. Innerhalb von NetBeansNetBeans ist eine großartige IDE mit vielen Funktionen. Tatsächlich erkennt es Klassenabhängigkeiten, und es ist ratsam anzunehmen, dass es eine Möglichkeit gibt, diese Beziehung nativ oder über ein Plugin grafisch darzustellen. So einPlugin existiert, ist aber für Version 5.5. Ich habe 7.1 und es ist nicht kompatibel. Scheitern.
2. Enterprise ArchitectEine einfache Google-Suche bringtEnterprise Architect als allumfassendes Werkzeug zur Lösung solcher Probleme. Also lade ich herunter und installiere. Ich werde nicht ins Detail gehen, wie ich nicht verstehen konnte, wie man etwas macht, und wie die Tutorials damit prahlen, was die Software kann, aber selten sagenWie.
Also habe ich die Quelle importiert. Es wurden viele verschiedene Klassen generiert und alle Mitglieder analysiert. Außerdem wurden die Klassendiagramme generiert. "Perfekt!", Aber leider. Die Klassendiagramme zeigen nur Beziehungen zwischen Klassen, deren Dateien sich im selben Quellordner befanden, obwohl die Beziehungen in den Klasseneigenschaften sichtbar registriert sind. Eine Suche nach Dokumentation, wie ich all diese Diagramme zu einem zusammenführen könnte, war erfolglos. Scheitern.
HINWEIS: Ich habe vor diesem einen parallelen Thread erstelltHier.
3. PHP_UMLGefundendieses PEAR-Tool. Sieht gut aus. Ich habe die Dokumentation zur Installation für mein Setup aus verschiedenen Quellen gelesen und ausgeführt. Zuerst habe ich das benutzthtml Ausgabeformat. Großartig! Viele Dokumentationen mit einem Index, bla bla bla. Das Beste, was es in die von mir gewünschte Richtung tun konnte, war Folgendes: Unnötig zu erwähnen, dass dies eine sehr schlechte, super vereinfachte Version dessen ist, was ich tatsächlich brauche. Fazit: scheitern.
PHP_UML kann jedoch auch XMI generieren. Beeindruckend. Sehr schön. Ich kann meine Beziehungen speichern und auf verschiedene Arten anzeigen und mich mit anderen Menschen austauschen.
Also habe ich es in Enterprise Architect importiert. Ergebnis: Wie zuvor mit Enterprise Architect allein, nur keine Klassendiagramme. Nur die Klassen. Soweit ich darüber gelesen habe, kann ich die Beziehungen jetzt manuell erstellen. Episches Versagen.
5. ArgoUML + PHP_UMLIrgendwann stieß ich auf der Suche nach einer Lösung auf einen Kommentar von jemandem, der sagte, er würde ihn benutzenArgoUML. Heruntergeladen und installiert. XMI mit einigem Aufwand importiert (musste die Version explizit auf 1 ändern). Fail (siehe Versuch 3).
FazitSo eine scheinbar triviale Aufgabe und doch so schwierig. Muss ich durchmachen?diese ganze Liste, jede Anwendung ausprobieren?