Iterative development

Sven-Olof Nyström
OOP med Java våren -25
Informationsteknologi
Uppsala Universitet

Iterative development, rational unified process

Iterative development (ID) är en utvecklingsmodell som är avsedd att undvika problemen med vattenfallsmodellen.

Man kan tänka sig att ID passar bäst i större företag, med stora projekt och många människor inblandade. ID ger ledningen möjlighet att kontrollera projektet och följa dess genomförande. Det finns också goda möjligheter att hantera tekniska svårigheter som dyker upp under projektet (tex avseende prestanda).

Iterativ utveckling

Dela upp projektet i iterationer av fast längd. Längden på en iteration beror av projektets och projektgruppens storlek; för en grupp på fyra personer är en iterationslängd om 1-2 veckor rimlig, med 150 medarbetare kan en iteration behöva ta 6 månader.

Varje iteration ska resultera i körbar kod.

Om du inte blir klar med allt du planerat för en iteration, minska iterationens omfattning, skjut ej på deadlines.

Varje iteration är ett litet projekt. Det kan genomföras som ett vattenfall i miniatyr eller med andra metoder.

Varje iteration kan välja att återanvända kod från den tidigare iterationen eller att skriva ny kod.

Iterationerna grupperas i faser

Iterationerna grupperas i faser, där olika faser har olika mål.

Ungefärlig arbetsfördelning mellan faser

Inception

En stor del av arbetet i denna fas svarar mot "analys" i vattenfallsmodellen.

Målet är att ta fram en prototyp. Frågor som bör besvaras är

Förhoppningen är förstås att projektet kan genomföras. Men om riskerna och kostnaderna visar sig vara stora i förhållande till projektets värde kan det vara rimligt att inte gå vidare.

Elaboration

Målen är att

Den prototyp som utvecklas bör ha en arkitektur som avspeglar strukturen hos det system vi planerar att bygga. Den ska innehålla bitar av alla delar av det färdiga systemet. Kritiska delar är förstås särskilt viktiga.

I planering av iterationer i denna fas, ta hänsyn till

Konstruktion

I konstruktionsfasen implementerar man de återstående delarna av systemet. Förhoppningsvis dyker inga obehagliga överraskningar upp här. Målet är ett fungerande system som kan levereras.

Transition

Här levereras systemet till kund. Vi kontrollerar att systemet uppfyller användarnas förväntningar. Vi lär ut användning av det nya systemet. Vi trimmar in produkten för att uppnå ett användarvänligt system med goda prestanda. Målet är ett system som uppfyller projektets visioner.

Vad vinner man med ID