Warnier-voorstelling

De Warnier-voorstelling is een methode om gestructureerd te programmeren die beschreven werd door de Franse informaticus Jean-Dominique Warnier en de Amerikaanse informaticus Kenneth Orr. Aan de hand van de gegevensstroom wordt een programma opgebouwd. Bij de voorstelling hiervan wordt gebruikgemaakt van accolades. De methode vertoont grote gelijkenissen met de Jackson Structured Programming, maar kan makkelijker uitgetypt worden.[1]

Voorbeeld

bewerken

Een bestand geeft weer hoeveel geld er voor het goede doel werd geschonken, gesorteerd per provincie en per gemeente:

Antwerpen       * Lier      * 3445,98 * Scouts-Lier
Antwerpen       * Berchem   * 2555,98 * Scouts-Berchem
Antwerpen       * Berchem   *  559,80 * Chiro-Berchem
Vlaams Brabant  * Leuven    * 4567,77 * Chiro-Leuven
Vlaams Brabant  * Halle     *  778,77 * Chiro-Halle
Vlaams Brabant  * Vilvoorde *  367,77 * Chiro-Vilvoorde
Oost-Vlaanderen * Gent      *  456,34 * anonieme schenker

Graag zouden we een overzicht produceren met hoeveel er per provincie werd geschonken:

-provincie Antwerpen:
--Lier:      * 3445,98
--Berchem:   * 3115,78
-provincie Vlaams Brabant:
--Leuven:    * 4567,77
--Halle:     *  778,77
--Vilvoorde: *  367,77
-Oost-Vlaanderen:
--Gent:      *  456,34

Een Warnier-diagram zal eerst de invoer beschrijven:

{provincie (*) {stad (*)      {schenker (*) {bedrag

Daarna de uitvoer:

{              {provincienaam
{provincie (*) {stad (*)      {totaalbedrag per stad
{              {

En ten slotte het programma dat een fusie is van beide: wat bij invoer stond, worden read-instructies, wat bij uitvoer stond, worden write-instructies.

Vuistregels

bewerken

Volgens Warnier bestaat het schrijven van een logisch foutloos programma uit volgende stappen, onafhankelijk van de programmeertaal die gebruikt wordt:

  1. Beschrijf eerst de vorm van de gegeven invoer en de gewenste uitvoer.
  2. Beschrijf op basis daarvan de ruwe programmastructuur aan de hand van de basisconstructies (zie hieronder) sequentie, selectie en iteratie. Vermijd het gebruik van sprongen (goto). (Dit leidt tot moeilijk te begrijpen programma's, en bovendien kan aangetoond worden dat alle programmaflows met de drie basisconstructies kunnen beschreven worden.)
  3. Vul aan met voorwaarden. (IF/UNTIL/WHILE)
  4. Schrijf de input- en output-instructies op de gewenste plaatsen. (OPEN/READ/WRITE/CLOSE)
  5. Vul aan met tellers en variabelen naar wens (totaal, subtotaal, aantal, ...)

Basisconstructies

bewerken

Sequentie

bewerken

Hiervoor worden de opeenvolgende zaken onder elkaar achter dezelfde accolade geschreven:

{sta op
{eet ontbijt
{werk thuis
{eet middagmaal
{werk elders
{eet avondmaal
{slaap

Selectie

bewerken

Tussen de verschillende mogelijkheden (van een If(... then else...)/Eval/CASE/Switch/...-constructie) wordt een (x) geschreven

{(WHEN geslacht = 'M')
{man
{ (x)
{(WHEN geslacht = 'V')
{vrouw
{ (x)
{(WHEN OTHER)
{onbekend

Iteratie

bewerken

Na de te herhalen stap wordt een (*) geschreven voor een iteratie, of een (+) voor een repetitie. De stopvoorwaarde wordt eronder geschreven tussen ronde haken.

{moeder
{kinderen (*)
{(UNTIL geen kinderen meer)
{vader

Zie ook

bewerken

Literatuur

bewerken
  • James A. Senn, Analysis & Design of Information Systems, 2nd ed., McGraw-Hill Publishing Company
bewerken