I den iterative model starter den iterative proces med en simpel implementering af et lille sæt af softwarekrav og forbedrer iterativt de nye versioner, indtil det komplette system er implementeret og klar til at blive implementeret.
En iterativ livscyklusmodel forsøger ikke at starte med en fuldstændig specifikation af kravene. I stedet begynder udviklingen med at specificere og implementere blot en del af softwaren, som derefter gennemgås for at identificere yderligere krav. Denne proces gentages derefter og producerer en ny version af softwaren i slutningen af hver iteration af modellen.
Iterativ model – design
Iterativ proces starter med en simpel implementering af en delmængde af softwarekravene og forbedrer iterativt de udviklende versioner, indtil det fulde system er implementeret. Ved hver iteration foretages designændringer, og der tilføjes nye funktionelle muligheder. Den grundlæggende idé bag denne metode er at udvikle et system gennem gentagne cyklusser (iterativ) og i mindre dele ad gangen (inkrementel).
Den følgende illustration er en repræsentation af den iterative og inkrementelle model –
Iterativ og inkrementel udvikling er en kombination af både iterativt design eller iterativ metode og inkrementel opbygningsmodel for udvikling. “Under softwareudvikling kan der være mere end én iteration af softwareudviklingscyklussen i gang på samme tid.” Denne proces kan beskrives som en “evolutionær anskaffelse” eller “inkrementel build”-tilgang.”
I denne inkrementelle model er hele kravet opdelt i forskellige builds. I hver iteration gennemgår udviklingsmodulet krav-, design-, implementerings- og testfaserne. Hver efterfølgende udgave af modulet tilføjer funktion til den foregående udgave. Processen fortsætter, indtil det komplette system er klar i henhold til kravet.
Nøglen til en vellykket brug af en iterativ softwareudviklingslivscyklus er en streng validering af kravene og verifikation & afprøvning af hver version af softwaren i forhold til disse krav inden for hver cyklus af modellen. Efterhånden som softwaren udvikler sig gennem de på hinanden følgende cyklusser, skal testene gentages og udvides for at verificere hver version af softwaren.
Iterativ model – anvendelse
Lige andre SDLC-modeller har iterativ og inkrementel udvikling nogle specifikke anvendelser i softwareindustrien. Denne model anvendes oftest i følgende scenarier –
-
Krav til det komplette system er klart defineret og forstået.
-
De vigtigste krav skal defineres; nogle funktionaliteter eller ønskede forbedringer kan dog udvikle sig med tiden.
-
Der er en tidsbegrænsning i forhold til markedet.
-
En ny teknologi anvendes og læres af udviklingsteamet, mens det arbejder på projektet.
-
Ressourcer med de nødvendige færdigheder er ikke til rådighed og planlægges anvendt på kontraktbasis til specifikke iterationer.
-
Der er nogle højrisikofunktioner og -mål, som kan ændre sig i fremtiden.
Iterativ model – fordele og ulemper
Førdelen ved denne model er, at der er en fungerende model af systemet på et meget tidligt tidspunkt i udviklingen, hvilket gør det lettere at finde funktionelle eller designmæssige fejl. Hvis man finder problemer på et tidligt tidspunkt i udviklingen, er det muligt at træffe korrigerende foranstaltninger inden for et begrænset budget.
Ulempen ved denne SDLC-model er, at den kun kan anvendes på store og omfangsrige softwareudviklingsprojekter. Det skyldes, at det er svært at opdele et lille softwaresystem i yderligere små brugbare inkrementer/moduler.
Fordelene ved den iterative og inkrementelle SDLC-model er følgende –
-
Den fungerende funktionalitet kan udvikles hurtigt og tidligt i livscyklusen.
-
Resultater opnås tidligt og periodisk.
-
Parallel udvikling kan planlægges.
-
Fremskridt kan måles.
-
Mindre omkostningsfuldt at ændre omfanget/kravene.
-
Test og fejlfinding under mindre iterationer er let.
-
Risici identificeres og løses i løbet af iterationen; og hver iteration er en let håndterbar milepæl.
-
Enklere at håndtere risici – den del med høj risiko udføres først.
-
Med hvert trin leveres et operationelt produkt.
-
Problemer, udfordringer og risici, der identificeres fra hvert trin, kan udnyttes/anvendes på det næste trin.
-
Risikoanalysen er bedre.
-
Det understøtter skiftende krav.
-
Den indledende driftstid er mindre.
-
Bedre egnet til store og missionskritiske projekter.
-
I løbet af livscyklussen produceres software tidligt, hvilket letter kundeevaluering og feedback.
Ulemperne ved den iterative og inkrementelle SDLC-model er følgende –
-
Der kan være behov for flere ressourcer.
-
Og selv om omkostningerne ved ændringer er mindre, er den ikke særlig velegnet til ændrede krav.
-
Der er behov for mere ledelsesopmærksomhed.
-
Systemarkitektur- eller designproblemer kan opstå, fordi ikke alle krav indsamles i begyndelsen af hele livscyklussen.
-
Definition af trin kan kræve definition af det komplette system.
-
Ingen egnet til mindre projekter.
-
Ledelseskompleksiteten er større.
-
Projektets afslutning er måske ikke kendt, hvilket er en risiko.
-
Der kræves højt kvalificerede ressourcer til risikoanalyse.
-
Projekternes fremdrift afhænger i høj grad af risikoanalysefasen.