Eclipse-Plugin für UML "Reverse Engineering", um aus Code Klassendiagramme zu erstellen

Hallo zusammen

Kennt jemand was vernünftiges, was dazu auch noch Opensource ist? Freeware wär auch noch (knapp) ne Option, aber kostenpflichtiges Zeugs ist dabei mal gar kein Thema…:wink:

Besten Dank für eure Feedbacks.

Freundliche Grüsse,
Jan

Über den Marketplace installierst du https://marketplace.eclipse.org/content/enhanced-class-decompiler. Und bei der Installation wählst du neben den obligatorischen Modulen nur das JD Modul. :slight_smile: Funktioniert toll.

/e Du musst .class es ohne Sources dann noch damit verlinken.

Hallo CyborgBeta

Vielen Dank für Dein schnelles Feedback! :slight_smile:

Das funktioniert dann also letztendlich über Dekompilierung, wahrscheinlich werden dann die Diagramme über den „Byte-Code“ erstellt was wohl „einfacher“ ist als vom direkten Java-Quelltext.

Frage: Kann ich das ganze auch auf ganze Projekte anwenden, statt nur auf einzelne Dateien? Das ist auch ein Muss-Kriterium, welches ich aber vergessen habe zu erwähnen.

Mit freundlichem Gruss,
Jan

„Frage: Kann ich das ganze auch auf ganze Projekte anwenden, statt nur auf einzelne Dateien? Das ist auch ein Muss-Kriterium, welches ich aber vergessen habe zu erwähnen.“

Hehe, „probieren“ geht bekanntlich über „studieren“… musste erst mal ein mühsames Problem mit dem Marketplace Client lösen, dieser war dummerweise auf 1.7.7 was offenbar nicht kompatibel ist zu meinem eher älteren Eclipse 2018-09 (4.9.0) war.

Das hat sich jetzt gelöst, bei der nächsten Gelegenheit werde ich deinen Tipp genauer anschauen. Jedenfalls noch mal vielen Dank! :slight_smile:

Also installieren konnte ich es:

Aber wenn ich ein .class-File (halt über den „Navigator“ statt „Package Explorer“ damit zu öffnen versuche, dann ist dort leider nix was mit „Enhanced …“ anfängt drin:

„Und bei der Installation wählst du neben den obligatorischen Modulen nur das JD Modul.“

Aber wenn ich mich richtig erinnere, dann kam ich gar nie dazu, sowas auszuwählen. (?)

Habe es eben über den Marketplace installiert, und nicht mit der URL über „Install new software…“

Wähle unter Window -> Preferences -> File Associations, Folgendes:

https://ibb.co/vhM97st

Hi, du hast Quellcode, der kompiliert wird.
Und dann holst du dir einen decompiler, um daraus wieder Code zu machen… Und daraus sollen dann Klassendiragramme werden?

Also kann sein, dass ich was falsch verstehe aber momentan wirst du da in die Irre geleitet.

Schau dir mal https://wiki.eclipse.org/Papyrus_User_Guide das hier an.

Gruß,

Martin

1 Like

Also kann sein, dass ich was falsch verstehe aber momentan wirst du da in die Irre geleitet.

Hatte irgendwie auch schon die vage Vermutung dass es vielleicht ne Verwechselung ist: UML-Klassendiagramm-Generator aus Java-Code vs. Decompiler… hmmm…

Habe gedacht versuche es zumindest mal.

P.S.: Wähle unter Window -> Preferences -> File Associations, Folgendes:
…dort sehe ich auch kein JD Decompiler, aber wenn es ne Verwechselung ist?

Hatte aber auch noch den Gedanken, dass vielleicht aus Java-Bytecode besser (einfacher) Diagramme erstellt werden können, als wenn Java selbst verarbeitet werden muss. Das kam mir auch noch in den Sinn.

woher nimmst du diese Annahme? Ich habe einfach nur seine Frage beantwortet.

Wieso unterstellst du mir so etwas?

Ich habe das aus dem Titel der Frage deduziert.

Wenn er Quellcode vorliegen hat, wird ihm ein Decompiler nur unnötig Zeit kosten. Ich unterstelle nix, ich weise nur darauf hin, dass es so ist.

In einem anderen Forum wurde mir https://marketplace.eclipse.org/content/uml-designer vorgeschlagen. Evtl. ist das empfehlenswert?

Das würde ich nehmen ja.

Danke, werde mal schauen wenn ich am Montag wieder bei der Arbeit bin…:slight_smile:

Wünsche euch ein schönes Wochenende.

Grüsse aus der Schweiz,
Jan

Kann ich irgendwie nicht herunterladen:

  • Ist dieses Plugin bereits installiert?
  • Oder handelt es gar nicht um was vorgeschlagene Produkt?

Kein Wunder, dass ich es nicht vorfinde, ist scheinbar „by default“ installiert, wie auch „buggy by default“… weder aus einem vorhandenen Java-Projekt UML-Klassendiagramme generieren, noch gibt es eine spezielle „UML Designer“-Projekt-Art…

Mehr dazu hier, bei den Kommentaren:

Bin also nicht der Einzige…

Bist sicher nicht der einzige, an scheinend wurde das Plugin seit 2018 nicht mehr aktualisiert.

Ganz ehrlich verstehe ich warum das Interesse an autom. generierten UML Diagrammen sehr gering ist (gemessen an der Anzahl von Entwicklern), nachdem ich vor ueber 10 Jahren die „Modell Driven Development/Architecture“ farce kurz mitgemacht hatte, kam ich zur Einsicht dass das ziemlich nutzlos ist fuer die reale Welt.

Selbst Martin Fowler, der Author des UML Buches, gibt zu das UML eher etwas fuer stift & Papier oder das Whiteboard ist.

IMHO das ist der Grund warum es da nix frei und gut funktionierendes fuer gibt fuer das autom. generieren, zu wenig Interesse weil der nutzten sehr gering ist.

Hallo maki

Vielen Dank für dein Feedback!

Also sich zuerst die Überlegungen zu machen betr. OO-Design wäre ja (eigentlich) der „richtigere“ Ansatz - aber wer schreibt das (zumindest Klassendiagramme, bei den anderen UML-Sachen betr. Status, Verhalten, use-cases macht es schon eher Sinn) in der Praxis schon „auf Papier“, bevor er mit der Entwicklung beginnt?

Solche Sachen lernt man vielleicht in der Ausbildung - in der Praxis besteht ja kaum Zeit für sowas - es sei denn man arbeitet irgendwo in einer staatlichen Forschungsinstitution, und nicht in der Privatwirtschaft…:wink:

Und mir fallen z.B. während dem Entwickeln oft zusätzliche Sachen ein, welche das OO-Design wieder ein wenig verändern. (Allerdings NIE das zuerst im Kopf überlege Modell komplett über den Haufen werfen - sonst müsste ich wirklich noch zuerst alles auf Papier planen! ;-))

Aber UML-Klassendiagramme (wie auch andere UML-Diagramme) machen zumindest dem Chef einen guten Eindruck - besser sowas zeigen als die ganze Sache mündlich erklären zu wollen wie es nun aufgebaut ist, in welche „Konstellation“ die versch. Klassen, Interfaces, Enums etc. zueinander stehen. :slight_smile:

Und genau für sowas suche ich eben etwas, was den „Reverse Engineering“-Ansatz (also Klassendiagramm aus Code erstellt) unterstützt.

Ist aber keinesfalls ein „Muss“ und mein Projekt ist deswegen auch nicht blockiert, falls ich nix finde. Also alles nur „nice-to-have“…

Die Idee ist, dass man mit skizzierten UML Diagrammen Konzepte mal schnell kommuniziert.
Wer SW nach Diagrammen entwickelt, hat IME schon verloren.

In der Ausbildung lernt man, das UML wichtig ist :wink:
In der Realitaet braucht es keiner, daher auch die mangelnde Verbreitung.

Ganz ehrlich, Chefs kann man wechseln :smiley:
Alles in allem interessieren sich IME sehr wenig Leute ueber die konkreten Detail was „OO Konzepte“ angeht, IMHO vollkommen zu recht.

Details sind naemlich Dinge die sich ganz schnell aendern koennen sollten, was bleibt sind APIs, Vererbungshierarchien auf der anderen Seite sind Details.

Klar klingt es verlockend sich jederzeit ein neues UML Diagram erstellen zu lassen, aber der Wert von autom. generierten Diagramen geht gegen null, eher negativ, weil man eben nicht entscheiden kann was auf welcher Detailstufe gezeigt wird, ungefaer so sinnvoll wie den gesamten Quellcode ausdrucken als „Dokumentation“.

Wie gesagt, IME total unnuetz, sollte man sich nicht lange mit aufhalten.
Sieht man auch sehr schoen am Interesse hier und im Netz im allgemeinen.