Structorizer: Struktogramme unter Windows und Linux (Nachschlag)

Die Freuden des Bloggens

Blogging ist genial. Im Beitrag Struktogramme (Nassi Shneiderman) mit dem Computer zeichnen habe ich leider Structorizer nicht zum Laufen gebracht. Dem Autor zu schreiben traute ich mich nicht ganz, da ich sicher war, dass es nur an meiner eigenen, angebohrenen Blödheit gelegen hat. Vielleicht stimmt das auch, aber Bob Fisch hat höchtpersönlich einen Kommentar unter das Posting gesetzt, mit der Bitte ihm zu mailen. Das habe ich gemacht und innerhalb weniger Stunden hat er eine neue Version auf der Website publiziert. Genial, unglaublich, sowas erlebt man nicht mal bei hochbezahlten Serviceverträgen.

Structorizer

Structorizer beim Diagramme erstellen
Structorizer läuft nun wunderbar und hat seinen positiven Eindruck den ich von den Screenshots hatte bestätigt:

Structorizer unterstützt alle Sinnbilder nach DIN 66261:
Inklusive Mehrfachauswahl, Unterroutinen (Call) mit „Sub“-Darstellung, Aussprung (jump), …
Structorizer ist mehrsprachig:
Er unterstützt Englisch, Deutsch, Französisch, …
Exports:
Export als BMP-Bilder und direktes Ausdrucken.
Einfärben:
Verschiedene Farben können die Übersichtlichkeit erhöhen.

Die Bedienung ist mittels Drag-und-Drop sowie sprechenden Tooltips nach ein paar wenigen Minuten intuitiv. Es läuft stabil und das Kreieren von Struktogrammen macht einfach Spass.

Bob Fisch gebührt grössten Respekt. Ein solches Projekt in Angriff zu nehmen und auch bis zu einer verwendungsfähigen Version voranzutreiben, es der Allgemeinheit gratis zur Verfügung zu stellen (inklusive Quellcode) und dann erst noch Support für DAUs wie mich zu übernehmen ist eine Leistung die Anerkennung verdient!

Struktogramme (Nassi Shneiderman) mit dem Computer zeichnen

Struktogramme

Struktogramme sind einiges platzsparender als Flussdiagramme. Gerade für Programmierneulinge ist es eine gute Möglichkeit Abläufe zu visualisieren.

NSDs können natürlich von Hand mit Stift auf Papier gezeichnet werden. Allerdings nur, wenn man ein Mensch mit exakter Schreibweise und ruhigem Strich ist. Bei Sauklauen wie mir erinnern die Struktogramme eher an moderne Kunstwerke als an Algorithmen. Computerapplikationen helfen gut in diesen Fällen und so habe ich ein Programm dafür gesucht, welches Struktogramme sauber darstellen kann und unter Linux lauffähig ist.

Structorizer

Structorizer sieht schön aus, läuft unter Linux und Windows und ist open Source.
Er hat wegen speziellen Umständen sein eigenes Posting bekommen.

Nessi

Nessi ist in zwar Java geschrieben, läuft aber trotzdem recht flott. Es besteht aus einem einzigen JAR das mit java -jar Nessi.jar gestartet werden kann und somit eigentlich keine Installation und/oder Gemurkse benötigt. Mit ein Bisschen Zielen kann man die Blöcke gut platzieren und verschieben. Der einzig richtige Nachteil ist die fehlende Mehrfachauswahl.

Nessi auf Windows XP

Neben der Darstellung bietet Nessi auch noch ein „Processing“ der Diagramme. Hier eine Implementierung des Hasenbein-Algorithmus, der für einen Hühner-Hasen-Bauer aus der Anzahl der Tiere und Beine die Anzahl der Hühner und Hasen errechnet. Dieser Ablauf kann „ausgeführt“ werden und liefert elegant das Resultat.

Nessi und der Hasenbein-Algorithmus

Für Fortgeschrittene

Ein Projekt für irgendwanneinmal ist DEViL. DEViL ist ein Editor für visuelle Sprachen und die NSDs sind nur eine Implementierung davon. Damit zu arbeiten wäre echt spannend, leider fehlt mir grad die Zeit dazu 🙁 .

Histogramme in Excel

Aufgabenstellung

In einer Umfrage wurde gefragt, wie viele Minuten für den Arbeitsweg gebraucht und mit welchem Verkehrsmittel sie zurückgelegt werden:

Wieviel Zeit in Minuten benötigen Sie für den Schulweg? Welches Verkehrsmittel benützen Sie?
15 Individualverkehr
25 Öffentlicher Verkehr
5 zu Fuss
40 Individualverkehr
30 Sonstiges
55 Kombiniert
80 Sonstiges
45 Öffentlicher Verkehr

Wie stellt man das als Diagramm dar? Jede einzelne Minute kann es nicht sein, das würde wohl etwas unübersichtlich… Man müsste Bereiche bilden können (bis zu einer Viertelstunde, zwischen einer Viertelstunde und einer halben Stunde, …). Genau hier kommen die Histogramme ins Spiel…

Vorgehen

Für die Diagrammdaten muss eine Tabelle nach folgendem Schema erstellt werden:

A B C D E F G
1 Zeit [Min] Individualverkehr Kombiniert Öffentlicher Verkehr Sonstiges Obergrenze Insgesamt
2 0-15 15
3 16-30 30
4 31-45 45
5 46-60 60
6 61-75 75
7 76-90 90
8 91-120 120
9 >121 9999

Da wir nach Art und Weise wie der Schulweg zurückgelegt wird gruppieren möchten, muss die Tabelle mit den Rohdaten zuerst danach sortiert werden: Daten > Sortieren….

Nun wirds tricky. Folgendes wiederholen für alle leeren Spalten (Individualverkehr, Kombiniert, Öffentlicher Verkehr, …):

  1. Den leeren Zellen eines Bereichs markieren (Beispielsweise B2-B9 für Individualverkehr)
  2. Einfügen > Funktion… > Statistik > HÄUFIGKEIT (FREQUENCY in Englisch). Daten sind die Quelldaten (die Minuten für den Individualverkehr) und die Klassen sind die Obergrenzen (bei diesem Beispiel G2:G9). Und nun (!) die drei Tasten ctrl+shift+Enter (Deutsch: strg+umschalt+Eingabe) gleichzeitigdrücken.

    Haeufigkeitsfunktion im Funktionsassistent

Nachdem alle Arten von Verkehrsmitteln so eingereiht sind, kann ein Diagramm erstellt werden mit den Daten ohne die Obergrenze (A2:F9).

Histogramm

Weiteres

Es gibt auch ein Add-In (Analyse-Funktionen), aber als Kontrollfreak mach ichs gerne von Hand…

Arbeitszimmer hat eine sehr gute, bebilderte einführung.