A vízesésmodell igen jó szolgálatot tett annak tudatosításában, hogy a szoftverfejlesztés nem azonos a programozással. A modell így önmagában a nagy, egyedi rendszerek fejlesztési folyamatának kezelésére alkalmas. Korlátai akkor jelentkeztek, amikor kiderült, hogy a szoftver változási hajlama még az egyedi rendszerek esetén sem szorítható merev fázishatárok közé. A leggondosabb tervezés ellenére is csaknem minden rendszer átadásakor, vagy próbaüzeme során felmerülnek olyan módosítási igények, amelyek még a követelményekre is visszahatnak. Az általános célú, nagypéldányszámú szoftverek esetén a módosítási igények pedig folyamatosan jelentkeznek.
A gyakorlatban a legtöbb szoftver életének nagyobbik részét teszi ki – és a költségek nagyobb részét is igényli – az egyre újabb változatok, verziók előállítása, a módosítások végrehajtása. Ezt a tevékenységet karbantartás (maintenance) néven szokás említeni. Az új szoftver fejlesztése ebben a folyamatban mindössze egy speciális esetet képvisel, az első változat előállítását. Ekkor a "semmiből" hozzuk létre az első verziót, ezt követően pedig a már meglévő változatok módosításával állítjuk elő az újabbakat. Az 1.14. ábrán a szoftver teljes élettartama alatt szükséges anyagi és élőmunka ráfordításokat a kör területe jeleníti meg. Jól látható, hogy az első fejlesztésre a ráfordításoknak csak töredéke esik.
Tekintettel arra, hogy egy változat – főleg az első – önmagában is elég nagy lehet ahhoz, hogy évekig készüljön, a fejlesztés közben megszerzett ismeretek fényében szükségessé válhat a követelmények módosítása. Célszerű lehet ezért egy változatot is több lépésben, alváltozatok egymásutánjaként előállítani. Ezt a folyamatot nevezzük a fejlesztés inkrementális modelljének.
1.14. ábra
Az inkrementális fejlesztés során módunk van arra, hogy a rendszer problematikus részeit fejlesszük ki először. Ha ez sikerrel járt, akkor ehhez hozzáfejleszthetjük az újabb és újabb részeket. A szoftver problematikus részeinek kísérletezésre alkalmas megvalósítását nevezzük prototípusnak.
A tapasztalatok szerint prototípus készítésére kétféle okból lehet szükség:
- nem vagyunk biztosak abban, hogy valamilyen részproblémát adott technikai-gazdasági keretek között meg tudunk oldani,
- a felhasználó nem tudja pontosan meghatározni az elvárásait, vagy nem vagyunk biztosak benne, hogy a követelményeket azonosan értelmezzük.
A szoftverfejlesztői gyakorlatban főként az utóbbi eset gyakori. Korábban elemeztük a fejlesztők és a felhasználók információcseréjének nehézségeit. A félreértések elkerülésének legjobb módja, ha minél előbb be tudjuk mutatni, és kísérletezésre rendelkezésre tudjuk bocsátani a rendszer viselkedését és kezelési stílusát érzékeltető prototípust. Ennek érdekében leggyakrabban a felhasználói felületek készülnek el a prototípus változatban.
Az inkrementális fejlesztési folyamatban tehát – szemben a vízesésmodellel – a rendszer nem egyenletesen fejlődik teljes szélességében, hanem bizonyos részekkel előreszaladunk egészen a megvalósításig, tapasztalatokat szerzünk, és az elkészült részekhez fejlesztjük hozzá a még hiányzókat. A két modell természetesen kombinálható. Egy-egy inkrementum, vagy a prototípus fejlesztése végbemehet a vízesésmodell alapján.

Előző
Előző