V Iterativním modelu iterativní proces začíná jednoduchou implementací malé sady softwarových požadavků a iterativně vylepšuje vyvíjející se verze, dokud není kompletní systém implementován a připraven k nasazení.
Iterativní model životního cyklu se nesnaží začít s úplnou specifikací požadavků. Místo toho vývoj začíná specifikací a implementací pouze části softwaru, která je poté přezkoumána za účelem identifikace dalších požadavků. Tento proces se pak opakuje a na konci každé iterace modelu vzniká nová verze softwaru.
Iterativní model – návrh
Iterativní proces začíná jednoduchou implementací podmnožiny požadavků na software a iterativně vylepšuje vyvíjené verze, dokud není implementován celý systém. V každé iteraci se provádějí úpravy návrhu a přidávají se nové funkční schopnosti. Základní myšlenkou této metody je vyvíjet systém prostřednictvím opakovaných cyklů (iterativně) a po menších částech (inkrementálně).
Následující obrázek je znázorněním iterativního a inkrementálního modelu –
Iterativní a inkrementální vývoj je kombinací iterativního návrhu neboli iterativní metody a inkrementálního modelu sestavování pro vývoj. „Během vývoje softwaru může současně probíhat více než jedna iterace vývojového cyklu softwaru.“ Tento proces lze popsat jako přístup „evolučního získávání“ nebo „přírůstkového sestavování“.“
V tomto inkrementálním modelu je celý požadavek rozdělen do různých sestavení. Během každé iterace prochází vývojový modul fázemi požadavků, návrhu, implementace a testování. Každá následující verze modulu přidává funkce k předchozí verzi. Proces pokračuje, dokud není kompletní systém připraven podle požadavku.
Klíčem k úspěšnému použití iterativního životního cyklu vývoje softwaru je důsledné ověřování požadavků a ověřovací & testování každé verze softwaru podle těchto požadavků v rámci každého cyklu modelu. Jak se software vyvíjí v dalších cyklech, musí se testy opakovat a rozšiřovat, aby se ověřila každá verze softwaru.
Iterativní model – aplikace
Stejně jako ostatní modely SDLC má i iterativní a inkrementální vývoj některé specifické aplikace v softwarovém průmyslu. Tento model se nejčastěji používá v následujících scénářích –
-
Požadavky na celý systém jsou jasně definovány a pochopeny.
-
Hlavní požadavky musí být definovány; některé funkce nebo požadovaná vylepšení se však mohou časem vyvíjet.
-
Existuje časové omezení pro trh.
-
Při práci na projektu se používá nová technologie, kterou se vývojový tým učí.
-
Zdroje s potřebnými dovednostmi nejsou k dispozici a plánuje se jejich využití na základě smlouvy pro určité iterace.
-
Existují některé vysoce rizikové funkce a cíle, které se mohou v budoucnu změnit.
Iterativní model – výhody a nevýhody
Výhodou tohoto modelu je, že existuje funkční model systému ve velmi rané fázi vývoje, což usnadňuje hledání funkčních nebo návrhových chyb. Nalezení problémů v rané fázi vývoje umožňuje přijmout nápravná opatření v rámci omezeného rozpočtu.
Nevýhodou u tohoto modelu SDLC je, že je použitelný pouze pro velké a objemné projekty vývoje softwaru. Je to proto, že je obtížné rozdělit malý softwarový systém na další malé provozuschopné přírůstky/moduly.
Výhody iterativního a inkrementálního modelu SDLC jsou následující –
-
Některé funkční funkce lze vyvinout rychle a na počátku životního cyklu.
-
Výsledky se získávají brzy a pravidelně.
-
Lze plánovat paralelní vývoj.
-
Postup lze měřit.
-
Méně nákladné je měnit rozsah/požadavky.
-
Testování a ladění během menší iterace je snadné.
-
Rizika jsou identifikována a řešena během iterace; a každá iterace je snadno zvládnutelným milníkem.
-
Snadnější řízení rizik – vysoce riziková část je provedena jako první.
-
Každým přírůstkem je dodán funkční produkt.
-
Problémy, výzvy a rizika zjištěná z každého inkrementu lze využít/aplikovat na další inkrement.
-
Lepší analýza rizik.
-
Podporuje měnící se požadavky.
-
Počáteční provozní doba je kratší.
-
Vhodnější pro velké a kritické projekty.
-
V průběhu životního cyklu se software vyrábí brzy, což usnadňuje hodnocení a zpětnou vazbu od zákazníka.
Nevýhody iterativního a inkrementálního modelu SDLC jsou následující –
-
Může být zapotřebí více zdrojů.
-
Náklady na změnu jsou sice nižší, ale není příliš vhodný pro měnící se požadavky.
-
Vyžaduje větší pozornost vedení.
-
Mohou vzniknout problémy s architekturou nebo návrhem systému, protože ne všechny požadavky jsou shromážděny na začátku celého životního cyklu.
-
Definice přírůstků může vyžadovat definici celého systému.
-
Není vhodná pro menší projekty.
-
Složitost řízení je větší.
-
Nemusí být znám konec projektu, což představuje riziko.
-
Pro analýzu rizik jsou zapotřebí vysoce kvalifikované zdroje.
-
Postup projektu je velmi závislý na fázi analýzy rizik.
.