Az iteratív modellben az iteratív folyamat a szoftverkövetelmények egy kis halmazának egyszerű megvalósításával kezdődik, és iteratív módon fejleszti a fejlődő változatokat, amíg a teljes rendszer megvalósul és készen áll a bevezetésre.
Az iteratív életciklus-modell nem próbál a követelmények teljes specifikációjával kezdeni. Ehelyett a fejlesztés a szoftver csak egy részének meghatározásával és megvalósításával kezdődik, amelyet aztán felülvizsgálnak a további követelmények azonosítása érdekében. Ezt a folyamatot ezután megismétlik, és a modell minden egyes iterációjának végén a szoftver új verzióját állítják elő.
Iteratív modell – tervezés
Az iteratív folyamat a szoftverkövetelmények egy részhalmazának egyszerű megvalósításával kezdődik, és iteratív módon fejleszti a fejlődő változatokat, amíg a teljes rendszer meg nem valósul. Minden egyes iteráció során tervezési módosítások történnek, és új funkcionális képességek kerülnek hozzáadásra. A módszer alapgondolata, hogy a rendszert ismétlődő ciklusokon keresztül (iteratív) és egyszerre kisebb részekben (inkrementális) fejlesztjük.
A következő ábra az iteratív és inkrementális modell ábrázolása –
Az iteratív és inkrementális fejlesztés az iteratív tervezés vagy iteratív módszer és a fejlesztés inkrementális építési modelljének kombinációja. “A szoftverfejlesztés során a szoftverfejlesztési ciklus egynél több iterációja is folyamatban lehet egyidejűleg”. Ez a folyamat “evolúciós beszerzés” vagy “inkrementális építés” megközelítésként írható le.”
Ez inkrementális modellben a teljes követelményt különböző építésekre osztják fel. Minden egyes iteráció során a fejlesztési modul végigmegy a követelmények, a tervezés, a megvalósítás és a tesztelés fázisain. A modul minden egyes következő kiadása funkcióval egészíti ki az előző kiadást. A folyamat addig folytatódik, amíg a teljes rendszer el nem készül a követelménynek megfelelően.
Az iteratív szoftverfejlesztési életciklus sikeres alkalmazásának kulcsa a követelmények szigorú validálása, és a szoftver minden egyes verziójának a modell minden egyes ciklusán belüli, e követelményekkel szembeni verifikációs & tesztelése. Ahogy a szoftver az egymást követő ciklusokon keresztül fejlődik, a teszteket meg kell ismételni és ki kell terjeszteni a szoftver minden egyes verziójának ellenőrzésére.
Iteratív modell – Alkalmazás
A többi SDLC-modellhez hasonlóan az iteratív és inkrementális fejlesztésnek is van néhány speciális alkalmazása a szoftveriparban. Ezt a modellt leggyakrabban a következő forgatókönyvekben használják –
-
A teljes rendszer követelményei világosan meghatározottak és érthetőek.
-
A főbb követelményeket meg kell határozni, azonban egyes funkciók vagy kért fejlesztések idővel fejlődhetnek.
-
Létezik a piackorlátozás.
-
Új technológiát használnak, és azt a fejlesztőcsapat a projekt munkája során megtanulja.
-
A szükséges készségekkel rendelkező erőforrások nem állnak rendelkezésre, és a tervek szerint szerződéses alapon veszik igénybe őket bizonyos iterációkhoz.
-
Vannak olyan magas kockázatú funkciók és célok, amelyek a jövőben változhatnak.
Iteratív modell – előnyök és hátrányok
Ez a modell előnye, hogy a fejlesztés nagyon korai szakaszában már van egy működő modell a rendszerről, ami megkönnyíti a funkcionális vagy tervezési hibák megtalálását. A problémáknak a fejlesztés korai szakaszában történő megtalálása lehetővé teszi, hogy korlátozott költségvetés mellett javító intézkedéseket tegyünk.
A hátránya ennek az SDLC-modellnek, hogy csak nagy és terjedelmes szoftverfejlesztési projektekre alkalmazható. Ennek oka, hogy egy kis szoftverrendszert nehéz további kis, használható inkrementumokra/modulokra bontani.
Az iteratív és inkrementális SDLC modell előnyei a következők –
-
Egy bizonyos működő funkcionalitás gyorsan és az életciklus korai szakaszában fejleszthető.
-
Eredményeket korán és időszakosan kapunk.
-
Párhuzamos fejlesztés tervezhető.
-
A fejlődés mérhető.
-
Kisebb költséggel jár a terjedelem/követelmények módosítása.
-
A kisebb iterációk során a tesztelés és hibakeresés egyszerű.
-
A kockázatok az iteráció során azonosíthatók és megoldhatók; és minden egyes iteráció egy könnyen kezelhető mérföldkő.
-
Egyszerűbb a kockázatkezelés – a magas kockázatú rész készül el először.
-
Minden inkrementummal működőképes termék kerül átadásra.
-
Az egyes növekményekből azonosított problémák, kihívások és kockázatok felhasználhatók/alkalmazhatók a következő növekményre.
-
A kockázatelemzés jobb.
-
Támogatja a változó követelményeket.
-
Kisebb a kezdeti működési idő.
-
Jobb a nagy és kritikus fontosságú projektekhez.
-
Az életciklus során a szoftver korán elkészül, ami megkönnyíti a vevői értékelést és visszajelzést.
Az iteratív és inkrementális SDLC-modell hátrányai a következők: –
-
Több erőforrásra lehet szükség.
-
A változtatás költségei ugyan kisebbek, de a változó követelményekre nem nagyon alkalmas.
-
Magasabb vezetői figyelmet igényel.
-
Rendszerarchitektúrával vagy tervezéssel kapcsolatos problémák merülhetnek fel, mivel a teljes életciklus elején nem gyűjtenek össze minden követelményt.
-
Az inkrementumok meghatározása a teljes rendszer meghatározását igényelheti.
-
Kisebb projektekhez nem alkalmas.
-
A menedzsment bonyolultabb.
-
A projekt vége nem feltétlenül ismert, ami kockázatot jelent.
-
A kockázatelemzéshez magasan képzett erőforrásokra van szükség.
-
A projekt előrehaladása nagyban függ a kockázatelemzési fázistól.