Hallo StrucFan,
niemand verbietet Dir, Struktogramme einzusetzen.
Und wir werten sie auch nicht ab. Wir stellen lediglich – so wie die Wikipedia – fest, dass sie out sind. Das ist keine Wertung, sondern eine Zustandsbeschreibung. Nassi-Shneiderman-Struktogramme (NSS) stammen aus den 70ern. Und heute programmiert man komplett anders. Standardwerke wie "The Art of Computer Programming" von Knuth zeigen Beispielcode, bei dem es einem heute die Zehnägel aufrollt.
Ich habe 1988 das Abschlussprojekt meiner damaligen Ausbildung per NSS dokumentiert. Ich hätte auch PAPs malen können, aber die NS Bildchen ließen sich - wie Du selbst gemerkt hast, ganz gut automatisch generieren und dafür ein Tool zu schnitzen war eine nette Fingerübung. Und es war auch eine Erziehungsmaßnahme: wenn das Tool über dem Code abrauchte, war er nicht gut genug strukturiert 🤣
Tatsächlich ist das nachträgliche Dokumentieren per NSS aber nicht der Zweck dieser Bildchen, sondern sie sollen Dich beim Top-Down Entwurf bei strukturierter Programmierung unterstützen. Aber wer verwendet dieses Paradigma heute noch – in Reinform, meine ich.
Aber seit damals habe ich keinen einzigen Nassi mehr geshneidert, sondern habe OOP gelernt und festgestellt, dass ein OO-Programm mit Klassen und vielen Methodenaufrufen sich einer NS Darstellung entzieht. Bzw. das Diagramm keinen Mehrwert bietet, weil Methoden typischerweise so kurz sind, dass die Logik offensichlich ist.
Bereits bei prozeduraler Programmierung ist NS nicht mehr sehr nützlich, weil die Musik nicht in den Prozeduren selbst spielt, sondern in ihrer Kombination und den Datenflüssen.
Deine Argumente pro NS sind eigentlich Beweise für ihre Obsoletheit: Du hast sie zur Dokumentation von verknotetem Legacy-Code verwendet.
Tatsächlich habe ich schon lange mehr keine Code-Dokumentation auf Anweisungsebene mehr gesehen. Das ist sinnlos. Gut kommentierter Code spricht für sich selbst. Dokumentieren muss man, warum bestimmter Code etwas tut und wie die vielen kleinen Bausteine interagieren. Und dafür bietet NS keinen Vorteil.
Bei einem Event-orientierten JavaScript-Programm sind sie dann vollkommen nutzlos. Ich kann NSS oder PAPs der einzelnen Eventhandler zeichnen. Über die Funktionsweise des Gesamtkunstwerks sagt das Null Komma Garnichts aus. Leider.
Rolf
sumpsi - posui - obstruxi