So, nachdem jetzt die Apperitiv-Schlürfer von der Computer-Woche Eclipse plug-ins hypen, hab ich mir überlegt, dass ich mir da einfach ein bischen mehr Mühe geben könnte.
Ich werde also verschiedene Plug-ins und Erweiterungen auf die Tauglichkeit hin überprüfen. Der Maßstab ist meine Interpretation von "Praxis-Einsatz".
Disclaimer:
A fool with a tool still is a fool (oder so ähnlich).
Der obige Satz ist imho sehr wahr. Eclipse-Plug-Ins sind kein silver-bullet, mit dem man plötzlich wer weiss wie produktiv wird. Sie können aber den Sachkundigen bei der Arbeit unterstützen. Jemand, der zu faul und uninteressiert ist, um sich die zugrunde liegenden Mechanismen verständlich zu machen, wird gerade mit plug-ins mitten in Lala-Land enden.
Ich werde in der Folge ein paar Eclipse plug-ins testen und hier berichten.
1.
Omondo plug-in für UML
Ich beginne mit dem Omondo UML plug-in, dass nun angeblich tatsächlich Reverse-Engineering Fähigkeiten hat.
a)
Installation: verlief reibungslos:
- Ich hatte die entsprechenden Versionen (waren sogar noch Zusatzplug-ins vom Web-Tools Projekt sowie ein plug-in für Springframework-Entwicklung in der Eclipse Version, wo ich das reininstalliert habe, drin.
- Eclipse Menü: Help/About Eclipse SDK/plug-in Details meldete: KEINE FEHLER
b)
Dokumentation: Ein 517 Seiten langsames PDF mit vielen Screenshots scheint die Hauptdokumentation zu sein.
c)
Tests i. Reverse Engineering (dh: automatisches Generieren von UML-Diagrammen aus meinem Code):
Rechte Maustaste auf ein bestehendes Projekt. UML/Reverse Engineering.
Dialog 1-> Source Folder auswählen (ich hab eigene SourceFolder für Config-Dateien und für Unit-Tests. Hake nur den reinen Source Code an. (Auswahl ist sinnvoll).
Dann wurde ich darüber informiert, dass Bytecode Analysis nur mit Osmodo Pro geht. Ich weiss gar nicht was das ist, aber egal.
Es folgt ein längerer Prozess (dauerte genau so lange wie Zug 30 und Zug 31 des gleichzeitig auf KGS übertragenen Go Europameisterschaftsmatches Shikshina-Shilt (also ca 15 Minuten, lol).
Ich bekomme nun mehrere Diagramme, die ziemlich schick aussehen.
Zunächst hat das gute Stück mir ein Eclipse Package Dependency Diagramm generiert.
(s. Attachment Nr 1).
Erinnert mich schmerzhaft daran, dass meine neue Strategie nicht mehr so viele verschiedene Packages zu benutzen vermutlich ein bischen übertrieben ist.
Egal. Hier ist das gute Stück. Ich kapiere nicht ganz, warum es kein implements-Pfeil von de.aja.fussi.dao.ibatis nach de.aja.fussi.dao gibt, weil eigentlich jede Klasse in de.aja.fussi.dao.ibatis ein Interface aus de.aja.fussi.dao implementiert. Aber egal.
Daneben verspricht der Kontextmenü-Punkt "open" eine Menge wesentlich interessanterer Diagramme, die mir dieses Gratis-Tool generiert hat:
- Class Inheritance Explorer
- Class Dependency Explorer
- Class Association Explorer
Ich hab bisher keine Zeile Dokumentation gelesen und find das sehr cool.
Ich hab mal den Class Dependency Explorer geöffnet. Auch der scheint <<implements>> nicht darzustellen. Trotzdem bringt mir das ein mehr an Übersicht in diesem Projekt.
Nicht optimal. Aber so bekomme ich Eigenschaften und Methoden von verschiedenen meiner Klassen sowie ihre Assoziationen angezeigt, ohne dass ich mich sonderlich anstrengen mußte.
(s. Attachment 2).
Ausserdem hat alles funktioniert (d.h. keine Errors zwischendurch).
PRAKTISCHER NUTZEN:
Ich brauchte nichts zu tun, um mir Class Diagramme von meinem Code zu erstellen. Nur einen Knopf drücken und es war da. Class-Diagramme sind natürlich nicht alles. Sequenz Diagramme verschaffen in vielen Situationen mehr Übersicht in einem multi-geschichteten Java-Projekt.
Was bringen mir also diese Class-Diagramme.
Nun ich habe eine bessere Übersicht.
Das funktioniert ganz ähnlich wie ein
Lotus-Script Klassenposter.
Ich habe jetzt alle mehr oder weniger intelligenten Properties und Methoden meiner selbstgedrehten Klassen in einem Dokument als Übersicht.
Das hilft schon, um mir eine Überblick zu verschaffen, bevor ich den nächsten Use Case implementieren will.
d)
Aktuelles Fazit: Dieses Tool wird erstmal nicht de-installiert und es hat sich dafür qualifiziert, dass ich mir mal ein bischen das Doku-PDF durchlese.
Falls ich mal Zeit habe kann ich versuchen mit dem Osmondo Plug-In das Domain Modell eines Mini-Projekts in UML zu modellieren. Und dann daraus Code zu generieren.
e)
Funstuff:
1. Das gleichzeitig installierte Spring Nature Plug-In meldet sich jetzt immer mit dem Osmonod Splash-Screen. Das ist aber alles. Kurios, scary, bisher aber nicht bedrohlich.
f)
Was fehlt:
1. Automatisch generierte Sequenzdiagramme wären wirklich hilfreich.
Axel