Waterfall: Ideálny vývojový model pre malý projekt s jasne definovanými míľnikmi
Waterfall: Ideálny vývojový model pre malý projekt s jasne definovanými míľnikmi

Najstarší model SDLC nájde svoje využitie aj dnes.

Waterfall je sekvenčný model zo 70. rokov, ktorý rozdeľuje vývoj softvéru do vopred definovaných fáz. Každá fáza je zameraná na špecifickú činnosť, musí byť dokončená pred začatím tej nasledujúcej a žiadne z fáz sa neprekrývajú.

Kedysi bol tento model veľmi populárny, ale v súčasnosti sa nepoužíva. Má však dôležité miesto v histórii, pretože všetky ostatné modely životného cyklu vývoja softvéru sú odvodené od klasického vodopádového modelu.


Fázy Waterfallu

Systémové a softvérové požiadavky

Cieľom tejto fázy analýzy a špecifikácie požiadaviek je pochopiť presné požiadavky zákazníka, správne ich zdokumentovať a analyzovať. 

 

Analýza

Cieľom analytickej časti je odstrániť neúplnosť (neúplná požiadavka je taká, v ktorej boli niektoré časti skutočných požiadaviek vynechané) a nezrovnalosti (nekonzistentná požiadavka je taká, v ktorej niektorá časť požiadavky odporuje inej časti). Výstupom analýzy je špecifikácia softvérových požiadaviek (Software Requirements Specification - SRS).

 

Design

V tejto fáze prenášame požiadavky získané v SRS do formátu, ktorý je možné kódovať v programovacom jazyku. Systémový dizajn pomáha pri špecifikácii hardvérových a systémových požiadaviek a tiež pomáha pri definovaní celkovej architektúry systému. Na zdokumentovanie tejto fázy používame dokument o návrhu softvéru (Software Design Document).

 

Implementácia

Vo fáze kódovania je návrh softvéru preložený do zdrojového kódu pomocou akéhokoľvek vhodného programovacieho jazyka. Takto je kódovaný každý navrhnutý modul. Cieľom testovacej fázy vrámci implementácie je skontrolovať, či každý modul jednotlivo funguje správne alebo nie.

 

Integrácia a testing

Integrácia rôznych modulov sa vykonáva krátko po kódovaní a testovaní jednotlivých modulov. Počas každého integračného kroku sa do čiastočne integrovaného systému pridajú vopred naplánované moduly a výsledný systém sa otestuje. Nakoniec, po úspešnej integrácii a otestovaní všetkých modulov získame úplný funkčný systém a vykonáme testovanie systému.

 

Deployment a údržba

Po testovaní ide produkt na trh alebo k zákazníkovi. Údržba je najdôležitejšou fázou životného cyklu softvéru. Snaha vynaložená na údržbu predstavuje 60 % celkového úsilia vynaloženého na vývoj úplného softvéru. V zásade existujú tri typy údržby:

Opravná údržba: vykonáva sa na opravu chýb, ktoré neboli objavené počas fázy vývoja produktu.

Zdokonaľovacia údržba: na zlepšenie funkčnosti systému na základe požiadavky zákazníka.

Adaptívna údržba: je zvyčajne potrebná na prenos softvéru, aby fungoval v novom prostredí, ako je napríklad práca na novej platforme alebo s novým operačným systémom.



Výhody použitia Waterfallu

  • Fázy spracovávajú a dokončujú jedna po druhej a neprekrývajú sa
  • Každá fáza v modeli je jasne definovaná
  • Tento model má veľmi jasné a dobre pochopiteľné míľniky
  • Proces, akcie a výsledky sú veľmi dobre zdokumentované
  • Posilňuje dobré návyky: define-before-design, design-before-code
  • Tento model funguje dobre pre menšie projekty a projekty, kde sú požiadavky dobre pochopené.


Tip na článok: Vyvíjaš s tímom nový softvér? Skúste Kanban


Prečo Waterfall nemusí fungovať na tvojom projekte

Žiadna spätná väzba

V klasickom vodopádovom modeli je vývoj softvéru z jednej fázy do druhej ako vodopád. Predpokladá, že vývojári sa v žiadnej fáze nedopustia chyby, a preto neosahuje žiadny mechanizmus na opravu chýb.

 

Ťažko vyhovieť požiadavkám na zmeny

Tento model predpokladá, že všetky požiadavky zákazníkov budú úplne a správne definované na začiatku projektu, ale vieme, že v skutočnosti sa požiadavky zákazníkov časom menia. Po dokončení fázy špecifikácie požiadaviek je tak veľmi ťažké vyhovieť akýmkoľvek požiadavkám na zmenu.

 

Žiadne prekrývanie fáz

Model odporúča, aby sa nová fáza začala až po dokončení predchádzajúcej fázy, ale to sa v reálnych projektoch nedá udržať. Na zvýšenie efektívnosti a zníženie nákladov sa väčšinou fázy prekrývajú.


Tip na článok: Ako dosiahnuť pri kódení flow?

Ďalšie články