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
bewerkenEen 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
bewerkenVolgens Warnier bestaat het schrijven van een logisch foutloos programma uit volgende stappen, onafhankelijk van de programmeertaal die gebruikt wordt:
- Beschrijf eerst de vorm van de gegeven invoer en de gewenste uitvoer.
- 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.)
- Vul aan met voorwaarden. (IF/UNTIL/WHILE)
- Schrijf de input- en output-instructies op de gewenste plaatsen. (OPEN/READ/WRITE/CLOSE)
- Vul aan met tellers en variabelen naar wens (totaal, subtotaal, aantal, ...)
Basisconstructies
bewerkenSequentie
bewerkenHiervoor worden de opeenvolgende zaken onder elkaar achter dezelfde accolade geschreven:
{sta op {eet ontbijt {werk thuis {eet middagmaal {werk elders {eet avondmaal {slaap
Selectie
bewerkenTussen 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
bewerkenNa 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
bewerkenLiteratuur
bewerken- James A. Senn, Analysis & Design of Information Systems, 2nd ed., McGraw-Hill Publishing Company
Externe links
bewerken- (en) Dave Higgins Consulting website
- (en) Ken Orr Institute
- (en) Voorbeelddiagrammen
- ↑ business information management Warnier-Orr diagrams ahmed farahat op engineering-bachelors-degree, 2 november 2015, bezocht 15-10-2020