Vízesés modell

iDevice ikon

ISO 9001 Biztonságkritikus rendszerek tervezési szemlélete

A vízesés modell megközelítést a 60-as években dolgozták ki az USA haditengerészeténél. Alapvető célja az volt, hogy lehetővé tegye a komplex, katonai szoftverek biztonságos, ellenőrzött kifejlesztését. A vízesés modellben minden fázis végén a projekt csapat felülvizsgálja az adott fázist, majd lezárja azt. A fejlesztés nem folyik tovább, amíg a megrendelő nem elégedett az eredménnyel.

Ha változtatás volt szükséges, amely során az előző állapotra kellett visszalépni, akkor ez költség és időigényes lépés volt. A vízesés metódus formális és dokumentumvezérelt. A projekt során nagyszámú dokumentum előállítása biztosítja a tervezett szoftver működőképességét, robosztusságát, megbízhatóságát. Egy másik sajátossága modellnek a tervezés hangsúlyossága, gondos kivitelezése. Az előre megtervezett rendszer minimalizálja a tervezési időigényt a későbbi fázisokban.

Sok olyan le nem szállított vagy leszállított, de sohasem használt szoftverről tudunk, amelyek esetén a fő gond a specifikáció, követelmények menet közbeni változása volt. Ez az eltérés lehet egészen kismértékű pl. 1%, de ha olyan részét változtatja a rendszernek, amely 1-1 fázis teljes újrakezdését vonja maga után, mert logikailag kell áttervezni, akkor a költségek és a határidők jelentősen megnőhetnek.

A vízesés modell fázisai:

  • Követelmények elemzése és meghatározása (specifikáció)
  • Rendszer- és szoftvertervezés
  • Megvalósítás és egységteszt
  • Teljes rendszertesztelés
  • Üzemeltetés, működtetés és karbantartás

2. ábra  

 

A vízesés modell problémái:

  • Lineáris, így nehéz a visszalépés a felmerülő problémák megoldására, és ez jelentősen megnöveli a javítás költség- és időigényét.
  • Nem kezeli a szoftverfejlesztésben elterjedt iterációkat.
  • Nincs összhangban a szoftverfejlesztés problémamegoldó természetével.
  • Az integráció a teljes folyamat végén, egyben, robbanásszeren történik. A korábban fel nem fedezett hibák ilyenkor hirtelen, együttesen jelennek meg, így felderítésük és javításuk egyaránt nehezebb feladat.
  • A megrendelő csak a folyamat végén láthatja a rendszert, menet közben nincs lehetősége véleményezni azt.
  • A minőség szintén csak a folyamat utolsó fázisában mérhető.
  • Minden egyes fázis az előző fázis teljes befejezésére épít, ezzel jelentősen megnő a kockázat.
  • A fejlesztés során a követelmények nem módosíthatók, hiszen már az életciklus elején befagyasztjuk őket.
  • Már a fejlesztés kezdetén ismernünk kell valamennyi követelményt, azok későbbi módosítására vagy bővítésére nincs lehetőség.
  • Elképzelhető, hogy bár a végtermék megfelel valamennyi specifikációnak, mégsem működik (pl. mert az elvárásokban vannak ellentmondások).
  • Dokumentumvezérelt, és túlzott dokumentálási követelményeket állít fel.
  • Az egész szoftvertermék egy időben készül, nincs lehetőség kisebb részekre osztására.

 

A vízesés modell előnyei:

  • Nemcsak a szoftverfejlesztésnél használható, hanem egyéb végfelhasználói projekteknél is.
  • A jól érthető és kevésbé komplex projektek esetén szabályozottan rögzíti a komplexitást, és jól megbirkózik azzal.
  • Könnyű megérteni.
  • Egyfázisú fejlesztéseknél egyszerű a használata.
  • Strukturáltságot biztosít még a kevésbé képzett fejlesztők számára is.
  • Biztosítja a követelmények rögzítését, és azok nem is változnak a fejlesztés során.
  • Meghatározott sablont biztosít arra vonatkozóan, hogy mely módszereket használjuk az analízis, tervezés, kódolás, tesztelés és üzemeltetés során.
  • Feszes ellenőrzést biztosít.
  • Ha jól alkalmazzuk, a hibák már valamely korai fázisban kiderülnek, amikor javításuk még lehetséges, és kevésbé költségigényes.
  • A projekt menedzser számára könnyű a tervezés és a szereplők kiválasztása.
  • Ha valaki készen van az adott fázisban rá kiosztott munkával, másik projekten dolgozhat, míg a többiek is elérik a fázis lezárásához szükséges állapotot.
  • A mérföldkövei könnyen érthetőek.
  • Könnyű ellenőrizni a projekt aktuális állapotát.