Eines der vielen Dinge die ich dieses Semester so mache ich ein Praktikum. Okay, eigentlich mache ich zwei Praktikas, aber für diesen Eintrag ist nur eines wichtig. In diesem Praktikum geht es darum Software zu entwerfen und diesen Entwurf dann in ein funktionierendes Programm umzusetzen. Für den Entwurf von Software benutzt man heutzutage UML, die Unified Modeling Language.
UML ist Klasse, man kann damit beschreiben was eine Software tut, bzw. tun soll ohne auch nur eine Zeile Code geschrieben zu haben. Es gibt nur ein Problem: Da UML hauptsächlich aus Diagrammen besteht braucht das Ganze sehr viel Platz. Nun könnte man seine UML-Diagramme ja digital zeichnen, aber – und damit sind wir beim eigentlichen Sinn dieses Eintrags – irgendwie fehlt es da an gescheiten Tools.
Es gibt zwar eine kaum zu überschauende Menge an UML-Tools da draußen, aber die Meisten von denen sind so gut wie unbenutzbar. Da hätten wir das vielversprechende ArgoUML, das unter der GPL steht und Plattformunabhängig ist. Leider kann man den Klassen im UML-Klassendiagramm zwar Namen geben, doch werden diese nicht angezeigt, genau das gleiche Problem habe ich auch im Aktivitätsdiagramm. Zweiter Versuch: Da wir unser Praktikum in Java implementieren, liegt es Nahe Eclipse zu verwenden. Wenn man dann schonmal Eclipse benutzt ist der Schritt zu EclipseUML nicht mehr weit. Dank absolut sinnloser Beschränkungen in der freien Lizenz, kann man Dateien aber nicht kopieren. Damit ist dieses Programm also auch disqualifiziert. Als drittes Teste ich gerade Borlands sündhaft teures Together. Immerhin kostet das Programm ca. 1000€. Zum Glück ist man ja Student und darf das Tool dank Uni-Lizenz für akademische Zwecke kostenlos verwenden.
Doch selbst dieses Tool hat einen erheblichen Nachteil: Es ist nicht intuitiv zu bedienen. Ganz im Gegenteil, selbst die GUI des kostenlosen ArgoUML ist um Klassen besser. Bei Together erwartet mich (nachdem ich es geschafft hatte ein neues Diagramm anzulegen, was auch nicht leicht war) ein wirrer Haufen von Untermenüs und Auswahlmöglichkeiten. Wie verdammt lege ich in diesem Wirr-War eine Klasse an? Und wie lege ich eine Klasse an die von einer anderen erbt? Ein Programm für das ich einen vierstelligen Euro-Betrag zahlen müsste, wollte ich es kommerziell nutzen, sollte mich nicht vor fast unlösbare Einarbeitungs-Hürden stellen. Auch sollte Together erkennen, dass ich eine installierte Version von Eclipse habe, mit der es zusammen arbeiten kann. Doch leider erzählt Together 2007 wenn ich mein Eclipse 3.3.2 auswähle, dass dies keine kompatible Eclipse-Version ist und ich eine Version 3.3.2 auswählen müsste. Interessanterweise kein Linux-Problem, einer meiner Praktikums-Kollegen hat unter Windows Vista das gleiche Problem. Hat Borland das etwa nicht getestet? So oder so, ein im Grunde genommen absolut nicht akzeptabler Bug.
Nunja genug über Together aufgeregt, zurück zu Eclipse. Nach einiger Recherche finde ich nun eine vierte Lösung: Die in Eclipse enthaltenen UML2Tools. Die Bedienung ist intuitiv, das Interface ähnelt dem von Eclipse, Klassennamen werden angezeigt und selbst Vererbung ist problemlos modeliert. Ein Problem bleibt: Die Lösung scheint nicht besonders stabil zu sein, Eclipse stürzt beim öffnen eines existierenden Diagramms jedesmal ab. Mir bleibt also nur eins: Weitersuchen.