Nassi-Shneiderman-Diagramm - Wikipedia



Ähnliche Dokumente
BKTM - Programmieren leicht gemacht.

Programmentwurf Prof. Metzler

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Kontrollstrukturen, Strukturierte Programmierung

Kontrollstrukturen - Universität Köln

VBA-Programmierung: Zusammenfassung

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

P r o g r a m m a b l a u f s t e u e r u n g

Entwurf von Algorithmen - Kontrollstrukturen

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Übersicht Programmablaufsteuerung

Java-Programmierung mit NetBeans

Excel Funktionen durch eigene Funktionen erweitern.

BKTM - Programmieren leicht gemacht.

Erwin Grüner

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Sin-Funktion vgl. Cos-Funktion

Programmierung, Algorithmen und Techniken. von Thomas Ohlhauser

Text-Zahlen-Formatieren

Zur drittletzten Zeile scrollen

E-PRIME TUTORIUM Die Programmiersprache BASIC

2. Die Darstellung von Algorithmen

Microsoft Access 2013 Navigationsformular (Musterlösung)

Einstieg in die Informatik mit Java

SEQUENZDIAGRAMM. Christoph Süsens

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!

C/C++ Programmierung

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

esms - sms senden & empfangen mit Outlook

Der Kalender im ipad

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

teischl.com Software Design & Services e.u. office@teischl.com

Treckerverein Monschauer Land e.v.

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Anleitung. My Homepage. upc cablecom GmbH Industriestrasse Otelfingen Mehr Leistung, mehr Freude.

Fallunterscheidung: if-statement

Leichte-Sprache-Bilder

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

PHP 5.4 ISBN Stephan Heller, Andreas Dittfurth 1. Ausgabe, September Grundlagen zur Erstellung dynamischer Webseiten GPHP54

Arbeiten mit UMLed und Delphi

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

Windows 10. Vortrag am Fleckenherbst Bürgertreff Neuhausen.

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Bedingungen. Bedingungen. Bedingungen

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

How to do? Projekte - Zeiterfassung

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Übungen Programmieren 1 Felix Rohrer. Übungen

5. Tutorium zu Programmieren

1 topologisches Sortieren

Family Safety (Kinderschutz) einrichten unter Windows 7

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Stapelverarbeitung Teil 1

99 - Struktogramme - 2. Sequenz I

Anwendungsbeispiele Buchhaltung

ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN. Der Zauberwürfel-Roboter. Paul Giese. Schule: Wilhelm-Raabe-Schule

Einführung in PHP. (mit Aufgaben)

Lehrstuhl Informatik VI Grundzüge der Informatik * WS 2008/2009 Prof. Dr. Joachim Biskup

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.

Bilder zum Upload verkleinern

Kleines Handbuch zur Fotogalerie der Pixel AG

Tutorium Rechnerorganisation

Erster Bug: eine Motte

Programmierung für Mathematik (HS13)

Die Formatierungsregeln (die so genannte Wiki-Syntax) für Texte in DokuWiki sind zu großen Teilen die selben, wie in anderen Wiki-Systemen.

Erstellung botoptimierter Partnerlinks

Anleitung für die Registrierung und das Einstellen von Angeboten

Programmierkurs: Delphi: Einstieg

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Erstellen eines Screenshot

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe

Faktura. IT.S FAIR Faktura. Handbuch. Dauner Str.12, D Mönchengladbach, Hotline: 0900/ (1,30 /Min)

Primzahlen und RSA-Verschlüsselung

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager -rückläufer Script. combit GmbH Untere Laube Konstanz

Programmierkurs Java

Whitebox-Tests: Allgemeines

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

Anleitung über den Umgang mit Schildern

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

SEPA-Anleitung zum Release 3.09

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Anwendungsbeispiele. Neuerungen in den s. Webling ist ein Produkt der Firma:

Was meinen die Leute eigentlich mit: Grexit?

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Anwendungsbeispiele Buchhaltung

ClubWebMan Veranstaltungskalender

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Eine Logikschaltung zur Addition zweier Zahlen

Überblick. Lineares Suchen

Kapitel 1: Betriebssystem IX. W indows Explorer und der Arbeitsplatz Teil 2

Grundbegriffe der Informatik

Bedienungsanleitung Einsatzplanung. Bedienungsanleitung Einsatzplanung. Inhalt. Bedienung einer Plan-Tabelle

Einstellungen für SEPA-Lastschriften in der VR-NetWorld-Software

Michaela Weiss 30. März Lerneinheit 3: VBA Teil 1: Eingabe/Ausgabe

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis 1

Transkript:

Nassi-Shneiderman-Diagramm aus Wikipedia, der freien Enzyklopädie Ein Nassi-Shneiderman-Diagramm ist eine Entwurfsmethode für die strukturierte Programmierung, die 1972/73 von Dr. Isaac Nassi und Dr. Ben Shneiderman entwickelt wurde. Es ist genormt nach DIN 66261. Da Nassi-Shneiderman-Diagramme Programmstrukturen darstellen, werden sie auch als Struktogramme bezeichnet. Die Methode zerlegt das Gesamtproblem, das man mit dem gewünschten Algorithmus lösen will, in immer kleinere Teilprobleme bis schließlich nur noch elementare Grundstrukturen wie Sequenzen und Kontrollstrukturen zur Lösung des Problems übrig bleiben. Diese können dann durch ein Nassi-Shneiderman-Diagramm oder einen Programmablaufplan (PAP) visualisiert werden. Die Vorgehensweise entspricht der sogenannten Top-down-Programmierung, in der zunächst ein Gesamtkonzept entwickelt Bereich Regelt DIN 66261 Programmierung Informationsverarbeitung; Sinnbilder für Struktogramme nach Nassi-Shneiderman Kurzbeschreibung Struktogramme Erscheinungsjahr 1985 wird, das dann durch eine Verfeinerung der Strukturen des Gesamtkonzeptes aufgelöst wird. Böhm und Jacopini hatten 1966 nachgewiesen, dass sich jeder beliebige Algorithmus ohne unbedingte Sprunganweisung (Goto) formulieren lässt. Für die Abbildung objektorientierter Programmkonzepte sind Nassi-Shneiderman-Diagramme ungeeignet. Hierfür wurde die Unified Modeling Language (UML) entwickelt. ISO Inhaltsverzeichnis 1 Sinnbilder nach DIN 66261 1.1 Linearer Ablauf (Sequenz) 1.2 Verzweigung (Alternative) 1.2.1 Einfache Auswahl (bedingte Verarbeitung)(Selektion) 1.2.2 Zweifache Auswahl (alternative Verarbeitung) 1.2.3 Mehrfachauswahl 1.2.4 Fallauswahl 1.3 Wiederholung (Iteration) 1.3.1 Zählergesteuerte Schleife 1.3.2 Abweisende (vorprüfende - kopfgesteuerte) Schleife 1.3.3 Nicht abweisende (nachprüfende - fußgesteuerte) Schleife 1.3.4 Endlos-Schleife 1.4 Aussprung 1.5 Aufruf 2 Füllregeln 2.1 Allgemeingültigkeit 2.2 Deklaration 2.3 Exklusivität 3 Praxisrelevanz 3.1 Wirtschaft 3.2 Bildung 4 Beispieldiagramme 4.1 Einfaches Struktogramm 4.2 Erweitertes Struktogramm 5 Software 6 Weblinks Sinnbilder nach DIN 66261 Die nachfolgenden Strukturblöcke können z. T. ineinander geschachtelt werden. Das aus den unterschiedlichen Strukturblöcken zusammengesetzte Struktogramm ist im Ganzen rechteckig, d. h. genauso breit wie sein breitester

Strukturblock. Linearer Ablauf (Sequenz) Jede Anweisung wird in einen rechteckigen Strukturblock geschrieben. Die Strukturblöcke werden nacheinander von oben nach unten durchlaufen. Leere Strukturblöcke sind nur in Verzweigungen zulässig. Verzweigung (Alternative) Einfache Auswahl (bedingte Verarbeitung)(Selektion) Nur wenn die Bedingung zutreffend (wahr) ist, wird der Anweisungsblock 1 durchlaufen. Ein Anweisungsblock kann aus einer oder mehreren Anweisungen bestehen. Trifft die Bedingung nicht zu (falsch), wird der Durchlauf ohne eine weitere Anweisung fortgeführt (Austritt unten). Zweifache Auswahl (alternative Verarbeitung) Wenn die Bedingung zutreffend (wahr) ist, wird der Anweisungsblock 1 durchlaufen. Trifft die Bedingung nicht zu (falsch), wird der Anweisungsblock 2 durchlaufen. Ein Anweisungsblock kann aus einer oder mehreren Anweisungen bestehen. Austritt unten nach Abarbeitung des jeweiligen Anweisungsblocks. Mehrfachauswahl Auch "verschachtelte" Auswahl genannt, da eine weitere Bedingung folgt. Die Verschachtelung ist ebenso im Nein-Fall (noch) möglich. Fallauswahl Besonders bei mehr als drei abzuprüfenden Bedingungen geeignet. Der Wert von "Variable" kann bedingt auf Gleichheit wie auch auf Bereiche (größer/kleiner bei Zahlen) geprüft werden und der entsprechend zutreffende "Fall" mit dem zugehörigen Anweisungsblock wird durchlaufen. Eine Fallauswahl kann manchmal in eine Mehrfachauswahl umgewandelt werden etwa wenn die eingesetzte Programmiersprache Fallauswahlen nicht kennt. Wiederholung (Iteration)

Zählergesteuerte Schleife Wiederholungsstruktur, bei der die Anzahl der Durchläufe festgelegt ist. Als Bedingung muss eine Zählvariable angegeben und mit einem Startwert initialisiert werden. Ebenso muss ein Endwert und die (Zähl-)Schrittweite angegeben werden. Nach jedem Durchlauf des Schleifenkörpers (Anweisungsblock 1) wird die Zählvariable um die Schrittweite inkrementiert (bzw. bei negativer Schrittweite dekrementiert) und mit dem Endwert verglichen. Ist der Endwert überschritten, wird die Schleife verlassen. Abweisende (vorprüfende - kopfgesteuerte) Schleife Wiederholungsstruktur mit vorausgehender Bedingungsprüfung. Der Schleifenkörper (Anweisungsblock 1) wird nur durchlaufen, wenn (und solange) die Bedingung zutreffend (wahr) ist. Diese Symbolik wird auch für die Zählschleife (Anzahl der Durchläufe bekannt) benutzt. Nicht abweisende (nachprüfende - fußgesteuerte) Schleife Wiederholungsstruktur mit nachfolgender Bedingungsprüfung für den Abbruch. Der Schleifenkörper (Anweisungsblock 1) wird mindestens einmal durchlaufen, auch wenn die Bedingung von Anfang an nicht zutreffend (falsch) war. Endlos-Schleife Kann allenfalls durch einen Aussprung (break) verlassen werden. Aussprung Der Aussprung (break) stellt die Beendigung eines Programmteils dar und sollte nicht als das verstanden werden, was Nassi und Shneiderman mit den Struktogrammen eigentlich vermeiden wollten: Die Sprunganweisung (siehe oben: unbedingter Sprung Goto). Aufruf Symbolik zum Aufruf eines Unterprogramms bzw. einer Prozedur oder Funktion. Nach Durchlauf dieser wird genau zu der aufrufenden Stelle zurückgesprungen und der nächstfolgende Strukturblock durchlaufen. Füllregeln Allgemeingültigkeit

Struktogramme sollten keine programmiersprachenspezifische Befehlssyntax enthalten. Sie müssen so programmiersprachenunabhängig formuliert werden, dass die dargestellte Logik einfach zu verstehen und als Codiervorschrift in jede beliebige Programmiersprache umgesetzt werden kann. Deklaration Ursprünglich für prozedurale Programmiersprachen entwickelt, 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 als erweiterte Struktogramme. Exklusivität Jede Anweisung erhält einen eigenen Strukturblock (Sinnbilder nach DIN 66261). Selbst mehrere Anweisungen gleicher oder ähnlicher Art dürfen nicht in einem Strukturblock zusammengefasst werden. Jede Anweisung muss mindestens aus einer Zuweisung bestehen (z. B. Zielvariable <- Zielvariable * AndereVariable). Eine Zuweisung wird durch einen nach Links gerichteten Pfeil dargestellt. Ältere 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. Über jedes Struktogramm gehört ein Name, um die Identifikation durch Ereignis- oder (Unter-)Programmaufrufe gewährleisten zu können. Praxisrelevanz Wirtschaft In der Softwareentwicklung werden Nassi-Shneiderman-Diagramme sehr selten eingesetzt, da normaler Programmcode einfacher zu schreiben und zu verändern ist: Korrigiert man einen Fehler oder macht eine Ergänzung, muss man ein Nassi-Shneiderman Diagramm in der Regel komplett neu zeichnen. Daher werden dort (falls es sich um Softwareentwicklung mit einer objektorientierten Sprache handelt) heutzutage zumeist UML-Diagramme eingesetzt, für die Editoren existieren, die Änderungen am Code unmittelbar im Diagramm abbilden können. Bildung Im Informatik-Unterricht der Sekundarstufe II werden Struktogramme dagegen verwendet, damit Schüler den Aufbau logischer Abläufe, die für die Programmierung nötig sind, trainieren können. Die Erstellung von Struktogrammen aufgrund von Beschreibungen betrieblicher Problemstellungen, die wegen wiederkehrender gleicher Vorgehensweise automatisiert werden können, ist immer noch Bestandteil vieler schulischer Abschlussprüfungen. Beispieldiagramme Einfaches Struktogramm Das folgende Beispiel zeigt den Ablauf des euklidischen Algorithmus zur Berechnung des größten gemeinsamen Teilers zweier Zahlen. als Nassi-Shneiderman-Diagramm...... und in Pascal:

PROGRAM GGT(Input,Output); VAR a,b: Integer; BEGIN ReadLn(a,b); WHILE (a>0) AND (b>0) DO IF a>b THEN a:=a-b; ELSE b:=b-a; IF b=0 THEN WriteLn(a) ELSE WriteLn(b) END. Erweitertes Struktogramm... 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 = "ungenügend" Case Else: strzensur = "ungültig" End Select MsgBox "Ihre eingegebene Zensur in Worten: " & strzensur End Sub Software Nessi (http://eii.ucv.cl/nessi/) Nassi-Shneiderman-Diagramme erstellen, bearbeiten und ablaufen lassen(gpl). Nassi-Shneiderman Diagram-Editor mit OnlineDoc (http://diuf.unifr.ch/softeng/student-projects/completed/kalt/nsd.html) Struktogrammeditor (Struktogramme online erstellen und ablaufen lassen) (http://www.learn2prog.de/) Software für Struktogramme und Ablaufdiagramme (http://www.tinohempel.de/info/info/info-cd/index2.htm#klasse%2012/ii) Struktogramme.dot (http://www.dsw2.de/randprodukte.html) (Macros und Symbolleiste für MS-Word, Freeware) Struktogramme erzeugen mit editierbaren Quelltextausgaben für beliebige Programmiersprachen (http://www.winload.de/download/4127/wingesy-lite-4.0.html) struktex: LaTeX-Paket zum erzeugen von Nassi-Shneiderman-Diagrammen (http://tug.ctan.org/tex-archive/macros/latex/contrib/struktex/) nassflow: LaTeX-Paket zum erzeugen von Nassi-Shneiderman-Diagrammen (http://tug.ctan.org/tex-archive/macros/latex/contrib/nassflow/) EasyCODE Development Suite zum Editieren im Struktogramm (http://www.easycode.de/)

PyNassi (http://sourceforge.net/projects/pynassi/) (Struktogramme für Python, die Freeware kann aus den Struktogrammen Python-Quelltext generieren) Structorizer 2006 (http://www.fesch.lu/index.php?id=developpment&include=developpment_program&program=25) Editor für Windows (Freeware) openstructorizer (http://www.fesch.lu/index.php?id=developpment&include=developpment_program&program=26) Editor für Linux (GPL) Vips - Visual Programming with Structograms (http://partheil.com/vips/) - Visueller Editor für Struktogramme für Windows und Linux (Freeware) Weblinks DIN 66 261: Sinnbilder für Struktogramme nach Nassi-Shneiderman (http://wwwlrh.fh-bielefeld.de/in_prak/inprak6.htm) Englische Übersicht über Nassi-Shneiderman Webseiten (http://www.rdrop.com/~cary/html/psd.html) Homepage von Ike Nassi (http://www.nassi.com/) Von Kategorien: Softwarearchitektur Programmierung Diagramm Diese Seite wurde zuletzt am 21. April 2007 um 20:35 Uhr geändert. Ihr Inhalt steht unter der GNU-Lizenz für freie Dokumentation. Wikipedia ist eine eingetragene Marke der Wikimedia Foundation Inc.