Seite 1 von 1

UML-Klassendiagramm

Verfasst: Dienstag 13. November 2012, 13:08
von Steffo
Hallo,
ich würde gerne mein Code durch einen UML-Tool durchjagen lassen, damit er mir die Beziehungen untereinander anzeigt. Nun habe ich epydoc benutzt, welcher dummerweise nur die Klassen für sich mit ihren Vererbungen betrachtet, aber ich sehe keine allgemeine UML-Übersicht mit Assoziationen etc.
Kennt da jemand ein gutes Tool? Ich habe mir pyUML als Standalone runtergeladen, aber ich bekomme eine Exception nach der anderen um die Ohren geknallt. :(

Danke im Voraus!

L. G.
Steffo

Re: UML-Klassendiagramm

Verfasst: Dienstag 13. November 2012, 15:17
von lunar
@Steffo Ich glaube, bei Pylint ist ein Tool dabei, dass aus Python-Code UML-Diagramme erstellen kann. Beachte aber, dass diese Diagramme die Ausdrucksstärke von Python nur eingeschränkt wiedergeben können.

Re: UML-Klassendiagramm

Verfasst: Dienstag 13. November 2012, 16:05
von Steffo
OK, danke, werde ich mal ausprobieren! :-)

Re: UML-Klassendiagramm

Verfasst: Mittwoch 14. November 2012, 11:09
von Steffo
lunar hat geschrieben:@Steffo Ich glaube, bei Pylint ist ein Tool dabei, dass aus Python-Code UML-Diagramme erstellen kann. Beachte aber, dass diese Diagramme die Ausdrucksstärke von Python nur eingeschränkt wiedergeben können.
Das ist qualitätsmäßig leider nicht gut, da es viele Beziehungen nicht erkennt und viele sogar falsch sind. Wie es aussieht, muss ich das händisch machen...

L. G.
Steffo

Re: UML-Klassendiagramm

Verfasst: Mittwoch 14. November 2012, 13:34
von lunar
@Steffo Davor habe ich Dich ja gewarnt. UML-Klassendiagramme können Python selbst nur unzureichend wiedergeben, da Python ausdrucksstärker ist und komplexere Beziehungen modellieren kann als UML.

Du kannst in einem UML-Klassendiagramm allenfalls eine abstrakte Ansicht der konkreten Klassenbeziehungen im Python-Quelltext wiedergeben, doch diese Abstraktion kann kein Werkzeug für die leisten… ebenso wie umgekehrt kein Werkzeug ein solches abstraktes Klassendiagramm in idiomatischem Python konkretisieren kann.