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 projekt Mer om kravhantering Dokumentgranskning 4 Kursinformation V 2: Måndag: Nu Tisdag kl 24: Deadline Kravspecifikation 0.x Till övning to: P1-6 I:1 Granska ABC- video Fråga: När ska ni ha granskningsmöte V 3: Måndag kl 13 F: Testning Måndag kl 24 deadline: Granskningsprotokoll + Kravspecifikation 0.99 Granskningsprotokoll + Projektplan 0.99 OBS! Grupp 17-26 har övning i E:A på torsdag Man kan även lägga upp en PDF-fil och länka till den 5
Kursinformation forts Projekt i IP3: Ska föreslå förbättingar i utvecklingsprocessen inför en tänkt vidare utveckling av systemet... De kanske kontaktar er Har egen sida i projektwikin Kan göra anspråk på typ 2 h per projektmedlem + enligt ök 6 Inlämning nästa tisdag kl 24: Kravspec 0.x Projekthandledarna vill veta: Dokumentet är påbörjat och innehåller tänk Återkoppling via mail & övning 7
Inlämning måndag v3 kl 24: Krav 0.99 } granskning krav Plan 0.99 granskning plan Påbörjad manual Återkoppling Innehåll Form Korrigering Krav 1.0 Plan 1.0 Ändringshantering 8 Utse kursombud Möten To 2011-03-31 kl 12.30 i LUCAS-rummet (E:4130) Må 2011-05-09 kl 12.30 i LUCAS-rummet (E:413 Beslut: (C) (C) (D) (D) (I) 9
Tre meddelanden från webbformulären :-) Tydliggör kontextdiagram (boken suger där..) Omvärldens kommunikation med systemet på en ganska hög nivå Märklig matte i Avancerad checklista för granskning av kravspecifikation: Har inte hunnit titta på det... Course Webb feedback P4: Figur 4.3 kommer över texten i Crome Åtgärdat 10 Kravhanteringsprocessen Identifiera krav Nu vet vi hur vi formuerar 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... Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2011 / F1 11
Identifiera Dataflödesdiagram Analysera Dokumentera Validera * = AND + = OR 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 n Student Program Följer Används ofta för att modellera data i databaser n n Läser Ingår på n Kurs n 13
Naturligt språk Identifiera Analysera 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 Dokumentera Validera 14 Delar i en kravspecifikation 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 Identifiera Analysera Dokumentera Validera [IEEE Guide to Software Requirements Specifications, ANSI/IEEE Std 830-1984] 15
Identifiera Spårbarhet Analysera Dokumentera Från krav till källan till krav Validera Mellan krav (visar beroende) Från design och kod till krav Från testfall till krav 16 Identifiera Kravvalidering 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 17
Identifiera Tidiga faser är viktiga Analysera Dokumentera Validera [Alan Davis] Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2011 / F1 18 Bra egenskaper hos en kravspecifikation Identifiera Analysera Korrekt Komplett Otvetydig Verifierbar Konsistent Prioriterad Dokumentera Validera Genomförbar Modifierbar Spårbar 19
Identifiera Granskningslista för kursens projekt 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å dokudokumentet begripligt för sin målgrupp? 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ör abstraktionsnivå? 11.Är någon text eller illustration nödvändig Guidat alternativ 12.Har samtliga krav unika identifierare? 20 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 21
Exempel, prioritering 13 Värde 6 5 1 4 2 3 7 8 9 11 12 14 10 Kostnad 22 Krav och projekt i ett större perspektiv Björn Regnell kommer F6 Produktledning Plattform Produkter Krav Krav Krav Krav Design Impl Design Impl Design Impl Design Impl Test Test Test Test 23
Sammanfattning - Krav Kravhantering viktigt eftersom tidiga faser påverkar mycket Krav kan finnas på olika abstraktionsnivåer Kvalitetskrav beskriver kvalitetsattribut och påverkar hela produkten Kravhanteringsprocessen: identifiering, analysering, dokumentering, validering Viktiga attribut: korrekt, komplett, otvetydig, verifierbar, konsistent, prioriterad, genomförbar, modifierbar, spårbar Spårbarhet viktigt: källa > krav, krav > krav, krav -> design/ kod Krav är en viktig del i arbetet med produktledning och produktplanering Mer om krav i Kravhantering (ETS170) 24 ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Om projektplanering och projektplaner Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2011 / F1 25
Diskussion: Förklara för varandra Vad är det för skillnad mellan projektets: Affärsmål Projektmål Produktmål? 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 System Testresultat Acceptans Aktör A Meddelande Media Meddelande Aktör B Återkoppling 27
Kommunikation i projektet över tiden Visioner & krav Beställarens projekt Specifikation & plan Bekräfta System Utvecklarens projekt Godkänna Typiskt innehåll i en projektplan Inledning: projektmodell, utvecklad produkt, målsättningar, begränsningar 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 Be Aktör B Visio Spec Bekr Syst God Ut Återkoppling 29
Fyra viktiga delområden inom projektplanering Underleverantör Intressentanalys Kostnadsskattning September 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 Schemaläggning Riskhantering Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2011 / F1 30 Intressent analys (stakeholders) Vad vill varje intressent? Beställare Utvecklare Konflikter? Kundansvarig Sponsor IT-funktion Projektledare Slutanvändare Utvecklare Underleverantör Gränssnitt 31
Kostnadsskattning Persontid viktigaste (dvs dyraste) faktorn Alltid svårt att veta, men viktigt ändå Olika angreppssätt Expertbedömning Algoritmiska modeller Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2011 / F1 32 Schemaläggning Aktivitetsnätverk för kritisk väg Aktivitet Tid (d) Beroenden A1 5 A2 5 A3 10 A1 A4 2 A3 A5 10 A6 15 A3, A5 start 10 15 A5 A6 5 10 2 A1 A3 A4 5 A2 slut Gantt-diagram September October November Date finished (2007) Project planning 7 september Requirements definition 21 September Milestone 1 21 September Test planning 20 October High-level design 20 October Milestone 2 20 October Implementation and unit testing 9 November Integration and system building 16 November Milestone 3 16 November System testing 23 November Milestone Lunds 4 universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 33 23 November
Riskhantering Riskprocess Sannolikhet hög låg låg [1] hög [5] Konsekvens Strategier Reducera konsekvens Minska risk Alternativ (plan B) Risk S K Prio (S x K) Strategi Hårdvara Undersöka alternativ försenad 2 5 10 Konstruera simulator Ont om persontid 4 2 8 Minska scope Strulig beställare 5 1 5 Andas... Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 34 Frågor om 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 35
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 36 ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Dokumentgranskning (statisk testning) 37
Granskningar grundläggande idé Läs dokument på ett strukturerat sätt Hitta fel tidigt utan att exekvera kod dvs statisk testning Hitta felet (fault) direkt utan debugging Alla dokument kan granskas (krav, test, design, kod, testfall, ) Rätt personer ska läsa Personerna ska läsa på rätt sätt Alla viktiga delar av dokumenten ska läsas Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2011 / F1 38 Granskningsprocessen Planering Individuell granskning Introduktion Granskningsmöte Omarbete Uppföljning ABC-video: Nu ti/on to - - Krav & plan:?????? MS1 före nästa måndag 24 Test & design:?????? före 3/5 MS2 Roller Moderator Författare Sekreterare Granskare Tips: Planera in det mötet idag! Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 39
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) 40 Några exempel på siffror Antal personer på ett granskningsmöte: 4-10 Mängd material [Ebenau, et.al., Software Inspection Process]: Krav: 5 sid/h Design: 4 sid/h Kod: 150 LOC/h (utan kommentarer) Testplan: 4 sid/h 41
Hur många lejon finns det i skogen? Lejonen kan vara fel och jägarna kan vara granskare Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2011 / F1 42 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 43
ETSA01 Ingenjörsprocessen - Metodik Position 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 44 Att göra inför övning 2 P.1-6 Risker och intressenter I:1: Granska ABC-video inför granskningsmöte Disdag kl 24: Deadline Måndag v3: Föreläsning om testning 5 x deadline Granskningskommentarer Checklistepunkt Kommentar OBS! Grupp 17-26 har övning i E:A på torsdag Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 45
Frågor om projekt som sådana? kursprojektets projektplan? kursprojektets kravspecifikation? 46