Nassi-Shneiderman-Diagramme

Ein Nassi-Shneiderman-Diagramm ist ein Diagrammtyp zur Darstellung von Programmwünschen im Rahmen der Methode der Structuurten Programmierung. Es wurde 1972/73 von Isaac Nassi und Ben Shneiderman entwickelt und ist in der DIN 66261 genormt. Als Nassi-Shneiderman-Diagramme die Programmstruktur darlegten, nannte man sie Struktogramme.

Die Methode ist ein häufiges Problem, und es ist wahr, dass die Lösung des Algorithmus in immer kleineren Tile- Problemen nicht die Basis von Grundstrukturen sein wird, deren Sequenzen und Kontrollstrukturen das Problem der Probleme sind. This can Dann Durch ein Nassi-Shneidermandiagramm oder EINEN Programmablaufplan (PAP) und visualisieren Werden. Das Ministerium für Bildung, Wissenschaft und Kultur, Top-Down , Programm und das Ministerium für Bildung, Gesundheit und Soziales sind für die Entwicklung der Strukturfonds zuständig.

Böhm und Jacopini hat 1966 nachgewiesen, dass sich jeder Gläubiger Algorithmus ohne unbestimmte Sprunganweisung (GOTO) lässt. Für Nassi-Shneiderman-Diagramme Schweißen sich trivial Die Regelstrukturen moderner Finden von Programmen ; Für Programmablaufpläne kann dies wesentlich schlechter sein.

Sinnbilder nach Nassi-Shneiderman

Die meisten der nachfolgenden Strukturblöcke [1] can ineinander geschachtelt Werden. So ist das. Strukturblöcken zusammengesetzte Struktur ist im Geiste Rechtshänder, auch genauso breit wie sein strukturierter Strukturblock.

Prozesssymbol

Jede Anweisung wird in einem rechteckigen Blockblock.

Die Strukturlöcher waren nacheinander von oben nach unten durchlaufen.

Leere Strukturlöcher sind nur in Verziehungen zulish.

Alternative Begriffe: Folge, Linearer Ablauf, Sequenz.

Entscheidungssymbol

→ Hauptartikel : Bedingte Anweisung und Verzweigung

Alternative Begriffe: Verzweigung, Alternative, Auswahl.

1 möglicher Block

Wenn die Bedingung zutrifft, wird (1) durchlaufen ( if). Ein Annuisungsblock kann auch von mehreren kommenden Bestellungen genutzt werden. Tifft die Bedingung nicht zu (falsch), wird der Durchlauf ohne eine weitere Anweisung fortgeführt (Austritt unten).

Alternative Begriffe: Bedingte Verarbeitung, Einfache Auswahl / Auswahl, Einfache Verzweigung.

2 mögliche Blöcke

Wenn de Bedingung zutrifft, wird die Bedingung nicht erfüllt, wird der Anwendungsblock 2 durchlaufen ( if then else). Ein Annuisungsblock kann auch von mehreren kommenden Bestellungen genutzt werden. Austritte unten nach Ausarbeitung des Jeweiligen Anwendungsblocks.

Alternative Begriffe: Einfache Alternative, Zweifache Auswahl, Alternative Verzweigung / Verarbeitung.

Beispiel für Verschachtelung

Es folgt eine weitere Bedigung. Die Verschachtelung ist ebenso im Nein-Fall noch möglich.

Case-Statement

BESONDERS bei mehr als drei abzuprüfenden bedingungen geeignet: Der Wert von „Variable“ kann bedingt auf Gleichheit Wie available in Bereich (Grösser / Kleiner bei Zahlen) geprüft Werden und der entsprechend zutreffender „Fall“ mit dem zugehörigen Anweisungsblock Wird Durchlaufen ( switchselect). Eine Fallauswahl Kann Stets in Eine verschachtelte Auswahl umgewandelt Werden – ETWA Wenn Die später eingesetzte Programmiersprache Fallauswahlen nicht kennt.

Alternative Begriffe: mehrfach Alternative, Fallauswahl, Mehrfachauswahl, Case, Select.

Schleifen

→ Hauptartikel : Schleife (Programmierung)

Iterationssymbol

Die Abnahmestruktur, bei der die Anzahl der Durchläufe festgelegt ist ( for). Wenn Bedingung muss eine Zählvariable angegeben und mein Startwert wurde eingeleitet. Gleichfalls muss ein Endwert und die (Zähl-) Schrittweite angegeben werden. Nach dem Durchlauf des Schleifenkörpers (Anweisungsblock 1) wird die Zählvariable um Schrittweite (zB Beats und Scraps) und mit Endwert verglichen. Ist der Endwert überschritten? unterschreiben, wird die Schleife ausstoßen.

Alternative Beschreibungen: Zählergesteuerte Schleife.

Anfang-Ende-Symbol

Hier ist was über Schleifen, der in PL / I und ALGOL findet . Bitte kontaktieren Sie uns.

Alternative Begriffe: Wiederholung mit Bedatungsprüfung, prüfende Schleife.

Sonderfall: Ende = wahr

Wiederholungsstruktur mit vorausgehender Bedatungsprüfung ( while). Der Schleifenkörper (Anwendungsblock 1) wird nur durchlaufen, wenn (und so) die Bedingung erfüllt ist (wahr). Diese Symbolik wird für die Zählschleife (Anzahl der Durchläufe bekannt) genutzt.

Alternative Begriffe: Wiederholung mit vorausgehender Bedingungsprüfung, Abweisende / vorprüfende / kopfgesteuerte Schleife.

Sonderfall: Start = wahr

Wiederholungsstruktur mit nachfolgender Prüfung für den Abbruch ( loop). Der Schleifenkörper (Anweisungsblock 1) wird mindestens einmal durchlaufen, auch wenn der Anfang eines nicht übereinstimmenden (Krieg).

Alternative Begriffe: Wiederholung mit nachfolgender Bedingungsprüfung, Nicht abweisende / nachprüfende / fußgesteuerte Schleife.

Sonderfall: Begin = End = true

Wiederholungsstruktuur, die alle durch eine Abbruchanweisung ( break) zerstört wurden, wurde kann.

Alternative Begriffe: Wiederholung ohne Bedigungsprüfung, Endlosschleife.

Pause

Wo Aussprung ( break; Auch Exitgenannt) Stellt sterben beendigung Eines Programmteils dar. Es gab keinen Unsinn mit der unbedingten Sprunganweisung ( goto), die Nassi und Shneiderman mit den Struktogrammen verwundete.

Alternative Begriffe: Abbruchanweisung, Aussprung.

Blockaufruf

Symbol für den Aufruf eines Unterprogramms bzw. Eine Prozeur , Funktion oder Methode . Danach wird der Ablauf zurückgeschaltet und der nächstfolgende Strukturblock durchlaufen. Dieses Symbol ist kein Nerd.

Parallel Processing Symbol

Symbol für den nebenläufigen Ablauf von mehreren Blöcken.

Füllregeln

Allgemeingültigkeit

Struktogramme brauchen keine programmierspezifische Befehlsyntax enthalten. Sie müssen so programmieren, dass sie unabhängig von der Codierschrift in jeder Programmiersprache umsetzbar ist.

Erklärung

Weil Sie ursprünglich für prozedurale Programming-Schriften, weise Männer, abgebildeter Mann in Struktogramme nur für den Prozess und keine Deklarationsbereik von Variablen und Constanten ab (einfaches Struktogramm). Dave is not soforce duty, which Datentype eines Variables zugewiesen werden müssen. Die Deklaration von Variablen und Konstanten ist im ersten Anwendungsblock vorzunehmen. Diese Nassi-Shneiderman-Diagramme bezeichnet man als aufgerichtete Struktogramme.

Exklusive Netzwerke

Jede Anweisung erhält einen eigenen Strukturblock (Sinnbilder nach DIN 66261). Selbst mehrere ähnliche Fälle oder ähnlicher Art müssen nicht in einem Strukturblock zusammengefügt werden.

Jede Anweisung muss mindestens eine Zuweisung erhalten ( zB ZielvariableZielvariable * OtherVariable ). Eine Verbindung wird durch einen nach links gerichteten Pfeil dargestellt. Alternative Struktogramme nutzen alternativ aus alten Pascal -Zeilen als Zuweisungszeichen des Doppelpunkts folk vom Gleichheitszeichen ( Zielvariable : = Zielvariable * AndereVariable ). Dies ist eine ungewöhnliche Art, näher zu Zuweisungszeichen zu kommen. Genau da steht steh de Quelle.

Über jedes Strukturogramm verfügte ein Name, auf den die Identifikation durch (oder) Programmaufrufe gewährleistet werden konnte.

Praxisrelevanz

In der Softwareentwicklung wurden Nassi-Shneiderman-Diagramme aus heißen Salaten hergestellt. Dort Werden vorrangig extended Programmablaufpläne ( Aktivitätsdiagramme wo UML ) used.

Im Informatik-Unterricht der Sekundarstufe II wurden Struktogramme verwischt, was Schüler den Aufbau logischer Abläufe, die für die Programmierung notwendig sind, trainieren kann. Die Beschreibung von Struktogrammen, die wiederkehrender gleicher Verfahrensweise unterzogen werden, wurde zunehmend unbekannt, eher als im Bereich umfassenderer Abschlussprüfungen.

In der Entwicklungsumgebung EasyCODE finden Sie leicht Nassi-Shneiderman-Diagramme von Programmfluss festgezahlt.

Nassi-Shneiderman-Diagramme können auch in technischer Dokumentation eingefügt werden. [2]

Chip Charts

Einfaches Strukturogramm

Der folgende Beispiel sieht den Ablauf des Euklidischen Algorithmus zur Berechnung des Großen Gemeennen Teilers Zweier Zahlen.

als Nassi-Shneiderman Diagramm … … und in Python :
def GGT ( a , b ):
während a > 0 und b > 0 :
wenn a > b :
a - = b
else :
b - = a
wenn b == 0 :
return a
else :
return b

Erweitertes Strukturogramm

als Nassi-Shneiderman Diagramm …

… und die Umsetzung in VBA :

 Option Explicit
 Privatunter btnZensur_Click () Dim intZensur Wie Integer , strZensur Als String intZensur = InputBox ( "geben Sie sterben Zensur als Zahl ein." ) Auswählen Fall intZensur Fall 1 : strZensur = "sehr gut" Fall 2 : strZensur = "gut" Fall 3 : strZensur = "befriedigend" Fall 4 : strZensur =
 "Ausreichend"
 Fall 5 : strZensur = "mangelhaft"
 Fall 6 : strZensur = "ungenügend"
 Fall Else : strZensur = "ungültig"
 End Select
 MsgBox "Ihre eingegebene Zensur in worten:" & strZensur
 End Sub

Software [ Verarbeitung | Quelltextverarbeitung ]

  • Struktogrammeditor – Struktogramme online einrichten und ablaufen schweißen.
  • Nassi-Shneiderman-Diagramm Word Vorlage – Vorlage mit Makros und Symbolleiste für MS-Word, Freeware .
  • Struktogramme.dot – MS Word-Vorlage, Freeware.
  • struktex – LaTeX-Paket zum Erstellen von Nassi-Shneiderman-Diagrammen.
  • nassflow – LaTeX-Paket zum Erstellen von Nassi-Shneiderman-Diagrammen.
  • PyNassi – Struktogramme für Python , mit denen Freeware die Python-Quelltext-Struktogramme generieren kann. Siehe auch Ingo Linkweiler: PyNassi .
  • Structorizer – Nassi-Shneiderman Diagrammeditor für Linux , Mac OS X und Microsoft Windows ( GPL ).
  • Vips – Visuelle Programmierung mit Struktogrammen – Visueller Editor für Strukturen für Windows und Linux, Freeware.
  • Struktogrammeditor – einfacher grafischer Strukturgrammeditor mit Drag & Drop-Funktion ( Java erforderlich, Freeware).
  • Code :: Blocks : Quelloffene Entwicklungsumgebung für C, C ++, D und Fortran; mein NassiShneiderman Plugin auf Struktogramme zu erstel.
  • Strukturen: Ein Nassi-Shneiderman Chart Editor und Executor in Java – Java Java Applet Über Struktogramme zu Beetles. Siehe auch Kim Neunert: learn2prog – Struktogramme zeichnen und ablaufen schweißen .
  • Nessi – Quelloffener Editor für Nassi-Shneiderman-Diagramme (in Java).
  • NSD Editor – Quelloffener Redakteur in Borland Delphi; kann Nassi-Shneiderman-Diagramme aus Quellcode in C und Pascal erzeugen. Siehe auch: Universität Fribourg (Schweiz) – Fakultät für Informatik: NSD Editor Nassi-Shneiderman Chartherausgeber: Student Project oder Marcel Kalt .
  • EasyCODE – Nassi-Shneiderman-Entwicklungsumgebung, ein Programm zur Programmierung von Anwendungen (C #, C ++, C, Java, Cobol).
  • Ategos BlueRiverX32 – Nassi-Shneiderman-Entwicklungsumgebung für C und C ++.
  • Moritz Quellopenes „Addon“ für Doxygen , Dass Nassi-Shneiderman Diagramme für Funktion in C / C ++ Generator kann.
  • StruktED – Freier Struktur-Editor von Michael Bellinghausen.

Siehe auch

  • Jackson-Charts

Weblinks

  • Literatur zum Nassi-Shneiderman-Diagramm im Katalog der Deutschen Nationalbibliothek
  • DIN 66261: Sinnbilder für Struktogramme nach Nassi-Shneiderman . FH Bielefeld . Archiviert vom Original am 28. September 2007. Abgerufen am 2. Juni 2016.

Belege

  1. Hochspringen↑ Nassi, ich. Shneiderman, B .: Flussdiagrammtechniken für strukturierte Programmierung . SIGPLAN Mitteilungen XII. August 1973. Abgerufen am 3. Juni 2016.
  2. Hochspringen↑ Weiss, Edmond H .: Visualisierung eines Verfahrens mit Nassi-Schneiderman Charts. Zeitschrift für Technisches Schreiben und Kommunikation , Band 20, Nr. 3 (1990): 237-254.