Seite 1 von 1

Diagramme von Code automatisch generieren? UML Alternativen?

Verfasst: Freitag 12. Mai 2006, 09:19
von keboo
Hi Leute,

Ich suche ein Tool, das meinen Sourcecode für Dokumentationszwecke grafisch in Form von Ablaufdiagrammen oder ähnlichem darstellt.

Schön wäre, wenn es automatisch gehen würde.

Ich hab da noch keine Erfahrung mit sowas. Bin immer wieder auf UML gestossen. Kann es sein, dass UML nur Sinn macht, wenn man OOP macht?

Bei mir sind es "nur" ca. 10 Funktionen und ich hab mich noch nicht mit der OOP auseinandergesetzt. Kann mir wer einen Tipp geben, was es noch für andere Möglichkeiten als UML gibt?

Danke,

Johannes :)

Verfasst: Freitag 12. Mai 2006, 10:58
von keboo
Gibt es eine Möglichkeit Struktogramme aus dem Source Code zu generieren?

Danke,
Johannes

Verfasst: Freitag 12. Mai 2006, 12:42
von jens
So weit ich weiß geht man mit UML ehr anders herrum vor... d.h. man entwickelt ein UML Ablaufmodell und danach programmiert man...

Dürfte auch nur bei sehr einfachen Programmen gehen, das man einen Ablaufplan automatisch erstellen kann... Schließlich läuft ein Programm nicht immer Linear ab...

Verfasst: Freitag 12. Mai 2006, 12:58
von Leonidas
jens hat geschrieben:Dürfte auch nur bei sehr einfachen Programmen gehen, das man einen Ablaufplan automatisch erstellen kann... Schließlich läuft ein Programm nicht immer Linear ab...
Nein, aber so ein Tool könnte man dennoch machen, dazu kann man beispeilsweise den Profiler verwenden, der dir anzeigt, welche Funktionen wann aufgerufen worden sind und wie lange das gedauert hat. "Abluafdiagramm" für Arme eben.

Re: Diagramme von Code automatisch generieren? UML Alternati

Verfasst: Samstag 13. Mai 2006, 07:31
von BlackJack
keboo hat geschrieben:Kann es sein, dass UML nur Sinn macht, wenn man OOP macht?
Noch schlimmer: UML ist im grossen und ganzen nur für statische Programmiersprachen wirklich zu gebrauchen. Teile von UML kannst Du natürlich auch für Python verwenden. In Python ist ja alles Objekt, Du benutzt also immer eine Art OOP, auch wenn Dir das nicht immer bewusst ist. Module kann man zum Beispiel als Singleton-Klassen modellieren mit den Funktionen als Methoden des Moduls. Zustands-, Aktivitäts- und Sequenzdiagramme kann man sogar für nicht-OOP Sprachen benutzen.

Mit pyreverse kann man UML aus Python erzeugen, unter anderem für ArgoUML

Wenn Du selbst etwas wie einen "grafischen Programmablauf" programmieren möchtest, dann schau Dir mal die Ausgabe von folgendem Befehl und GraphViz an.

Code: Alles auswählen

$ python -m trace --help
@jens: Traumziel ist eigentlich immer der "Round-Trip", also das man sowohl Quelltext aus UML und UML aus Quelltext erzeugen kann. Letzteres macht zum Beispiel Sinn, wenn man eine fertige Quelltextbasis besser verstehen möchte. Und wenn man dann im UML etwas zum Refaktorisieren findet, zum Beispiel eine Untermenge von Methoden die man in eine eigene Klasse herausziehen möchte, dann kann man das im Idialfall durch rumklicken im Diagramm machen und nicht im Quelltexteditor. Wie gesagt funktioniert das aber nur halbwegs Vernünftig in statischen Programmiersprachen.