ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Föreläsning 2: Projekt, Kravhantering, Dokumentgranskning Jonas Wisbrant 2 Detta har hänt... Pratat krav Bildat projektgrupper :-) Skaffat litteratur? Kommit igång med projektwikin: Formulerar krav Genomfört en övning: Hur var den? 3
Agenda Kursinformation Projektet, wikin och deadlines Kursombud Mer om kravhantering Mer om projekt, projektplanering Dokumentgranskning 4 Kursinformation V 2: Måndag: Nu Tisdag kl 24: Deadline Kravspecifikation 0.x Inför övning to: P1-6 I:1 Granska ABC- video Fråga: Har ni lagt in granskningsmöte(n) för krav- och plandokument i privata kalendrar? V 3: Måndag kl 15 Föreläsning: Testning Måndag kl 24 deadline: Granskningsprotokoll + Kravspecifikation 0.99 Granskningsprotokoll + Projektplan 0.99 Man kan även lägga upp granskningsprotokollen som en PDF-fil och länka till den 5
Frågor från kurswebben 1. Varför läggs inte filmerna på itunes U? Undviker gärna publik spridning p g a, integritet, kvalitet och krånglighet. 2. Kan man göra något åt bärbara datorer som stör andra under föreläsningarna? Förslag: De som vill anteckna, kurssurfa eller annat med dator som stör sitter långt bak. De som bara stör med datorn kan kanske göra det någon annanstans? 3. Förtydligande på vad lämplig statistik innebär (i projektuppgiften)? Beror på målsättningen för ert cykelgarage 4. Den 5-siffriga nummer projektet har tillgång till representeras av siffrorna 8-12 Borde vara det, inte den! Tack! Fixat :-) 5. Använda github (eller liknande) för codehosting med tanke på att vem som helst kommer kunna gå in och bläddra i källkoden? - Tveksamt! ==> http://cs.lth.se/utbildning/samarbete_eller_fusk/ 6 Inlämning imorgon ti kl 24: Kravspec 0.x Jobba gärna vidare under tiden Projekthandledarna vill veta: Kravspecifikation är påbörjat och innehåller tänk Produktbeskrivning i klartext? Dokumentets struktur? Användarfall? Kontextdiagram? Återkoppling via mail & / övning 2 7
Inlämning måndag v3 kl 24: Krav 0.99 } granskning krav Plan 0.99 granskning plan Återkoppling Innehåll Form Korrigering Krav 1.0 Plan 1.0 Ändringshantering 8 Utse kursombud Möten Fr 2012-03-30 kl 12.30 i LUCAS-rummet (E:4130) Må 2012-05-07 kl 12.30 i LUCAS-rummet (E:4130) Beslut: Alfredsson, Emilia (I) Sartorius, Carolina (D) Eliasson, Anton (D) Wigren, Adam (C) Gråborg, Mikael (C) 9
ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Kravhantering fortsättning 10 Kravhanteringsprocessen Identifiera krav Nu vet vi hur vi formulerar funktions- och kvalitets-krav. Men... Analysera krav Hur hittar vi, analyserar och dokumenterar krav Dokumentera krav Hur säkerställer vi att vi förstått? Hur ska vi prioritera? Validera krav Process enligt wikipedia En samling i förväg uttänkta aktiviteter som ska användas varje gång man skapar ett visst resultat... 11
Identifiera Dataflödesdiagram Analysera Dokumentera Validera 12 Identifiera ER-diagram - Entity Relationship Analysera Data lagras i systemet (entitet + attribut), t ex: Dokumentera Student: pnr, namn, inskrivningsår Validera Kurs: kurskod, namn, #hp Program: beteckning, namn 1 * Student Program Följer Används ofta för att modellera data i databaser * * Läser Ingår på * Kurs * 13
Skillnad? 14 Identifiera Naturligt språk Analysera Dokumentera Fördelar: Generellt Flexibelt Lätt att använda och förstå Nackdelar: Otydligt Lätt att blanda olika sorters krav Lätt att slå samman flera krav i ett 15 Validera
Identifiera Delar i en kravspecifikation Analysera Dokumentera Table of contents 1. Introduction 1.1 Purpose 1.2 Scope 1.3 Definitions, Acronyms, and Abbreviations 1.4 References 1.5 Overview 2. General Description 2.1 Product Perspective 2.2 Product Functions 2.3 User Characteristics 2.4 General Constraints 2.5 Assumptions and Dependencies 3. Specific Requirements Appendix Index Validera [IEEE Guide to Software Requirements Specifications, ANSI/IEEE Std 830-1984] 16 Identifiera Spårbarhet Analysera Dokumentera Från krav till källan Validera Mellan krav - visar beroende Från design och kod till krav Från testfall till krav 17
Identifiera Validera kraven Analysera Kontrollera att kravspecifikationen är korrekt och av hög kvalitet Dokumentera Validera Exempel på metoder: Granskning (vanligast) Utveckla testfall Verktygsstöd för formellt skrivna krav 18 Identifiera Tidiga faser är viktiga Analysera Dokumentera Validera [Alan Davis] 19
Bra egenskaper hos en kravspecifikation Identifiera Analysera Korrekt Komplett Otvetydig Verifierbar Konsistent Prioriterad Dokumentera Validera Genomförbar Modifierbar Spårbar 20 Checklista för granskning för kursens projekt Identifiera Analysera 1. Saknas några krav? Dokumentera 2. Är samtliga krav nödvändiga? Validera 3. Finns det några motstridiga krav? 4. Kan samtliga krav verifieras? 5. Är samtliga krav tydligt formulerade eller kan några krav misstolkas? 6. Finns samtliga nödvändiga definitioner? 7. Är det möjligt för dokumentets målgrupp att förstå dokumentet? 8. Följer kravspecifikationen sin dokumentmall? 9. Är något krav formulerat för detaljerat? 10.Har något krav formulerats på för hög abstraktionsnivå? 11.Är all texter och illustrationer nödvändiga? Guidat alternativ 12.Har samtliga krav unika identifierare? 21
Kravprioritering Omöjligt att implementera alla bra idéer! Jämför krav med avseende på: Värde för kund Kostnad att implementera Ledtid att implementera Risk Värde för nya kunder 22 Exempel, prioritering 13 6 Värde 1 5 2 4 3 10 7 9 8 14 11 12 Kostnad 23
Krav och projekt i ett större perspektiv Produktledning Plattform Produkter Krav Krav Krav Krav Design Impl Design Impl Design Impl Design Impl Test Test Test Test 24 Sammanfattning - Krav Viktigt eftersom tidiga faser påverkar mycket Krav kan finnas på olika abstraktionsnivåer Kvalitetskrav påverkar ofta hela produkten Kravhanteringsprocessen: identifiera, analysera, dokumentera, validera Egenskaper hos krav: korrekt, komplett, otvetydig, verifierbar, konsistent, prioriterad, genomförbar, modifierbar, spårbar Spårbarhet: källakrav, krav-krav, krav-design/kod Krav är en viktig del i arbetet med produktledning och produktplanering Mer om krav i Kravhantering (ETS170) 25
ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Om projektplanering och projektplaner Diskussion: Förklara för varandra Vad är det för skillnad mellan projektets: Affärsmål Projektmål Produktmål? 26
Signaler i projektet Behov Idéer Visioner Förväntningar Krav Avtal Plan Data Specifikationer Pengar Protokoll Beslut Förslag Prototyper Frågor Förtydliganden Produkten Testresultat Acceptans Aktör A Meddelande Media Meddelande Aktör B Återkoppling 28 Kommunikation i projektet över tiden Visioner & krav Beställarens projekt Specifikation & plan Bekräfta System Utvecklarens projekt Godkänna
Be Inledning: projektmodell, utvecklad produkt, målsättningar, begränsningar Visio Spec Bekr Syst God Projektorganisation: utvecklingsorganisationen, andra intressenter Hårdvara och programvara som krävs för projektets genomförande Arbetsnedbrytning: aktiviteter, leverabler, milstolpar Tidplan: när varje aktivitet påbörjas och avslutas, när varje milstolpe ska uppnås Uppföljning och rapportering: hur detta ska ske? Riskanalys Aktör A Meddelande Media Meddelande Aktör B Återkoppling 30 Fyra viktiga metoder inom projektplanering Underleverantör Intressentanalys Kostnadsskattning September Schemaläggning October November Date finished (2007) 7 september 21 September 21 September 20 October 20 October 20 October 9 November 16 November 16 November 23 November 23 November Project planning Requirements definition Milestone 1 Test planning High-level design Milestone 2 Implementation and unit testing Integration and system building Milestone 3 System testing Milestone 4 Riskhantering 31 U t Typiskt innehåll i en projektplan
Intressentanalys (stakeholders) Utvecklare Beställare Kundansvarig Sponsor IT-funktion Projektledare Slutanvändare Utvecklare Underleverantör Vad vill varje intressent? Konflikter? Gränssnitt 32 Kostnadsskattning Persontid viktigaste (dvs dyraste) faktorn Alltid svårt att veta, men viktigt ändå Olika angreppssätt Expertbedömning Algoritmiska modeller Mer i Ingenjörsprocessen - ekonomi och kvalitet [ETSF01] 33
Schemaläggning Aktivitetsnätverk för kritisk väg Aktivitet A1 Tid (d) Beroenden 5 A2 5 A3 10 A1 A4 2 A3 A5 10 A6 15 10 15 A5 A6 10 5 start A1 2 A3 A4 slut 5 A2 A3, A5 Gantt-diagram September October Project planning Requirements definition Milestone 1 Test planning High-level design Milestone 2 Implementation and unit testing Integration and system building Milestone 3 System testing Milestone 4 Riskhantering November 34 Date finished (2007) 7 september 21 September 21 September 20 October 20 October 20 October 9 November 16 November 16 November 23 November 23 November Riskprocess Sannolikhet hög Strategier låg låg [1] Risk Konsekvens hög [5] Reducera konsekvens Minska risk Alternativ (plan B) S K Prio (S x K) Hårdvara försenad 2 5 10 Ont om persontid 4 2 8 Undersöka alternativ Konstruera simulator Minska scope Strulig beställare 5 1 5 Andas... Strategi 35
Typiskt innehåll i en projektplan Inledning: projektmodell, utvecklad produkt, affärsmål, begränsningar Projektorganisation: utvecklingsorganisationen, andra intressenter Hårdvara, programvara och andra resurser som krävs för projektets genomförande Arbetsnedbrytning: aktiviteter, leverabler, milstolpar Tidplan: när varje aktivitet påbörjas och avslutas, när varje milstolpe ska uppnås Uppföljning och rapportering: hur detta ska ske? Riskanalys 36 Sammanfattning projektplanering Programvaruprojekt speciella eftersom de är en av, komplexa, och eftersom det går att ändra sent Projektplanen beskriver t ex projektorganisation, arbetsnedbrytning, tidplan och riskanalys, mm. Kostnadsskattning kan göras baserat på expertbedömningar eller algoritmiska modeller Riskhantering sker i fyra steg: identifiera risker, bedöm risker, behandla risker, följ upp risker 37
ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Dokumentgranskning (statisk testning) 38 Granskningar grundläggande idé Alla dokument kan granskas (krav, test, design, kod, testfall, ) Hitta fel tidigt utan att exekvera kod d.v.s statisk testning Läs dokument på ett strukturerat sätt Rätt personer ska läsa Personerna ska läsa på rätt sätt Alla viktiga delar av dokumenten ska läsas 39
Granskningsprocessen Introduktion Planering ABC-video: Krav & plan: Nu före individuell hranskning Test & design: Individuell granskning Granskningsmöte Omarbete Uppföljning ti/on Ö2 - - före möte TBD före omarbete före nästa måndag 24 MS1 TBD före 3/5 MS2 TBD Roller Moderator Sekreterare Författare Granskare Tips: Planera in det mötet idag! 40 Lästekniker (individuell granskning) Ad-hoc - Upp till granskaren Checklist-baserad - Stöd av en checklista - Kan t ex ha tagits fram av organisationen Scenario-baserad - Följ ett användningsscenario under granskningen Perspektiv-baserad - Granska som en specifik roll: användare, testare, operatör, utvecklare, etc 41
Hur lång tid tar det? Planering och introduktion:? Hur vet man om det är värt det? Individuell granskning*: Krav: 5 sid/h Design: 4 sid/h Kod: 150 LOC/h (utan kommentarer) Testplan: 4 sid/h Antal personer på ett granskningsmöte: 4-10 personer x?h Omarbete och uppföljning:?h Planering Introduktion Individuell granskning Granskningsmöte Omarbete Uppföljning * Ebenau, et.al., Software Inspection Process 42 Hur många lejon finns det i skogen? Lejonen kan vara fel och jägarna kan vara granskare 43
Med två granskare A N = totalt antal fel (som man vill veta) NA = antal fel som granskare A hittar NB = antal fel som granskare B hittar NAB = antal fel som båda hittar B Andel som granskare A hittar = NAB/NB Andel som granskare A hittar = NA/N NA/N = NAB/NB --> N = NA* NB/NAB 44 Sammanfattning - Granskning Systematisk metod för att identifiera problem i material som inte kan exekveras Tar tid men lönar sig i allmänhet Under stabila förhållanden kan man uppskatt hur många fel som finns kvar Granskning är bra Planering Introduktion Individuell granskning Granskningsmöte Omarbete Uppföljning 45
Att göra inför övning 2 P.1-6 Risker och intressenter I:1: Granska ABC-video inför granskningsmöte torsdag morgon Tisdag kl 24: Deadline krav 0.x Måndag v3: Föreläsning om testning 4 x deadline Torsdag v 3: Återkoppling 4 dag Påskuppehållet: Vem gör vad? Onsdag v 4: MS1 46