Systemutveckling TDP029 Systemutveckling Annika Silvervarg COIN/HCCS/IDA Systemutveckling kallas processen att ta emot en beställning på ett datorsystem, skriva en strukturerad kravspecifikation på systemet, genomföra systemering av det, programmera, testa och driftsätta det. Arbetet sker traditionellt enligt olika utvecklingsmetodiker, var och en med sina för- och nackdelar 2 1 2 Vanliga faser Analys Vad är problemet? Uppgift Vad är det för arbetsuppgifter och hur utförs de? Användarbehov Vad behöver användaren/användarna? Information Vilken information ska hanteras? Användbarhet Vad är viktigt för användarna? Vision och Mål Vad ska åstadkommas? Vilka krav stalls på säkerhet, prestanda, hållbarhet? Design Hur ska problemet lösas? Implementation Realisering av lösningen! Fler faser Insäljning, marknadsundersökning Analys Design Implementation Test Leverans Utbildning Support Avveckling 3 4 3 4 Systemutvecklingsmetod Code and fix (Cowboy programming) Systematiskt och strukturerat sätt att utveckla datorsystem Software engineering (programmering) System engineering (hela systemet inkl hårdvara) Metod = modell/process + verktyg och tekniker Projektstyrning (Vad ska göras när?) och Genomförande (Hur ska det göras?) Code Fix 5 6 5 6 Linköpings universitet 1
Code and fix Den mest primitiva/enkla modellen Ingen eller väldigt lite planering, inga faser Kan fungera för små eller korta projekt som inte ska vidareutvecklas, för protyputveckling Inget att rekommendera för medel- till stora projekt eller projekt som involverar flera utvecklingsteam 7 8 7 8 Traditionell vattenfallsmodell Vattenfallsmodellen Strikta steg som vart och ett avslutas innan man påbörjar nästa Kräver mycket dokumentation Väldigt svårt att gå tillbaka och göra om Om man hittar brister i kraven under testerna, kostar det stora resurser att rätta till detta, det finns risk för att stora delar av systemet måste skrivas om för att komma tillrätta med feltänket Dessutom är vattenfallsmodellen okänslig mot förändringar i omvärlden som oundvikligen sker under projektets gång 9 10 9 10 Vattenfallsmodellen Ex på Modifierad vattenfallsmodell Nämns redan 1956 i samband med utveckling av mjukvara för SAGE Royce, 1970, beskriver den som de facto standard för systemutveckling, och framförde kritik: The testing phase which occurs at the end of the development cycle is the first event for which timing, storage, input/output transfers, etc., are experienced as distinguished from analyzed The required design changes are likely to be so disruptive that the software requirements upon which the design is based and which provides the rationale for everything are violated. Either the requirements must be modified, or a substantial change in the design is required. In effect the development process has returned to the origin and one can expect up to a 100-percent overrun in schedule and/or costs. 11 13 11 13 Linköpings universitet 2
Inkrementell och Iterativ utveckling Problem/Utmaningar med metoderna Svårt att veta exakt vad systemet ska göra Svårt att förutspå framtida användning Dyrt att göra ändringar Missnöjda kunder och programmerare 14 15 14 15 Agila metoder En familj av systemutvecklingsmetoder, t ex: Scrum extreme Programming Kanban? Lean? 16 17 16 17 extreme Programming (XP) extreme Programming (XP) En av de första, Kent Beck på 90-talet på Chrysler Utgår från värden och principer som omsätts i praktiker Praktikerna täcker projektstyrning: Planering Kundinvolvering och tillgänglighet Testning (Acceptanstest) Små releaser Kommunikation och arbetssätt för utvecklarna: Parprogrammering Enkel design Testning (Enhetstest) Gemensamt ägandeskap Kodstandard Omstrukturering (Refactoring) Kontinuerlig integrering Hållbar arbetstakt 18 19 18 19 Linköpings universitet 3
User story och Acceptance test 20 20 21 21 Scrum Scrum Ursprungling fokus på projektstyrning för agila projekt Ken Schwaber och Jeff Sutherland, 1995 Scrum fokuserar på projektstyrning genom: Product backlog Accrediterad scrum master utbildning sedan 2001 Sprint planering Sprint backlog Dagliga scrum möten Scrum board Sprint uppföljning Burndown chart Sprint retrospectives Scrum verktyg: Scrum team består av: Utvecklare Scrum master Produkt ägare 24 23 23 24 Burn down chart Product backlog, Sprint backlog och Scrum board 25 25 Linköpings universitet 26 4
Scrum-möten Retrospective Igår gjorde jag Idag ska jag Jag har problem med. 27 28 27 28 Lean Eliminate waste Kommer från tillverkningsindustrin (Toyota) på 50-talet Mary och Tom Poppendieck applicerade det på systemutveckling på 2000-talet Fokuserar på att uppnå kvalitet och värde genom att eliminera allt som inte bidrar till detta Har fokus på att skapa en bra process för utveckling snarare än att skapa en bra produkt 29 31 29 31 Kanban Kanban board Ursprungligen ett verktyg inom Lean för stödja produktion inom just-in-time tillverkning Använder en Kanban board inom systemutveckling för att: Visualisera arbetsflöde och kapacitet Begränsa work in progress Mäta och optimera flödet Ett mer flexibelt alternativ till scrum som tillåter Förändringar under pågående iteration Uppgifter som sträcker sig över flera iterationer Specialiserade delteam 32 33 32 33 Linköpings universitet 5
Kanban board Hur hänger det ihop? 34 39 34 39 Linköpings universitet 6