Watervalmethode
Van Wikipedia
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, implementatie en beheer en onderhoud. Over de oorsprong van de term "waterval" wordt vaak gezegd dat W. W. Royce deze in 1970 introduceerde, maar Royce zag zelf meer in de herhaalde benadering voor software ontwikkeling en gebruikte zelfs niet de term "waterval". Royce beschreef het watervalmodel als een methode die hij gewaagd en zelfs een uitnodiging voor mislukking vond.
Voorheen was het ontwikkelen van vooral grote softwareprojecten een groot onoverzichtelijk breiwerk. Met de komst van deze nieuwe methode hoopten de informaticabedrijven meer duidelijkheid te krijgen in hun 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 je het project in verschillende fasen opdeelt. Je begint met fase 1 en begint niet eerder met fase 2 dan wanneer je fase 1 hebt afgesloten. En wanneer je in een van de fasen een fout ontdekt moet je helemaal terug om die fase te corrigeren en de daaropvolgende stappen opnieuw uitvoeren.
Inhoud |
[bewerk] Geschiedenis van de watervalmethode
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 (PDF) 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 Royce's intenties om de watervalmethode te veranderen in een herhaalde methode (iterative model), is het gebruik van deze methode nog steeds zeer populair, maar de tegenstanders van de watervalmethode zien het als naïeve en ongeschikte methode voor het gebruik in de "echte wereld".
[bewerk] Fasen
Het watervalmodel bestaat uit de volgende fasen:
- Definitiestudie/analyse. Er wordt onderzoek gedaan naar en gebrainstormd over de software om duidelijk te krijgen wat het doel is van de software.
- Basisontwerp. Er wordt duidelijker uitgewerkt wat er tijdens de eerste fase naar boven is gekomen. In deze fase worden de wensen van de klant op papier gezet en wordt er al gedacht aan de vorm van het programma. In deze fase wordt vastgelegd wat het op te leveren systeem moet doen.
- Technisch ontwerp/detailontwerp. Aan de hand van het basisontwerp kan er een werkelijk programma uitgedacht worden. In deze fase wordt vastgelegd hoe de in het basisontwerp vastgelegde functionaliteit gerealiseerd gaat worden. Nu vindt ook een onderverdeling plaats in technische eenheden zoals programma's, modules en functies.
- Bouw/implementatie. Hier wordt de broncode van de programma's geschreven.
- Testen. Er wordt gecontroleerd of de software goed volgens de ontwerpen is gebouwd. Ook kunnen er in deze fase fouten boven water komen die al in eerdere stadia gemaakt zijn.
- Integratie. Het systeem is klaar en getest. Toch zal het nog in het bedrijf in gebruik genomen moeten worden. Dat wordt gedaan in deze fase.
- Beheer en onderhoud. Om er voor te zorgen dat het systeem het blijft doen zal er onderhoud verricht moeten worden.
Het waterval model bestaat uit verschillende fasen. Iedere fase heeft een eigen niveau dat tevens de volgorde bepaald. 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.
[bewerk] Voordelen
- Wanneer in het begin van het project fouten worden ontdekt, kost het minder inspanning (en dus tijd en geld) om deze fout te herstellen. Bij het watervalmodel wil men alle fasen eerst goed afsluiten voordat men verder gaat met de volgende fase. Men gaat er vanuit dat de fasen altijd goed zijn voordat men verder gaat met een volgende fase.
- Bij het watervalmodel legt men de nadruk op documentatie. In de nieuwere software ontwikkelings methoden maakt men minder documentatie. Dit heeft tot gevolg dat als er nieuwe mensen in het project opgenomen worden en er mensen weggaan het lastig is om de kennis over te dragen. Dit nadeel heeft de klassieke watervalmethode niet.
- Het is een rechttoe-rechtaan methode. De manier van werken zorgt ervoor dat er zich concrete fasen vormen. Hierdoor weet men in welke fase zij zit.
- Men kan in deze methode gebruikmaken van mijlpalen. Mijlpalen kunnen worden gebruikt om de voortgang van het project in te schatten.
- De watervalmethode is erg bekend. Veel mensen hebben er ervaring mee, dus kunnen er gemakkelijk mee gaan werken.
[bewerk] Nadelen
Er zijn een aantal nadelen van deze manier om software te ontwikkelen.
- Veel software projecten zijn afhankelijk van externe factoren. De opdrachtgever is een hele belangrijke externe factor. Vaak zullen de requirements gedurende de loop van het project wijzigen, omdat de opdrachtgever iets anders wil. Het is dus een nadeel dat de watervalmethode er van uit gaat dat de requirements niet veranderen tijdens het project. Wanneer in de bouwfase een requirement veranderd, moeten een heel aantal fases opnieuw gemaakt worden.
- Het is erg moeilijk om de benodigde tijd en de kosten te schatten. De fasen zijn erg groot, het is daarom erg lastig om in te schatten hoeveel elke fase kost.
- In een aantal nieuwe methoden zijn bijna alle aspecten van een software ontwikkelings traject opgenomen. Je kan denken aan plannings technieken, project management methoden en hoe de projectorganisatie ingericht moet worden.
- Bij veel software projecten werken verschillende mensen aan de verschillende fasen van het project. Bijvoorbeeld: de ontwerpers en de bouwers. Ze hebben allemaal een andere kijk op het project: zo kijken ontwerpers anders tegen het project aan dan de bouwers. Omgekeerd zullen de bouwers ook vaak anders tegen het ontwerp van de ontwerpers aankijken dan de ontwerpers zelf. Vaak is het zo dat het ontwerp weer aangepast zal moeten worden. Hier is de waterval methode niet voor gemaakt.
- Binnen het project zijn de verschillende teamleden vaak gespecialiseerd. Het ene teamlid zal zich alleen in de eerste fase bezig houden met het ontwerpen, terwijl de bouwers alleen in bouwfase helpen aan het bouwen van het project. Dit kan leiden tot verspilling van verschillende bronnen. De belangrijkste bron is wel de tijd. Een voorbeeld: de ontwerpers zijn bezig met het perfectioneren van het ontwerp. De bouwers kunnen in principe al beginnen met bouwen, maar omdat ze werken met het watervalmodel moeten ze wachten totdat de eerste fase is afgesloten. Dit een typisch voorbeeld van tijdsverspilling.
- Wanneer frequent gedeelten van het software product worden opgeleverd geeft dit de klant vertrouwen, maar ook het software ontwikkelingsteam.
- Het testen gebeurt pas in één van de laatste fasen van het project. Bij veel andere software ontwikkelings methoden wordt er getest zodra er één bepaald deelproduct klaar is en ook wordt er op het laatst een integratie test gedaan.
- Doordat er zoveel nadruk wordt gelegd op documentatie, is de watervalmethode niet efficiënt voor kleinere projecten. Er zit dan te veel werk om het project zelf heen qua documentatie.
[bewerk] Vernieuwde watervalmethoden
Om zoveel mogelijk gebruik te maken van de voordelen en zo weinig mogelijk last te hebben van de nadelen zijn er een aantal vernieuwde watervalmethoden ontwikkeld. Hieronder worden er een aantal genoemd.
[bewerk] Royce's model
Het Royce's model beschrijft dat het verkeerd is dat er bij de watervalmethode niet terug gegaan 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.
[bewerk] Het "sashimi" model
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. (Zie een nadeel.) 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 waterval methode 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.
[bewerk] Aorta lifecycle-model
Dit is een vernieuwd model en wordt na elke cyclus een terugkoppeling gegeven naar de klant.Aorta lifecycle-model