Diagramme von Code automatisch generieren? UML Alternativen?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
keboo
User
Beiträge: 132
Registriert: Sonntag 19. Februar 2006, 14:03

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 :)
keboo
User
Beiträge: 132
Registriert: Sonntag 19. Februar 2006, 14:03

Gibt es eine Möglichkeit Struktogramme aus dem Source Code zu generieren?

Danke,
Johannes
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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.
Antworten