thumb|400px|Voorbeeld van een PSD Een programmastructuur-diagram (soms geschreven als: Programma Structuur Diagram), afgekort tot PSD, is een schematechniek ter voorbereiding op het programmeren van software. Een programmastructuur-diagram wordt ook wel een Nassi-Shneiderman-diagram genoemd.
Het PSD ontstond in 1972 en werd voor het eerst beschreven in 1973 door Isaac Nassi en Ben Shneiderman.: "A short history of structured flowcharts (Nassi-Shneiderman Diagrams)", ontwerpversie 27 mei 2003.: "Flowchart techniques for structured programming", SIGPLAN Notices XII, August 1973 (pdf). Een PSD is een schema dat de samenhang — de structuur — van instructies binnen een programma weergeeft. PSD’s bestaan uit:
Rechthoeken Driehoeken Tekst
Deze elementen worden benut ter voorbereiding op het coderen in een programmeertaal. Ze zijn programmeertaalonafhankelijk. Bovendien gelden er geen strenge taalregels; de probleemoplossing staat centraal. Voor het creëren en bewerken van programmastructuur-diagrammen bestaan zowel open-source programma's als commerciële producten.
Algoritme We spreken in dit verband wel van een algoritme: een set regels in een bepaalde volgorde om een probleem op te lossen.
De algoritme om van een probleem tot een programma te komen, ziet er als volgt uit:
Probleemstelling Analyse Schematische oplossing Het schrijven van de broncode Compileren
Basisstructuren Bij PSD’s zijn er slechts drie basisstructuren. Als deze op de juiste manier worden gecombineerd, kan hiermee elk willekeurig computerprogramma worden beschreven. De basisstructuren zijn:
Sequentie Bij de opeenvolging of sequentie volgen alle stappen van het algoritme elkaar een voor een op. --Titel-- Var1=LEES(“De gebruiker moet iets invullen”) Var2=LEES(“De gebruiker moet iets invullen”) Var3=Var1 & Var2SCHRIJF(“De samenvoeging van de twee ingaven van de gebruiker is: “ & Var3)
“LEES”: gebruiker krijgt een vraag/opdracht, het resultaat is een variabele opgeslagen in het geheugen.
“SCHRIJF”: zet iets op het scherm van de gebruiker.
“Variabele”: geheugenplaats.
“=” is de toekenningsoperator of het toekenningsteken.
Iteratie Iteratie of herhaling staat voor de mogelijkheid om via bijvoorbeeld een while-lus een aantal bewerkingen te herhalen tot aan de voorwaarde voor de lus niet meer voldaan wordt en het programma dus verdergaat.
Selectie Selectie-structuren worden ook wel aangeduid met de term keuze. Bij de behandeling van deze structuren, moet een keuze gemaakt worden welke weg het programma uitgaat (keuze tussen verschillende bewerkingen of handelingen)
Ondersteuning Verschillende softwareprogramma's bieden ondersteuning voor Nassi-Shneiderman-diagrammen: STRUCTORIZER is een open-source programma in Java dat specifiek voor het maken en bewerken van Nassi-Shneiderman-diagrammen dient.STRUCTORIZER. Code::Blocks is een open-source IDE voor C en C++ die dankzij een plug-in Nassi-Shneiderman-diagrammen kan genereren uit programmacode.Code::Blocks-wiki: NassiShneiderman plugin. struktor is een open source Java-applet waarmee men structogrammen kan bewerken en uitvoeren.Kim Neunert: struktor: a Nassi–Shneiderman diagram editor and executor in Java (broncode op GitHub)learn2prog - Struktogramme zeichnen und ablaufen lassen. Nessi is een open source editor voor Nassi-Shneiderman-diagrammen in Java.Nessi (gearchiveerd). Moritz is een open-source uitbreiding voor Doxygen die Nassi–Shneiderman-diagramman kan genereren uit functies in C of C++.Moritz Struktogramme.dot is een gratis template voor Microsoft Word waarmee men structogrammen kan maken en bewerken.Datenspeicher Wald 2 (DSW2): Struktogramme. Nassi-Shneiderman-Diagramm (Word Vorlage): een template voor Microsoft Word voor Nassi-Shneiderman-diagrammen.core23: Projekt: Nassi-Shneiderman-Diagramm (Word Vorlage) (gearchiveerd). struktex is een LaTeX-pakket voor Nassi-Shneiderman-diagrammen.struktex. nassflow is een LaTeX-pakket voor Nassi-Shneiderman-diagrammen.nassflow. PyNassi is een open source editor en debugger voor Nassi-Shneiderman-diagrammen in Python 2.3.Ingo Linkweiler: PyNassi.Ingo Linkweiler: PyNassie: downloadpagina. Struktogrammeditor is een gratis editor voor structogrammen in Java.Struktogrammeditor. NSD-Editor is een open-source programma in Borland Delphi waarmee men Nassi-Shneiderman-diagrammen kan tekenen en dat hieruit programmacode in C en Pascal kan genereren.University of Fribourg (Zwitserland) - Department of Informatics: NSD-Editor Nassi-Shneiderman Diagram-Editor: Student project of Marcel Kalt (gearchiveerd). StruktoGraaf is een commerciële editor voor structogrammen.Sichemsoft V.o.F.: StruktoGraaf. SmartDraw is een programma om allerlei soorten diagrammen te tekenen.SmartDraw: "Introduction to Nassi-Shneiderman - Nassi-Shneiderman Diagrams - SmartDraw Tutorials". EasyCODE is een commerciële programmeeromgeving voor o.a. C/C++, Java en COBOL waarin men ook Nassi-Shneiderman-diagrammen kan aanmakenEasyCODE GmbH: EasyCODE: Implementation with structure diagrams. Atego X32 is een commerciële programmeeromgeving voor o.a. C/C++, C#, Java en Pascal waarin men ook Nassi-Shneiderman-diagrammen (Duits: "Struktogramme") kan aanmaken.Atego: Atego X32 und X32plus. Edraw Flowchart is een editor voor allerlei soorten diagrammen, waaronder ook Nassi-Shneiderman-diagrammen.EdrawSoft: Nassi-Shneiderman Diagram Software.
Gebruik In Duitsland werden Nassi–Shneiderman-diagrammen in 1985 gestandaardiseerd als DIN 66261.Deutsches Institut für Normung e. V. (DIN): DIN 66261: Informationsverarbeitung; Sinnbilder für Struktogramme nach Nassi-Shneiderman. De diagrammen worden nog steeds gebruikt in Duitse introducties tot softwareontwikkeling, bijvoorbeeld de introductie in C van Böttcher en Kneißl: Informatik für Ingenieure: Grundlagen und Programmierung in C. 3de uitgave. München: Oldenbourg, 2012. . Zie vooral hoofdstuk 10: "Kontrollstrukturen" (control flow)., introductie in C van Baeumle-Courth en Schmidt: Praktische Einführung in C. München: Oldenbourg, 2012. . Zie vooral hoofdstuk 6: "Kontrollstrukturen" (control flow). en de inleiding tot C# van Kirch: C# lernen und professionell anwenden. Heidelberg: mitp, 2009. . Zie vooral hoofdstuk 5: "Schleifen und Verzweigungen" (lussen en vertakkingen)..
Nassi–Shneiderman-diagrammen kunnen ook in technische documentatie gebruikt worden.: "Visualizing a Procedure with Nassi-Schneiderman Charts", Journal of Technical Writing and Communication, Vol. 20, Nr. 3 (1990): 237-54, .
Externe links Jülich Supercomputing Centre (JSC): "Generation of Nassi-Shneiderman Diagrams under Unix with nassi", 30.10.2012 (gearchiveerd). Shneiderman, Ben: "A short history of structured flowcharts", ontwerpversie, 27 mei 2003. Yoder, Cornelia M; Schrag, Marilyn L.: "Nassi-Shneiderman Charts: An Alternative to Flowcharts for Design". Proceedings, ACM SIGSOFT/BIGMETRICS Software and Assurance Workshop, November 1978 (pdf). Nicholas Hebb: "How to Create a Nassi-Shneiderman Diagram in Excel" (zonder datum).
Noten
Categorie:Software engineering Categorie:Diagram