Kravhantering rep. ETS672 Requirem ents Engineer ing L2: Elicit ation! Krav kommer från intressenter Det finns många olika typer av krav En av de viktigaste delarna av utvecklingsprocessen Kravprocessen innehåller Elicitering (Identifikation) Analys Dokumentation (Specifikation) Validering Prioritering Ändringshantering Olika sammanhang och projekttyper ANONYMA&TENTOR& & GLÖM&INTE&ANMÄLA&ER!&! Internutveckling för egna behov (In-house)! Produktutveckling för öppen marknad (Product Dev.)! Utveckling på löpande räkning (Time&Materials)! Inköp av generisk (hyll-)programvara (COTS)! Kundspecifik anpassning av generisk programvara! Anbudsförfrågan (Tender) för upphandling av kundspecifik utveckling för upphandling av generisk programvara! Kontraktsbaserad utveckling med fast/rörligt pris! Underleverantörskontrakt med fast/rörligt pris! Okänd förstudie för att utreda lämplig projekttyp! Hybrider kombinationer av ovanstående Sammanhanget är avgörande för kravhanteringen! 4
Övergripande+kravspec+först+ Definitioner enl. Sommerville Kravhantering Processen att fastställa de tjänster och som kunden kräver av ett systemet och de begränsningar som styr utveckling och drift Krav: Beskrivningar av systemets tjänster och begränsningar som framkommer under kravhanteringsprocessens gång Dessa definitioner har fokus på Kunden, måstekrav, krav som beskrivning så används ej alltid dessa termer. 6 Vad är ett krav? Inlåsning Önskemål Måste Begränsning Behov? Produktegenskap Funktion Dokumenterad representation Beslut 7
Vem lyssnar när man ringer och klagar på att det inte funkar? Ömsesidigt förhållande kund - leverantör Vem har störst makt? Vem har störst kunskap? Vem tar största risken? Vem får största vinsten? På kort sikt? På lång sikt? Ömsesidig nytta? 10 Inte bara det uppenbara Spårbarhet Tillfredställelse Sensationella Normala Uppfyllande Bakåt Req A1: Printing Beroende Framåt package samples.simple; public class Hello1 { public void printhello() { Förväntade [Cohen] 11 Källa Req F8: Color Krav System.out.println( "Hello!" ); } } Design/Kod/Test 12
Fig 1.3 Contents of ReqSpec Fig 1.5A Domain and product level User groups Interfaces System Platform: HW, OS, DB Spreadsheet Data requirements: System state: Database, comm. states Input/output formats Ext. products: Sensors, dev. Special SW Functional requirements, each interface: Record, compute, transform, transmit Theory: F(input, state) -> (output, state) Function list, pseudocode, activity diagram Screen prototype, support tasks xx to yy Quality reqs: Performance Usability Maintainability... Other deliverables: Documentation Install, convert, train... Managerial reqs: Delivery time Legal Development process... Helping the reader: Business goals Definitions Diagrams... Business domain Clients Domain I/O User activities Domain Product Domain-level req: The product shall support the following user activities:... Product I/O Platform Control computers Actors? Elevators Product-level reqs: The product shall accept the following input:... Fig 1.5B Redefined limits Fig 1.6A The goal-design scale Business domain Clients User activities Domain Product Control computers R1. Our pre-calculations shall hit within 5% R2. Product shall support cost recording and quotation with experience data R3. Product shall have recording and retrieval functions for experience data R4. System shall have screen pictures as shown in app. xx Goal-level requirement Domain-level requirement Product-level requirement Design-level requirement
Undersökning visade Sju av tio tillfrågade användare anser att: införandet av systemet inte sker med tillräcklig medverkan från användare och verksamhet användarnas förslag till förbättringar inte tas tillvara. De flesta användare är missnöjda med hur datasystemet underlättar arbetet eller bidrar till nytta i verksamheten 17 Users Award Användarorganisation som arbetar för bättre IT-stöd i arbetslivet. 727 användare deltagit i undersökningen Olika yrkeskategorier 90% använt Cosmic Det blev tvärtom Det skulle ge mer tid till vård Det skulle vara arbetsbesparande Sjukvårdens nya datasystem är fullt av fel och har ställt till stora problem för både personal och patienter
Cambio Healthcare systems En patient en journal Med en enkel knapptryckning kommer åt allt journaler, remisser, recept Vunnit upphandlingar i 7 landsting (investeringar i miljardklass) Fel. 1800 felrapporter skickade av personalen i Uppsala som använt systemet under 2 åren efter leverans. Cambios vd Tomas Mora Morrison erkänner ej nådd leveransprecision och vissa kvalitetsproblem Exempel på fel: Provsvar försvinner Patienten felaktigt markerad som avliden Journalanteckningar hamnar i fel journal Doseringar omkastade på e-recept Prestanda problem Dåliga flöden i applikationen Cambio höll inte vad de lovade. Bara hälften av de krav man tecknat kontrakt om uppfylldes fullt ut. Trots det godkände Värmlands landsting leveranserna och betalade slutfakturan
Intressenter+ Betamax VHS + Användare olika typer Kunder, kundens kunder Underleverantörer Marknadsförare Säljare Systemarkitekter Utvecklare Testare Produktledare + Distributions kanaler Återförsäljare Lösningsleverantörer som bygger på er produkt Konkurrenter Identifiera vem ni behöver prata med Intressentanalys Vem/vilka Domänkunskap Teknisk bakgrund Utmärkande egenskaper Önskemål Prioriteringar Begränsningar Av Henrik Kniberg
Tänk på You cannot sit in your office and produce requirements based on intuition and logic. You have to discover the nontrivial requirements from users and other stakeholders. Av Henrik Kniberg (Lausen, page 42) Fig 1.6B Ask why Fig 1.6C Recommendation: why + how Neural diagnostics System shall have mini keyboard with start/stop button,... Why? Possible to operate it with left hand. Why? Both hands must be at the patient. Why? Electrodes, bandages, painful... Measuring neural response is a bit painful to the patient. Electrodes must be kept in place... So both hands should be at the patient during a measurement. R1: It shall be possible to perform the commands start, stop,... with both hands at the patient. Might be done with mini keyboard (wrist keys), foot pedal, voice recognition, etc. Domain - why Req. Example - how
Marknadsdriven kravhantering - en annan sorts elicitiering Marknadsdriven kravhantering några ytterliggare aspekter Aspekt Marknadsdriven Kundspecifik Kravinsamling Uppfinna krav. Marknad eller Identifiering, Analys, teknikmöjligheter. Validering Kravspecifikation Mindre formell Kontrakt Användare Svårdefinierade Kända Kunder Marknadsfolk, nyckelkunder Beställare Huvudintressent Utvecklande organisation Kundens organisation Specifika kravfokus Strid ström av krav, prioritering, releaseplanering Konfliktlösning, validering, modeller Utvecklare - Produkt Långsiktig investering Kortsiktig bindning Validering Sent, t.ex. på mässor Kontinuerlig Kravstandard Ovanligare Vanligare Explicit process Ovanligare Vanligare Iterativa tekniker Vanligare Ovanligare Domänexpertis Ovanligare okänd mark Vanligare Fritt efter [Pär Carlshamre, Dissertation No. 726, Linköpings Univ. 2001] Modell av Moore Exempel på modell för marknadsdriven produktledning Ur produktutvecklarens synvinkel
Diskussion Elicitering Varför är elicitering i verkliga projekt svårt? Som kund/beställare Svårt att veta vad man vill ha Först när man ser en lösning förstår man vad man vill ha Ofta tyvärr inte det som man trodde man beställt Fig 8.1 Elicitation issues Should be simple. Ask stakeholders what they need! Barriers: Cannot express what they need Cannot explain what they do and why May ask for specific solutions Lack of imagination - new ways Lack of imagination - consequences Conflicting demands Resistance to change Luxury demands New demands once others are met Things to elicit - intermediate work products: Present work, Present problems Consequences and risks Goals and critical issues Commitment, Conflict resolution Future system ideas Requirements, Priorities Realistic possibilities Completeness 40
Intervjuer Ställer+frågor+8ll+en+eller+flera+intressenter+ Förmodligen+vanligaste+tekniken+ Enskilda+och+gruppvisa+intervjuer+ Strukturerade++ Semi@strukturerade++ Ostrukturerade++ + Strukturerade Förbestämda frågor, ev. förbestämda svarsalternativ Fördelar: systematisk och effektiv Nackdelar: mindre flexibel i valet av frågor risk för ledande frågor inte lägga till frågor under tiden Semi-strukturerade Ostrukturerade Vissa frågor är förberett men frihet i ordning och djup Fördelar: Kan förbereda frågeformulär eller checklista innan Kan komplettera med öppna frågor Nackdelar: Ta reda på fakta om intressenter innan Inga förberedda frågor alt. några få öppna frågor. Berätta om din syn på..? Fördelar: Får frågorna utförligt besvarade Krävs lite förberedelser och träning Kostnadseffektivt Nackdelar: Intervjuaren behöver styra Risk för att tid läggs på oväsentligheter
Enkät Hitta krav som beställaren inte är medveten om eller vid utvärdering av system Ställer frågor till många personer Frågans formulering viktig Hur upplever du systemets prestanda och stabilitet? Hur upplever du systemets prestanda? Enkät forts. Använd gärna ja och nej frågor, skalor samt varje dag, en gång i veckan etc. Fördelar: Många personer på kort tid Andra saker än vid intervjuer Nackdelar: Krävs mycket av dem som skriver frågorna En chans Fig 8.4 Focus groups Observationer Several stakeholder groups Brainstorm - bad experience Brainstorm - wishes & ideal future Each group selects top ten issues A few days later: Decide. Each group must get something Sitter och observerar användaren i dennes miljö. Fördelar: Inga omfattande förberedelser Kan hitta alla typer av krav Nackdelar: Svårt att få möjlighet till det Avbrott av annat
Identifiera nya krav Kvalitetssäkra krav Prototyper Fördelar: Kortare utvecklingstid Mer rätt från början Nackdelar: Kräver planering och förberedelse Summering Vilka är intressenterna? Varför är elicitering så svårt? Eliciteringstekniker vs Saker att elicitera Barriers: Cannot express what they need Cannot explain what they do and why May ask for specific solutions Lack of imagination - new ways Lack of imagination - consequences Conflicting demands Resistance to change Luxury demands New demands once others are met