www.wikidata.de-de.nina.az
Ein Nassi Shneiderman Diagramm ist ein Diagrammtyp zur Darstellung von Programmentwurfen im Rahmen der Methode der strukturierten Programmierung Es wurde 1972 73 von Isaac Nassi und Ben Shneiderman entwickelt und ist in der DIN 66261 genormt DIN 66261Bereich ProgrammierungTitel Informationsverarbeitung Sinnbilder fur Struktogramme nach Nassi ShneidermanKurzbeschreibung StruktogrammeLetzte Ausgabe November 1985Klassifikation 01 080 50 35 020Da Nassi Shneiderman Diagramme Programmstrukturen und Kontrollstrukturen darstellen werden sie auch als Struktogramme bezeichnet Inhaltsverzeichnis 1 Verwendung 2 Sinnbilder nach Nassi Shneiderman 2 1 Process Symbol 2 2 Decision Symbol 2 2 1 1 moglicher Block 2 2 2 2 mogliche Blocke 2 2 3 Beispiel fur Verschachtelung 2 2 4 Case Statement 2 3 Schleifen 2 3 1 Iteration Symbol 2 3 2 Begin End Symbol 2 3 3 Sonderfall End true 2 3 4 Sonderfall Begin true 2 3 5 Sonderfall Begin End true 2 4 Break 2 5 Blockaufruf 2 6 Parallel Processing Symbol 3 Fullregeln 3 1 Allgemeingultigkeit 3 2 Deklaration 3 3 Exklusivitat 4 Praxisrelevanz 5 Beispieldiagramme 5 1 Einfaches Struktogramm 5 2 Erweitertes Struktogramm 6 Freie Struktogramm Editoren 7 Siehe auch 8 Einzelnachweise 9 WeblinksVerwendung BearbeitenDie Strukturierte Programmierung zerlegt das Gesamtproblem das man mit dem gewunschten Algorithmus losen will in immer kleinere Teilprobleme bis schliesslich nur noch elementare Grundstrukturen wie Sequenzen und Kontrollstrukturen zur Losung des Problems ubrig bleiben Diese konnen dann durch ein Nassi Shneiderman Diagramm visualisiert werden Die Vorgehensweise entspricht der sogenannten Top down Programmierung in der zunachst ein Gesamtkonzept entwickelt wird das dann durch eine Verfeinerung der Strukturen des Gesamtkonzeptes aufgelost wird Bohm und Jacopini haben 1966 nachgewiesen dass sich jeder beliebige Algorithmus ohne unbedingte Sprunganweisung GOTO formulieren lasst Fur Nassi Shneiderman Diagramme lassen sich trivial die Kontrollstrukturen moderner Programmiersprachen finden fur Programmablaufplane kann dies wesentlich schwieriger sein Sinnbilder nach Nassi Shneiderman BearbeitenDie meisten der nachfolgenden Strukturblocke 1 konnen ineinander geschachtelt werden Das aus den unterschiedlichen Strukturblocken zusammengesetzte Struktogramm ist im Ganzen rechteckig also genauso breit wie sein breitester Strukturblock Process Symbol Bearbeiten nbsp Anweisung Jede Anweisung wird in einen rechteckigen Strukturblock geschrieben Die Strukturblocke werden nacheinander von oben nach unten durchlaufen Leere Strukturblocke sind nur in Verzweigungen zulassig Alternative Begriffe Folge Befehlsfolge Anweisungsfolge Anweisungsblock Linearer Ablauf Sequenz Decision Symbol Bearbeiten Hauptartikel Bedingte Anweisung und Verzweigung Alternative Begriffe Verzweigung Alternative Selektion 1 moglicher Block Bearbeiten nbsp Einfache Auswahl Nur wenn die Bedingung zutreffend wahr ist wird der Anweisungsblock 1 durchlaufen if Ein Anweisungsblock kann aus einer oder mehreren Anweisungen bestehen Trifft die Bedingung nicht zu falsch wird der Durchlauf ohne eine weitere Anweisung fortgefuhrt Austritt unten Alternative Begriffe Bedingte Verarbeitung Einfache Auswahl Selektion Einfache Verzweigung 2 mogliche Blocke Bearbeiten nbsp Zweifache Auswahl Wenn die Bedingung zutreffend wahr ist wird der Anweisungsblock 1 durchlaufen trifft die Bedingung nicht zu falsch wird der Anweisungsblock 2 durchlaufen if then else Ein Anweisungsblock kann aus einer oder mehreren Anweisungen bestehen Austritt unten nach Abarbeitung des jeweiligen Anweisungsblocks Alternative Begriffe Einfache Alternative Zweifache Auswahl Alternative Verzweigung Verarbeitung Beispiel fur Verschachtelung Bearbeiten nbsp Mehrfachauswahl Es folgt eine weitere Bedingung Die Verschachtelung ist ebenso im Nein Fall noch moglich Case Statement Bearbeiten nbsp Der Wert von Variable kann bedingt auf Gleichheit Switch Case in Java aber auch auf Bereiche grosser kleiner bei Zahlen gepruft werden Der entsprechend zutreffende Fall mit dem zugehorigen Anweisungsblock wird durchlaufen switch select Eine Fallauswahl kann stets in eine verschachtelte Auswahl umgewandelt werden etwa wenn die spater eingesetzte Programmiersprache Fallauswahlen nicht kennt Alternative Begriffe Mehrfache Alternative Fallauswahl Mehrfachauswahl Case Select Schleifen Bearbeiten Hauptartikel Schleife Programmierung Iteration Symbol Bearbeiten nbsp Zahlergesteuerte Schleife Wiederholungsstruktur bei der die Anzahl der Durchlaufe festgelegt ist for Als Bedingung muss eine Zahlvariable angegeben und mit einem Startwert initialisiert werden Ebenso muss ein Endwert und die Zahl Schrittweite angegeben werden Nach jedem Durchlauf des Schleifenkorpers Anweisungsblock 1 wird die Zahlvariable um die Schrittweite inkrementiert bzw bei negativer Schrittweite dekrementiert und mit dem Endwert verglichen Ist der Endwert uberschritten bzw unterschritten wird die Schleife verlassen Alternative Begriffe Zahlergesteuerte Schleife Begin End Symbol Bearbeiten nbsp Hier handelt es sich um Schleifen wie man sie in PL I und ALGOL findet Sie zeichnen sich durch zwei Bedingungen aus Alternative Begriffe Wiederholung mit Bedingungsprufung prufende Schleife Sonderfall End true Bearbeiten nbsp Abweisende kopfgesteuerte Schleife Wiederholungsstruktur mit vorausgehender Bedingungsprufung while Schleifenanweisung while Abbruchanweisung automatisch wenn vorausgehende Bedingungsprufung der gepruften Expression falschDer Schleifenkorper Anweisungsblock 1 wird nur durchlaufen wenn und solange die Bedingung zutreffend wahr ist Diese Symbolik wird auch fur die Zahlschleife Anzahl der Durchlaufe bekannt benutzt Alternative Begriffe Wiederholung mit vorausgehender Bedingungsprufung Abweisende vorprufende kopfgesteuerte Schleife Sonderfall Begin true Bearbeiten nbsp Abweisende fussgesteuerte Schleife Wiederholungsstruktur mit nachfolgender Bedingungsprufung fur den Abbruch loop Schleifenanweisung loopAbbruchanweisung automatisch wenn nachfolgernde Bedingungsprufung der Expression falschDer Schleifenkorper Anweisungsblock 1 wird mindestens einmal durchlaufen auch wenn die Bedingung von Anfang an nicht zutreffend falsch war Alternative Begriffe Wiederholung mit nachfolgender Bedingungsprufung Nicht abweisende nachprufende fussgesteuerte Schleife Sonderfall Begin End true Bearbeiten nbsp Endlosschleife Wiederholungsstruktur die allenfalls durch eine Abbruchanweisung break verlassen werden kann Schleifenanweisung while true Abbruchanweisung break Alternative Begriffe Wiederholung ohne Bedingungsprufung Endlosschleife Break Bearbeiten nbsp Aussprung Der Aussprung break auch Exit genannt stellt die Beendigung eines Programmteils dar Er sollte nicht mit der unbedingten Sprunganweisung goto verwechselt werden die Nassi und Shneiderman mit den Struktogrammen vermeiden wollten Alternative Begriffe Abbruchanweisung Aussprung Blockaufruf Bearbeiten nbsp Aufruf Symbol fur den Aufruf eines Unterprogramms bzw einer Prozedur Funktion oder Methode Nach deren Durchlauf wird zu der aufrufenden Stelle zuruckgesprungen und der nachstfolgende Strukturblock durchlaufen Dieses Symbol ist nicht genormt Parallel Processing Symbol Bearbeiten nbsp Symbol fur den nebenlaufigen Ablauf von mehreren Blocken Fullregeln BearbeitenAllgemeingultigkeit Bearbeiten Struktogramme sollten keine programmiersprachenspezifische Befehlssyntax enthalten Sie mussen so programmiersprachenunabhangig formuliert werden dass die dargestellte Logik einfach zu verstehen und als Codiervorschrift in jede beliebige Programmiersprache umzusetzen ist Deklaration Bearbeiten Weil sie ursprunglich fur prozedurale Programmiersprachen entwickelt wurden bildete man in Struktogrammen nur die Prozedur und keine Deklarationsbereiche von Variablen und Konstanten ab einfaches Struktogramm Dadurch ist jedoch nicht sofort deutlich welcher Datentyp einer Variablen zugeordnet werden muss Die Deklaration von Variablen und Konstanten ist im ersten Anweisungsblock vorzunehmen Diese Nassi Shneiderman Diagramme bezeichnet man dann als erweiterte Struktogramme Exklusivitat Bearbeiten Jede Anweisung erhalt einen eigenen Strukturblock Sinnbilder nach DIN 66261 Selbst mehrere Anweisungen gleicher oder ahnlicher Art durfen nicht in einem Strukturblock zusammengefasst werden Jede Anweisung muss mindestens aus einer Zuweisung bestehen beispielsweise Zielvariable Zielvariable AndereVariable Eine Zuweisung wird durch einen nach links gerichteten Pfeil dargestellt Altere Struktogramme benutzen alternativ aus alten Pascal Zeiten als Zuweisungszeichen den Doppelpunkt gefolgt vom Gleichheitszeichen Zielvariable Zielvariable AndereVariable Das Ziel einer Anweisung steht immer links vom Zuweisungszeichen Rechts davon steht die Quelle Uber jedes Struktogramm gehort ein Name um die Identifikation durch Ereignis oder Unter Programmaufrufe gewahrleisten zu konnen Praxisrelevanz BearbeitenIn der Softwareentwicklung werden Nassi Shneiderman Diagramme heute selten eingesetzt Dort werden vorrangig erweiterte Programmablaufplane Aktivitatsdiagramme der UML verwendet Im Informatik Unterricht der Sekundarstufe II werden Struktogramme verwendet damit Schuler den Aufbau logischer Ablaufe die fur die Programmierung notig sind trainieren konnen Die Erstellung von Struktogrammen aufgrund von Beschreibungen betrieblicher Problemstellungen die wegen wiederkehrender gleicher Vorgehensweise automatisiert werden konnen ist immer noch Bestandteil vieler schulischer Abschlussprufungen In der Entwicklungsumgebung EasyCODE wird direkt anhand von Nassi Shneiderman Diagrammen der Programmfluss festgelegt Nassi Shneiderman Diagramme konnen auch in technischer Dokumentation eingesetzt werden 2 Die Programmiersprache Scratch stellt Programme visuell als Struktogramme dar Beispieldiagramme BearbeitenEinfaches Struktogramm Bearbeiten Das folgende Beispiel zeigt den Ablauf des euklidischen Algorithmus zur Berechnung des grossten gemeinsamen Teilers zweier Zahlen als Nassi Shneiderman Diagramm und in Python nbsp Beispiel eines Nassi Shneiderman Diagramms def GGT a b while a gt 0 and b gt 0 if a gt b a b else b a if b 0 return a else return bErweitertes Struktogramm Bearbeiten als Nassi Shneiderman Diagramm nbsp Beispiel eines erweiterten Nassi Shneiderman Diagramms und die Umsetzung in VBA Option Explicit Private Sub btnZensur Click Dim intZensur As Integer strZensur As String intZensur InputBox Geben Sie die Zensur als Zahl ein Select Case intZensur Case 1 strZensur sehr gut Case 2 strZensur gut Case 3 strZensur befriedigend Case 4 strZensur ausreichend Case 5 strZensur mangelhaft Case 6 strZensur ungenugend Case Else strZensur ungultig End Select MsgBox Ihre eingegebene Zensur in Worten amp strZensur End SubFreie Struktogramm Editoren BearbeitenStruktog Struktogrammeditor Lehrstuhl fur Didaktik der Informatik der TU Dresden DDI 3 sbide Javascript basierter Struktogrammeditor mit C Code Generierung und Simulator zur Visualisierung des Programmablaufs 4 Structorizer Open source Struktogramm Editor fur Windows Linux Mac 5 Struktograf 6 Struktogrammer 7 Struktogrammeditor whiledo 8 Hamster Struktogrammeditor HaSE Erganzung zum Hamster Simulator des Java Hamster Modells 9 Siehe auch BearbeitenProgrammablaufplan PAP Flowchart Jackson Diagramm PseudocodeEinzelnachweise Bearbeiten Nassi I Shneiderman B Flowchart Techniques for Structured Programming SIGPLAN Notices XII August 1973 abgerufen am 3 Juni 2016 englisch Weiss Edmond H Visualizing a Procedure with Nassi Schneiderman Charts Journal of Technical Writing and Communication Vol 20 Nr 3 1990 237 254 dditools inf tu dresden de Struktog sbide de structorizer fisch lu struktograf de struktogrammer ch whiledo de java hamster modell deWeblinks BearbeitenLiteratur zum Nassi Shneiderman Diagramm im Katalog der Deutschen Nationalbibliothek DIN 66261 Sinnbilder fur Struktogramme nach Nassi Shneiderman FH Bielefeld archiviert vom Original am 28 September 2007 abgerufen am 2 Juni 2016 Struktogramme erstellen Seite mit Lernvideos zum Struktogrammer Struktogramme pdf Struktogramme lesen verstehen und entwickelnNormdaten Sachbegriff GND 4125636 0 lobid OGND AKS Anmerkung Ansetzungsform GND Struktogramm Abgerufen von https de wikipedia org w index php title Nassi Shneiderman Diagramm amp oldid 239335123