Programmastructuur-diagram

Uit Wikipedia, de vrije encyclopedie
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[1][2]. 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[bewerken | brontekst bewerken]

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:

  1. Probleemstelling
  2. Analyse
  3. Schematische oplossing
  4. Het schrijven van de broncode
  5. Compileren

Basisstructuren[bewerken | brontekst bewerken]

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[bewerken | brontekst bewerken]

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 & Var2
SCHRIJF(“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[bewerken | brontekst bewerken]

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[bewerken | brontekst bewerken]

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[bewerken | brontekst bewerken]

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.[3]
  • Code::Blocks is een open-source IDE voor C en C++ die dankzij een plug-in Nassi-Shneiderman-diagrammen kan genereren uit programmacode.[4]
  • struktor is een open source Java-applet waarmee men structogrammen kan bewerken en uitvoeren.[5][6]
  • Nessi is een open source editor voor Nassi-Shneiderman-diagrammen in Java.[7]
  • Moritz is een open-source uitbreiding voor Doxygen die Nassi–Shneiderman-diagramman kan genereren uit functies in C of C++.[8]
  • Struktogramme.dot is een gratis template voor Microsoft Word waarmee men structogrammen kan maken en bewerken.[9]
  • Nassi-Shneiderman-Diagramm (Word Vorlage): een template voor Microsoft Word voor Nassi-Shneiderman-diagrammen.[10]
  • struktex is een LaTeX-pakket voor Nassi-Shneiderman-diagrammen.[11]
  • nassflow is een LaTeX-pakket voor Nassi-Shneiderman-diagrammen.[12]
  • PyNassi is een open source editor en debugger voor Nassi-Shneiderman-diagrammen in Python 2.3.[13][14]
  • Struktogrammeditor is een gratis editor voor structogrammen in Java.[15]
  • 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.[16]
  • StruktoGraaf is een commerciële editor voor structogrammen.[17]
  • SmartDraw is een programma om allerlei soorten diagrammen te tekenen.[18]
  • EasyCODE is een commerciële programmeeromgeving voor o.a. C/C++, Java en COBOL waarin men ook Nassi-Shneiderman-diagrammen kan aanmaken[19]
  • 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.[20]
  • Edraw Flowchart is een editor voor allerlei soorten diagrammen, waaronder ook Nassi-Shneiderman-diagrammen.[21]

Gebruik[bewerken | brontekst bewerken]

In Duitsland werden Nassi–Shneiderman-diagrammen in 1985 gestandaardiseerd als DIN 66261.[22] De diagrammen worden nog steeds gebruikt in Duitse introducties tot softwareontwikkeling, bijvoorbeeld de introductie in C van Böttcher en Kneißl[23], introductie in C van Baeumle-Courth en Schmidt[24] en de inleiding tot C# van Kirch[25].

Nassi–Shneiderman-diagrammen kunnen ook in technische documentatie gebruikt worden.[26]

Externe links[bewerken | brontekst bewerken]

Noten[bewerken | brontekst bewerken]

  1. (en) Shneiderman, Ben: "A short history of structured flowcharts (Nassi-Shneiderman Diagrams)", ontwerpversie 27 mei 2003.
  2. (en) Nassi, I.; Shneiderman, B.: "Flowchart techniques for structured programming", SIGPLAN Notices XII, August 1973 (pdf).
  3. (en) STRUCTORIZER.
  4. (en) Code::Blocks-wiki: NassiShneiderman plugin.
  5. Kim Neunert: struktor: a Nassi–Shneiderman diagram editor and executor in Java (broncode op GitHub)
  6. (de) learn2prog - Struktogramme zeichnen und ablaufen lassen.
  7. (en) Nessi (gearchiveerd).
  8. (de) Moritz
  9. (de) Datenspeicher Wald 2 (DSW2): Struktogramme.
  10. (de) core23: Projekt: Nassi-Shneiderman-Diagramm (Word Vorlage) (gearchiveerd).
  11. (de) (en) struktex.
  12. (en) nassflow.
  13. (de) Ingo Linkweiler: PyNassi.
  14. (en) Ingo Linkweiler: PyNassie: downloadpagina.
  15. (de) Struktogrammeditor.
  16. (en) University of Fribourg (Zwitserland) - Department of Informatics: NSD-Editor Nassi-Shneiderman Diagram-Editor: Student project of Marcel Kalt (gearchiveerd).
  17. (nl) Sichemsoft V.o.F.: StruktoGraaf.
  18. (en) SmartDraw: "Introduction to Nassi-Shneiderman - Nassi-Shneiderman Diagrams - SmartDraw Tutorials".
  19. (de) (en) EasyCODE GmbH: EasyCODE: Implementation with structure diagrams.
  20. Atego: Atego X32 und X32plus.
  21. (en) EdrawSoft: Nassi-Shneiderman Diagram Software.
  22. (de) Deutsches Institut für Normung e. V. (DIN): DIN 66261: Informationsverarbeitung; Sinnbilder für Struktogramme nach Nassi-Shneiderman.
  23. (de) Böttcher, Axel; Kneißl, Franz: Informatik für Ingenieure: Grundlagen und Programmierung in C. 3de uitgave. München: Oldenbourg, 2012. ISBN 978-3-486-70527-0. Zie vooral hoofdstuk 10: "Kontrollstrukturen" (control flow).
  24. (de) Baeumle-Courth, Peter; Schmidt, Torsten: Praktische Einführung in C. München: Oldenbourg, 2012. ISBN 978-3-486-70799-1. Zie vooral hoofdstuk 6: "Kontrollstrukturen" (control flow).
  25. (de) Kirch, Ulla: C# lernen und professionell anwenden. Heidelberg: mitp, 2009. ISBN 978-3-8266-5915-7. Zie vooral hoofdstuk 5: "Schleifen und Verzweigungen" (lussen en vertakkingen).
  26. (en) Weiss, Edmond H.: "Visualizing a Procedure with Nassi-Schneiderman Charts", Journal of Technical Writing and Communication, Vol. 20, Nr. 3 (1990): 237-54, DOI:10.2190/0UVT-TWMK-LN59-U.