Grüße,
Möchte heute versuchen, erste Ansätze zum Code-Design von reticulum verfertigen, d.h.: einen ersten Entwurf eines Klassendiagramms zu erstellen. Da das SlimeUML Code->Diagramm, Diagramm->Code-Funktionalitäten nicht so drauf hat (und zusätzlich auch kein Sequenzdiagramm enthält), versuche ich mal ein anderes UML-Tool. Man hat ja in diesem Fall die Qual der Wahl (vgl.: http://www.eclipseplugincentral.com/Web_Links-index-req-viewcatlink-cid-19.html ).
Habe mich für Topcased UML Editor entschieden (Bewertung, Screenshots, Beschreibung und Ermüdung waren die Entscheidungskriterien). Update-Site für direkte Eclipse-Plugin-Installation gibt es hier: http://topcased-mm.gforge.enseeiht.fr/release/update-site3.3/
Leider braucht man einen Haufen Dependencies, die man sich mühevoll aus der Plugin-Site Europa Discovery heraussuchen muss. Und der Download dauert ewiiig. La-la-la… Man stelle sich den Download mit einer 56K-Leitung vor (= immer positiv denken ^^).
Bis man da zum Diagramm-zeichnen kommt, hat man schon wieder vergessen, was man eigentlich zeichnen wollte. Da hofft wartender Student nur noch, dass das Tool zumindest brauchbar ist.
Die Vision
Während ich auf die Fertigstellung des Downloads warte, halte ich mein Big-Picture des Code-Designs kurz fest:
Man hat zunächst einmal die Klasse User als Superklasse der Klassen Gott, Herr und Sklave.
In der User-Klasse sind Basis-Attribute über die Identität des Benutzers, sein Registrierungsdatum, sein Nickname usw. gespeichert. Darüber hinaus verweist die Klasse User auf andere User-Klassen (man könnte dazu ein User-Array erstellen: User[] relatum; - sofern der Syntax stimmt ). Was hier leider noch nicht definiert ist, ist die Art der Beziehung. Man müste daher eine eigene Klasse Beziehung erstellen, die einerseits das Referenzobjekt (=Relatum) erstellt und andererseits die Art der Beziehung (ist Freund von, ist Arbeitskollege von, ist Angestellter von,… = Relator) festlegt. Diese Beziehung kommt anstelle der einfachen User-Referenz innerhalb der User-Klasse. Textuelle Beschreibungen sind einfach zu umständlich, um diese Dinge verständlich und schnell darzustellen – Gottseidank ist nun die Installation abgeschlossen.
Nur kurz noch zur Motivation: Durch die kurz skizzierten Klassen wird es möglich, dass einem beliebigerm User eine Menge von verschiedenartigen Kontakten (zu Göttern, Herren oder Sklaven) zugeordnet werden kann.
Mit dem Serialisierungskonzept von Java könnte es dann vielleicht möglich werden, dies alles persistent zu speichern (entweder in einer Datenbank oder als XML).
Einstieg in Klassendiagramme
Nachdem die Installation nun abgeschlossen ist, erstelle ich mit New Document / Topcased ein neues UML-Klassendiagramm: reticulum_iteration1.uml (siehe auch SVN-Code-Repository, dort wo auch generalclasses.cdx zu finden ist). Außerdem wechsle ich in die Perspektive Topcased-Modelling.
So – nun hab ich einmal ein paar Grundkonzepte erstellt. Nun stellt sich die Frage, wie man zu diesem Diagramm den entsprechenden Code generiert. Nach einiger Recherche in der Doku zeigt sich, dass anscheinend doch keine Code-Generierung möglich ist
Man kann, wie ich das gezeigt habe, detaillierter als in SlimeUML Klassendiagramme erstellen, doch wie die Code-Generierung steht, wird mir heute wohl ein Rätsel bleiben. Bin zu müde, für weitere Recherchen.
Operation gelungen – Patient tot.
gn8
AKA
Abgelegt unter : Projektaktivitäten | Mit Tag(s) versehen: Codegenerierung, Eclipse Plugin, Klassendigramm, SlimeUML, Topcased UML Editor, UML