De watervalmethode is een methode voor softwareontwikkeling (een proces voor de verwezenlijking van software), waarin de ontwikkeling regelmatig vloeiend naar beneden loopt (als een waterval). De ontwikkeling loopt door een aantal fasen, namelijk: definitiestudie/analyse, basisontwerp, technisch ontwerp/detailontwerp, bouw, testen, integratie en beheer en onderhoud. Met deze methode hoopten de informaticabedrijven meer duidelijkheid te krijgen in hun software-projecten.

Het watervalmodel is afgeleid van de traditionele manier van werken in grote projecten in de constructiebouw. De bedoeling van deze manier van werken is dat het project in verschillende fasen wordt opgedeeld. Men start met fase 1 en begint niet eerder met fase 2 dan wanneer fase 1 is afgesloten. En wanneer in een van de fasen een fout ontdekt wordt, gaat men helemaal terug om die fase te corrigeren en de daaropvolgende stappen opnieuw uit te voeren.

Geschiedenis van de watervalmethode

Over de oorsprong van de term "waterval" wordt vaak gezegd dat Winston W. Royce deze in 1970 introduceerde, maar Royce zag zelf meer in de herhaalde benadering voor softwareontwikkeling en gebruikte zelf niet de term "waterval". Royce beschreef het watervalmodel als een methode die hij gewaagd en zelfs een uitnodiging voor mislukking vond.

In 1970 vond Royce dat de watervalmethode gezien moest worden als eerste concept, hij vond dat er in de methode nog fouten zaten. Hij bracht een document[1] uit waarin onderzocht werd hoe het eerste concept tot een herhaalde methode doorontwikkeld kon worden, In dit nieuwe model zat tussen elke fase een terugkoppeling met de vorige fase, zoals we dat nu veel zien in de huidige methodes. Vervelend voor Royce kreeg alleen de aanvankelijke methode aandacht, de kritiek die hij had op deze methode werd grotendeels genegeerd.

Ondanks Royces intenties om de watervalmethode te veranderen in een herhaalde methode (iteratief model), is het gebruik van deze methode nog steeds zeer populair, maar de tegenstanders van de watervalmethode zien het als een naïeve en ongeschikte methode voor het gebruik in de "echte wereld".

Fasen

Het watervalmodel bestaat uit de volgende fasen:

Het watervalmodel bestaat uit verschillende fasen. Iedere fase heeft een eigen niveau dat tevens de volgorde bepaalt. Het hoogste niveau wordt als eerste uitgevoerd en vervolgens de lagere fasen. Dit is gelijk aan de natuurlijke werking van een waterval en vandaar ook de naam. Hierboven is goed te zien dat de verschillende fasen van boven naar beneden lopen.

Pro en contra

Voordelen

Nadelen

Er zijn een aantal nadelen aan deze manier om software te ontwikkelen.

Vernieuwde watervalmethoden

Om zo veel mogelijk gebruik te maken van de voordelen en zo weinig mogelijk last te hebben van de nadelen is er een aantal vernieuwde watervalmethoden ontwikkeld. Hieronder wordt er een aantal genoemd.

Model van Royce

Het model van Royce beschrijft dat het verkeerd is dat er bij de watervalmethode niet teruggegaan kan worden naar de vorige fase. Vaak zal er in een fase blijken dat er in een vorige fase iets verkeerd is gegaan, het moet dan mogelijk zijn om gemakkelijker naar een vorige fase terug te gaan.

Het "sashimi"-model

Schematisch overzicht van de sashimi-watervalmethode met overlappende fasen...

Het sashimi-model is opgezet door Peter Degrace. De fasen zijn hetzelfde als in het traditionele watervalmodel, alleen nu overlappen de fasen elkaar ook. Door gebruik te maken van deze methode worden er veel minder bronnen verspild. De afbeelding hiernaast geeft weer hoe de fasen elkaar overlappen. Dit is echter een illustratie en dit geeft dus niet de werkelijke overlapping weer qua verhouding. Het verschil met het schematische overzicht van de standaard watervalmethode is dat de fasen deze keer tegen de doorlooptijd afgedrukt zijn. Dit betekent dat men bijvoorbeeld al begint met het ontwerp terwijl de analyse nog bezig is. Dit betekent ook dat men terug kan vallen op de analyse in de ontwerpfase.

Aorta lifecycle-model

Het Aorta lifecycle-model is een vernieuwd model waarin na elke cyclus terugkoppeling wordt gegeven naar de klant.

V-model

Het V-model is een lineaire softwareontwikkelmethode waarbij evenwichtig aandacht aan ontwikkeling en verificatie besteed wordt.

Zie ook

Referenties

Bronnen

Zie de categorie Waterfall models van Wikimedia Commons voor mediabestanden over dit onderwerp.