Donnerstag, 17. August 2006
UML-Diagramme aus Java-Klassen generieren – Java2UML
Stellt euch vor ihr müsst für einem Java-Programm ein UML Klassendiagramm erstellen. Das Problem ist, ein Programmierer wäre nicht ein Programmierer wenn er nicht versuchen würde sich vor der Dokumentation zu drücken. Spaß beiseite. Nichtsdestotrotz kenne ich keinen Entwickler, der gerne Dokumentationen schreibt. Deshalb braucht der Entwickler Tools die ihm dabei helfen, die Dokumentation schneller zu erstellen...
Java nach UML
UML-Klassendiagramme helfen, um sich einen schnellen Überblick über ein Programm zu verschaffen und die Zusammenhänge zu erfassen. Gerade bei Java ist das wichtig, da die Java-Programme oft sehr komplex sein könne.
Als Entwickler steht man leider sehr oft unter großem Zeitdruck. Deshalb wird oft drauflos programmiert. Das muss nicht einmal sehr schlimm sein. Wenn man schon etwas geübt ist und eine konkrete Vorstellung hat, wie das Programm aussieht, kann man das meiner Meinung schon machen. Später sollte man aber trotzdem eine Dokumentation schreiben, schon alleine für seinen Nachfolger, der das Programm ändern muss.
Nun gut, für die Java-Programme die ich geschrieben habe muss ich nun UML-Klassendiagramme erstellen. Mein Gedanke war folgender: Wenn man aus UML-Klassendiagrammen das Grundgerüsst für eine Java-Applikation bauen kann, so muss der Umgekehrte weg vom Java-Quelltext zu einem UML-Klassendiagramm auch gehen.
Im Internet fand ich dann ein paar Programme die das genieren von UML-Klassendiagrammen aus Java-Quellcode, sogenannte Java2UML Programme.
Insgesamt sind es drei. Einmal das Programm ESS-MODEL [1]. Das ist mein persönlicher Favorit. In einem späteren Eintrag erzähle ich ein wenig mehr davon. Das andere ist ein Plugin für die Entwicklungsumgebung Eclipse. Das Eclipse Plugin heisst Omondo [2]. Das letzte ist das Programm Enterprise Architekt [3] von Spraxsystems. Das ist sehr mächtig, aber leider auch kostenplichtig. Ich persönlich habe mich für ESS-Model entschieden.
[1] ESS-Model
[2] Eclipse Plugin Omondo
[3] Enterprise Architect
Diplomand - #1 - 11.12.2007 00:20 - (Antwort)
Super Tools! Hat mir eine Menge Arbeit erspart und liefern tolle Ergebnisse! Vielen Dank fuer den Tipp!
Denis - #2 - 13.12.2007 16:09 - (Antwort)
GENIAL! Danke! Das hat mir jetzt gerade mehrere Stunden (!) Arbeit abgenommen ![]()
Michelle - #5 - 22.11.2008 17:08 - (Antwort)
ist echt super.
ich muss sowas allerdings jetzt selbst erstellen. weiß jemand von euch, wo ich den code herbekomme, danmit es mir aus dem javacode ein uml diagramm zeichnet?
Michelle - #5.1.1 - 22.11.2008 22:53 - (Antwort)
Hi Mr. Foo,
ich meine damit, dass man die UML-Diagramme ja auch programmieren muss, damit das richtige gezeichnet wird. Da muss ja rausgelesen werden, welche Klassen es gibt, was dann nagezeigt werden soll und dann eben gezeichnet werden. Das wurde doch auch programmiert.
Diesen Java Code meine ich.
Grüßle
Mr. Foo - #5.1.1.1 - 23.11.2008 20:08 - (Antwort)
Achso,
das ist bestimmt nicht trivial. Aufjedenfall brauchst man Reflections dafür. Mit Reflections kann man Java Klassen inspizieren.
Du kannst dir ja auch mal den Sourcecode von ESS-Model anschauen - vielleicht hilft er dir weiter:
http://sourceforge.net/projects/essmodel
Michelle - #5.1.1.1.1 - 05.12.2008 13:35 - (Antwort)
Dankeschön ![]()
Ich habe mir dieses Programm schon runtergeladen in der Hoffnung, dass ich da etwas finde, aber dem war leider nicht so.
Du sagst, ich soll mir den Sourcecode anschauen, aber den kann ich doch nirgends nachlesen, oder? Würden die den überhaupt feiwillig hergeben, weil wenn ja, bräuchte man ja ihre Software nicht, wenn man es selbst entwickeln könnte.
Grüße Michelle
Mr. Foo - #5.1.1.1.1.1 - 05.12.2008 15:07 - (Antwort)
Hi Michelle,
den Sourcecode gibt es hier zum Downloaden: http://sourceforge.net/projects/essmodel
Das ist der Vorteil von Open-Source Projekten - man kann den Quellcode studieren und viele Entwickler helfen einem auch beim Verstehen der Software.
So bist du dann in der Lage Verbesserungen in die Software mit einfliessen zu lassen und so die Software sicherer und funktionsreicher zu gestalten.
Einer der grössten, wahrscheinlich das grösste Open-Source Projekt ist das Linux Betriebssystem.
Und klar gibt es Leute die sich versuchen daran zu bereichern. Aber zum Glück gibt es Leute wie Harald Welte, die gegen diesen Missbrauch vorgehen:
http://gpl-violations.org/
Michelle - #5.1.1.1.1.1.1 - 05.12.2008 16:15 - (Antwort)
Hi Mr. Foo,
achso ok, dann habe ich den Link damit verwechselt, als ich es runter geladen habe. Also das Programm.
Ich habe es entpackt und dann zeigt es viele "PAS-Dateien" an. Wie kann ich auf die zugreifen oder welches muss ich öffnen um den Source Code zu sehen?
Danke für deine Antworten. =)
Liebe Grüße Michelle
Mr. Foo - #5.1.1.1.1.1.1.1 - 09.12.2008 14:20 - (Antwort)
PAS-Dateien werden von der Programmiersprache Delphi verwendet.
Du brauchst also Delphi Borland um die Dateien zu bearbeiten.
Ich lerne gerade erst Delphi deshalb kann ich dir bei Codefragen diesbezüglich noch nicht wirklich weiterhelfen.
Vielleicht gibt es eine elegantere Lösung - was möchtest du denn genau machen?
Michelle - #5.1.1.1.1.1.1.1.1 - 09.12.2008 17:27 - (Antwort)
Vielen Dank für deine Antwort.
Habe heute nochmal rumprobiert und habe den Code mit dem Editor geöffnet und dabei bemerkt, was ich ganz vergessen habe zu schauen. Der Code bringt mir leider doch nichts, da ich das ganze in einem Java Code brauche und nicht in Delphi. War zu doof, das erst zu schaun ![]()
Hätte den Code gebraucht, um selbst UML Diagramme aus Codes zu erstellen.
Aber vielen Dank für deine Mühe. Bin auch so schon etwas weiter gekommen.
Viel Erfolg beim lernen ![]()
Liebe Grüße Michelle
Stefan Grenzebach - #5.1.1.1.1.1.1.1.1.1 - 23.08.2010 10:21 - (Antwort)
danke =)
Basdigo - #6 - 18.07.2009 14:27 - (Antwort)
Vielen Dank für das Super-Wertvolles
ESS-Modell-Programm (Link).
Kann ich nur weiter empfehlen, wenn jemand aus JAVA-Code
Diagrammen generieren möchte.
Eine Installtion des Programms ist nicht nötig.
Schöne Grüße aus Nürnberg ![]()
Rainer Zufall - #8 - 01.03.2010 23:45 - (Antwort)
Vielen Dank, habe die ganze Zeit nach so etwas gesucht. Da ich NetBeans benutze fällt Nr2 schon weg. Da Nr3 keine Freeware ist, bleibt nur Nr1, und das proggi hat es in sich. Ist portable (keine Installation) und erstellt korrekte Diagramme. DANKE
Dave/Stefan - #9 - 22.06.2010 10:22 - (Antwort)
Vielen vielen Dank, das hat uns gerade
eine Menge Arbeit gespart. Sieh dich als
unser Lebensretter ![]()
Murphy - #10 - 11.08.2010 23:10 - (Antwort)
Danke für die Zusammenstellung - verspricht ja ganz gut zu werden nur scheitert es gerade an meinem Projekt scheints schleichen sich beim Parsen von Generics Fehlers ins ESS-Modell ein .. nur ohne die kommt das gesamte Projekt leider nicht aus (ist nicht alles von mir und ich hätte mir gerne mal einen Überblick verschafft, denn die Doku ist etwas dünne ...) jetzt werde ich für meinen Teil zumindest mal Diagramme von Hand zeichnen ...
Mr. Foo - #10.1 - 12.08.2010 11:23 - (Antwort)
Du kannst dir auch Visual Paradigm in der Testversion herunterladen, damit sollte es klappen.
Uli - #11 - 08.09.2010 10:33 - (Antwort)
Auch von mir vielen Dank für deine Auflistung! Endlich geht das ganze schnell voran ![]()
Johanna - #12 - 14.02.2011 20:16 - (Antwort)
DAAAAAAAAAANKEEEE ^^ ESS-Model rettet mir gerade wirklich den allerwertesten.
Ich hätte mir sonst die Nacht noch mit der Doku herum schlagen können, die morgen fertig sein soll
Florian - #13 - 26.05.2011 16:02 - (Antwort)
Hallo,
ESS-Model hat mir leider nicht weiter geholfen; Ich habe vor meine JPA entity Klassen in UML umwandeln zu lassen; Leider sieht man nirgends die Datentypen; Außerdem kommt ESS-Model scheinbar nicht mit den java annotations für JPA klar, z.b.: @OneToMay(mappedBy="foo")
Danny - #15 - 30.09.2011 23:25 - (Antwort)
ESS-Model ist eigentlich ein schönes Tool, doch irgendwie macht es sich bemerkbar dass es seit 2003 nicht mehr weiter entwickelt wurde.
Denn leider kommt er mit "ArrayList" nicht klar und produziert viel quatsch und ist daher nicht zugebrauchen an dieser Stelle, schade, das man die UML nicht bearbeiten kann!
