Iterativ utveckling Sven-Olof Nyström
Iterative development, rational unified
process
Motivation
• Vill kontrollera utvecklingen
• försäkra oss om att rätt uppgift löses
• problemet blir klart i tid
• förutse tekniska svårigheter (tex avseende prestanda)
Objectorienterad programmering Sida 1
Iterativ utveckling Sven-Olof Nyström
Önskemål, under projektets gång
• vill kunna följa projektets fortskridande
• upptäcka problem på ett tidigt skede
• försäkra sig om att projektet är relevant för kunden
• förändra projektets inriktning om det visar sig nödvändigt, av affärskäl eller tekniska skäl
Objectorienterad programmering Sida 2
Iterativ utveckling Sven-Olof Nyström
Vilka problem kan uppstå?
Analys: Vi löser fel problem (slarvig analys, missförstånd, kunden vet inte vad han vill ha, när projektet är klart har världen förändrats)
Design: Typisk situation: vissa aspekter får för mycket uppmärksamhet, andra ignoreras
Underskattar (eller överskattar) prestandaproblem, en lösning som är onödigt svår att implementera, som ej tar hänsyn till vissa aspekter till problemet
Implementation: Lösningar fördröjs eller håller för dålig kvalitet, missförstånd leder till att fel uppgift löses.
Objectorienterad programmering Sida 3
Iterativ utveckling Sven-Olof Nyström
Iterationer
Dela upp projektet av iterationer av fast längd. (några dar till flera månader, beroende på projektets storlek)
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 ska vara ett vattenfall i miniatyr
Objectorienterad programmering Sida 4
Iterativ utveckling Sven-Olof Nyström
Faser
Inception: Definiera produkten (1 iteration)
Elaboration: Proof of concept. Arkitektur, identifiera risker och visa att de kan hanteras (2)
Implementation. Bygg kärnan och de "svåra" sakerna först (3)
Transition. Lämna över systemet till kund. (2)
Objectorienterad programmering Sida 5
Iterativ utveckling Sven-Olof Nyström
Arbetsfördelning mellan faser
Inception Elaboration Construction Transition
Deployment Test Implementation
Design Requirements Business Modeling
Iter 0 Iter 2Iter 1 Iter 3 Iter 4 Iter 5 Iter 6 Iter 7
Phases
Objectorienterad programmering Sida 6
Iterativ utveckling Sven-Olof Nyström
Inception
En stor del av arbetet svara mot "analys" i vattenfallsmodellen
Ta fram en prototyp Vad är det vi ska bygga?
Är det genomförbart?
Vad kommer det (ungefär) att kosta?
Ska vi gå vidare?
Objectorienterad programmering Sida 7
Iterativ utveckling Sven-Olof Nyström
Elaboration
Till stor del: "analys" och "design"
I planering av iterationer, ta hänsyn till risker (tekniska och andra)
täckning (så att alla delar av systemet berörs) vilka funktioner är kritiska
Objectorienterad programmering Sida 8
Iterativ utveckling Sven-Olof Nyström
Vad vinner man med ID
• En systematisk metod
• Jämfört med XP, kontroll
• Möjlghet att presentera prototyper för kunder och andra intressenter
• Snabb feedback om nåt går på tok
• Möjlighet att ändra projektets inriktning
Objectorienterad programmering Sida 9
Iterativ utveckling Sven-Olof Nyström
Likheter XP-ID
Betrakta programmet som nåt flexibelt—modell-lera, inte marmor
Betrakta kravspec som flexibel
Välj bland önskemål och krav utgående från kostnad och affärsvärde
Arbeta mot körbar kod—vill kunna testköra och visa för kund i tidigt skede
Objectorienterad programmering Sida 10