Kravfångst? Bra kravarbete handlar om att ställa rätt frågor och att ge rätt svar i rätt form Gästföreläsning Datavetenskap 2011-02-15 Therese Söderlund, Lars Hansson och Jan Bidner (ITS)
ITS - Enheten för IT-stöd och systemutveckling Verksamhetsområden Kunder Roller 3
Utgångspunkter Utvecklingsmetodiken påverkar kravhanteringen Utvecklingen bedrivs i projektform Agilt* angreppssätt Spårbarhet *) Agilt = Lättrörligt, Iterativt 4
Val av metod Olika typ av projekt Helt ny produkt? Förändring av befintlig produkt? (bilden lånad från: http://3.bp.blogspot.com/_puw8yan26hk/rrm7wb5eavi/aaaaaaaaab0/rprrrfafqw0/s1600-h/idea.jpg) 5
Val av metod Bakgrundsmaterial Några rader i ett projektdirektiv Förstudie Verksamhetskrav Processkartläggning/modellering (?) Befintlig produktdokumentation Standard & Guidelines 6
Val av metod Tillgång till kravställare Som beställare Som referensgrupp Som projektmedlemmar Kravställare!= slutanvändare 7
Roller i kravarbete Kravställare Kravspecifikatör Utvecklare, DBA och IT-arkitekter Testare (bilden lånad från: http://blog.mozilla.com/metrics/2009/07/13/does-mozilla-champion-the-voice-of-firefox-users/) 8
Olika typer av krav Funktionella krav (verksamhetskrav) Icke-funktionella krav (tekniska krav) 9
The primary measure of success of a software system is the degree to which it meets the purpose for which it was intended. (Nuseibeh&Easterbrook 00) Vikten av tydliga krav Vad analysen kom fram till Hur systemet designades Hur systemet programmerades Vad användarna ville ha Hur det Fungerar.. (Bilderna lånade från: businessballs.com) 10
Kombination av olika tekniker En säger mer än tusen http://www.brygghusetarkitekter.se/bilder/bygga_tak/byggatak_3.jpg 11
Exempel på processkartläggning/ modellering av process Verksamhetsprocessen är grunden i kravförståelsen i nyutvecklingsprojekt Utgå ifrån hur man jobbar. Inte de begränsningar man tror kommer att finnas i det kommande IT-stödet. Det befintliga systemet IRL Processkartläggning 12
Exempel: Kraschdatabas Crosscompetenceperspektiv på olyckor Chalmers KTH Traffic Safety Centre North (TSCN) Investigation Network and Traffic Accident Collection Techniques (INTACT) Flera olika delsystem innan Önskemål: Ett sammanhängande system (Väg, olycksplats, Människa och fordon) Önskemål: Bättre teknik Verksamhetsexperter 13
Exempel: Kraschdatabas När man börjar från Noll Var börjar det? Vad händer sen? Vi får ett larm. Är det inom 2 mils radie åker vi dit Vi samlar in data om 1) Olycksplatsen 2) Fordonen 3) Människorna Vi åker hem och efterarbetar datat Vi åker till skroten och kompletterar data om fordon Vi intervjuar inblandade och tar del av journaler Vi analyserar samband, enstaka fall och tar fram statistik 14
Exempel: Kraschdatabas Experter och användare Crasch Office On Scene Retrospective Case Analysis 15
Exempel: Kraschdatabas Processen Detaljerar flöden Överblick/ transparens Modellera stort Post-it flexibelt 16
Exempel: Kraschdatabas Scenarios / User stories Exempel Man skall kunna mata in fordonsuppgifter Det skall gå att koppla ihop valfritt antal fordon som varit inblandade i en olycka Man skall bara kunna koppla ihop fordon som har varit med om olycka på samma dag och plats Ett fordon måste ha minst en passagerare etc 17
Exempel: Kraschdatabas Typer av kravdokumentation Efter processkartläggning Kravspecifikation och detaljering i iterativ dialog Bilder (t.ex. Powerpointskiss) Kravdokumentation Funktionella prototyper Flödesbeskrivningar Implementationsanalys Arkitektur och databasdesign 18
Exempel: Kraschdatabas Funktionella prototyper 19
Exempel: Kursanmälan UPC Ett mini-studera.nu På www.umu.se i nya profilen Olika kurstyper etc 20
Exempel: Kursanmälan UPC Förstudie och Kravprojekt Kravprojekt som förstudie Systembehov? Vad tjänar man - ROI? 21
Exempel: Kursanmälan UPC Processer, användningsfall och avgränsningar Kärnprocesser Skapa kurs > Publicera kurs > Urval > Efterhantering Skapa konto > Anmäla sig > Antas Generera statistik
Exempel: Kursanmälan UPC Användningsfall Skapa Kurs Workflow för skapande avsökandekonton Skapa/hantera administratörskonton CAS och uppgifter från Koncernkatalogen Mina kurser Anmälan till kurs Urvalshantering/Antagning/ reservhantering/återbud Exportera listor över antagna på kurs (kurslistor) Tillstyrka behörighet Visa Statistik Exportera till CSV (Ett antal fördefinierade listor) Språkhantering Hantera stilmall/ramverk Hantera katalog med fakulteter/institutioner Hantera kurstyper och tillgängliga ansökningsformulär Hantera regelmotor för urval 23
Exempel: Kursanmälan UPC Avgränsningar Systemet skall inte hantera kursregistrering eller närvarohantering under kurs. (Däremot skall avslutad kurs kunna registreras för en sökande) Systemet skall ej hantera jämförelse mellan avklarade kurser. Systemet skall ej hantera import av avklarade utbildningspoäng från Ladok vid anmälan. 24
Exempel: Kursanmälan UPC Mockup Funktionell prototyp liknar färdig produkt 25
Krav i förvaltning - skillnader? Underhåll, buggrättning Givet system Givna förutsättningar Ny funktionalitet eller anpassningar? Förändringar i verksamheten eller förändringar i systemet? Mindre behov av detaljering på kraven? Risker med att ta saker för givet. 26
Förvaltningsfällan: Faran med att beställa funktionella krav icke-funktionellt Det skall läggas till en kolumn som heter soktforut i tabellen oldstudent av typ boolean som inte får vara NULL Hur skall man testa det? 28
Fallstudie: Projekt studieavgifter Riksdag och regering har beslutat att anmälnings- och studieavgifter skall tas ut av sökande och antagna från tredje land från och med höstterminen 2011. Anpassningar ska ske i befintliga system för studiedokumentation 30
Fallstudie: Projekt studieavgifter Projektteam Ca 12 personer med olika roller Krav, utveckling och test Krav 2 personer från verksamheten (kund) 2 personer från tekniksidan (oss) 31
Fallstudie: Projekt studieavgifter Kravarbete på tre nivåer 1. Beställare 2. Kravställare verksamheten 3. Kravfångare tekniksidan 32
Fallstudie: Projekt studieavgifter Nivå 1. Beställare Innan projektet Verksamhetsutredning Workshop Direktiv principiella beslut för kraven 33
Fallstudie: Projekt studieavgifter Nivå 2. Kravställare i projektet Verksamhetsrepresentanter Förmedlar och sammanställer krav Förankrar med högskolor/beställare Referensgrupp Nyhetsbrev Prioriterar! Timeboxing 34
Fallstudie: Projekt studieavgifter Nivå 3. Kravfångare i projektet Från tekniksidan Strukturerar och detaljerar kraven Ansvarar för att riktlinjer följs Ansvarar för att nå samförstånd mellan utvecklare, testare och verksamhetskravare Lösningsförslag och prototyper Dokumentation Granskningsmöte 35
Fallstudie: Projekt studieavgifter Status för projektet I dagsläget har vi haft en leverans. Kommande leveranser är i mars och april. Ett problem har varit sena kravändringar och synpunkter Tungrott att komma överens med externa aktörer om kraven, ex Migrationsverket 36
Relation krav - analys 1) Förstudie 2) Kravställning 3) Kravspecifikation 4) Implementationsanalys 5) Design & Implementation 6) Test (Vad testar man mot?) 37
Om tekniken är svaret vad är då frågan? Frågor? Therese Söderlund (therese.soderlund@adm.umu.se) Jan Bidner (jan.bidner@adm.umu.se) Lars Hansson (lars.hansson@adm.umu.s) 39