Warnier-voorstelling

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

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.

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 tenslotte het programma dat een fusie is van beide; Wat bij invoer stond, worden read-instructie, 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

Literatuur[bewerken]

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

Zie ook[bewerken]

Externe links[bewerken]