Detta har hänt... Pratat krav Bildat projektgrupper :-) Skaffat litteratur? Kommit igång med projektwikin: Formulerar krav Genomfört en övning: Hur var den? ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Föreläsning 2: Projekt, Kravhantering, Dokumentgranskning Jonas Wisbrant 2 Agenda Kursinformation V 2: Måndag: Nu Tisdag kl 24: Deadline Kravspecifikation 0.x Inför övning to: Kursinformation Projektet, wikin och deadlines Kursombud Mer om kravhantering Mer om projekt, projektplanering Dokumentgranskning 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 1 Föreläsning: Testning Måndag kl 24 deadline: Granskningsprotokoll + Kravspecifikation 0.99 Granskningsprotokoll + Projektplan 0.99 3 4 Man kan även lägga upp granskningsprotokollen som en PDF-fil och länka till den
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. Inlämning imorgon ti kl 24: Kravspec 0.x Jobba gärna vidare under tiden 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 Projekthandledarna vill veta: 4. Den -siffriga nummer projektet har tillgång till representeras av siffrorna 8-12 Borde vara det, inte den! Tack! Fixat :-). 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/ Kravspecifikation är påbörjat och innehåller tänk Produktbeskrivning i klartext? Dokumentets struktur? Användarfall? Kontextdiagram? Återkoppling via mail & / övning 2 6 7 Inlämning måndag v3 kl 24: Krav 0.99 Utse kursombud } granskning krav Plan 0.99 Möten Fr 2012-03-30 kl 12.30 i LUCAS-rummet (E:4130) Må 2012-0-07 kl 12.30 i LUCAS-rummet (E:4130) granskning plan Återkoppling Beslut: Innehåll Form Korrigering Krav 1.0 Plan 1.0 Alfredsson, Emilia (I) Sartorius, Carolina (D) Eliasson, Anton (D) Wigren, Adam (C) Gråborg, Mikael (C) Ändringshantering 8 9
ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Kravhanteringsprocessen krav Nu vet vi hur vi formulerar funktions- och kvalitets-krav. Men... krav Hur hittar vi, analyserar och dokumenterar krav Kravhantering fortsättning krav Hur säkerställer vi att vi förstått? krav Hur ska vi prioritera? Process enligt wikipedia En samling i förväg uttänkta aktiviteter som ska användas varje gång man skapar ett visst resultat... Dataflödesdiagram 11 ER-diagram - Entity Relationship Data lagras i systemet (entitet + attribut), t ex: Student: pnr, namn, inskrivningsår 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 12 * 13
Naturligt språk Skillnad? Fördelar: Generellt Flexibelt Lätt att använda och förstå 14 Delar i en kravspecifikation Nackdelar: Otydligt Lätt att blanda olika sorters krav Lätt att slå samman flera krav i ett 1 Spårbarhet Table of contents 1. Introduction 1.1 Purpose 1.2 Scope 1.3 Definitions, Acronyms, and Abbreviations 1.4 References 1. Overview 2. General Description 2.1 Product Perspective 2.2 Product Functions 2.3 User Characteristics 2.4 General Constraints 2. Assumptions and Dependencies 3. Specific Requirements Appendix Index Från krav till källan Mellan krav - visar beroende Från design och kod till krav Från testfall till krav [IEEE Guide to Software Requirements Specifications, ANSI/IEEE Std 830-1984] 16 17
kraven Kontrollera att kravspecifikationen är korrekt och av hög kvalitet Tidiga faser är viktiga Exempel på metoder: Granskning (vanligast) Utveckla testfall Verktygsstöd för formellt skrivna krav [Alan Davis] 18 Bra egenskaper hos en kravspecifikation Korrekt Komplett Otvetydig Verifierbar Konsistent Prioriterad 19 Checklista för granskning för kursens projekt 1. Saknas några krav? 2. Är samtliga krav nödvändiga? 3. Finns det några motstridiga krav? 4. Kan samtliga krav verifieras?. Ä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? Genomförbar Modifierbar Spårbar 8. Följer kravspecifikationen sin dokumentmall? 9. Är något krav formulerat för detaljerat?.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? 20 21
Kravprioritering Exempel, prioritering 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 13 Värde 6 1 4 2 3 7 8 9 11 12 14 Kostnad 22 Krav och projekt i ett större perspektiv 23 Sammanfattning - Krav Viktigt eftersom tidiga faser påverkar mycket Krav kan finnas på olika abstraktionsnivåer Produktledning Kvalitetskrav påverkar ofta hela produkten Plattform Krav Design Impl Test Kravhanteringsprocessen: identifiera, analysera, dokumentera, validera Egenskaper hos krav: korrekt, komplett, otvetydig, verifierbar, konsistent, prioriterad, genomförbar, modifierbar, spårbar Produkter Krav Krav Krav Design Impl Design Impl Design Impl Test Test Test 24 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) 2
Diskussion: Förklara för varandra ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Vad är det för skillnad mellan projektets: Affärsmål Projektmål Produktmål Om projektplanering och projektplaner 26 Signaler i projektet Aktör A Specifikationer Pengar Protokoll Beslut Förslag Prototyper Frågor Förtydliganden Meddelande Media Visioner & krav Specifikation & plan Produkten Testresultat Acceptans Meddelande Aktör B Bekräfta System Godkänna Återkoppling 28 tv e pr ck oj lar ek e t ns Plan Data Kommunikation i projektet över tiden U Behov Idéer Visioner Förväntningar Krav Avtal Be s pr täll oj ar ek en t s?
Typiskt innehåll i en projektplan Fyra viktiga metoder inom projektplanering Projektorganisation: utvecklingsorganisationen, andra intressenter t Underleverantör U Be Inledning: projektmodell, utvecklad produkt, målsättningar, begränsningar Visio Spec Bekr Syst God Intressentanalys Kostnadsskattning Hårdvara och programvara som krävs för projektets genomförande Arbetsnedbrytning: aktiviteter, leverabler, milstolpar September Tidplan: när varje aktivitet påbörjas och avslutas, när varje milstolpe ska uppnås Schemaläggning Uppföljning och rapportering: hur detta ska ske? Riskanalys Aktör A 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 Meddelande Media Meddelande Aktör B Återkoppling 30 Intressentanalys (stakeholders) Beställare 31 Kostnadsskattning Utvecklare Kundansvarig Sponsor IT-funktion Projektledare Slutanvändare Persontid viktigaste (dvs dyraste) faktorn Alltid svårt att veta, men viktigt ändå Olika angreppssätt Utvecklare Expertbedömning Algoritmiska modeller Underleverantör Vad vill varje intressent? Konflikter? Gränssnitt Mer i Ingenjörsprocessen - ekonomi och kvalitet [ETSF01] 32 33
Riskhantering Schemaläggning Aktivitetsnätverk för kritisk väg Aktivitet A1 Tid (d) Beroenden A2 A3 A1 A4 2 A3 A A6 1 Sannolikhet 1 A hög A6 start Riskprocess A1 2 A3 A4 slut Strategier A3, A låg 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 A2 låg [1] 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 Typiskt innehåll i en projektplan Risk Konsekvens hög [] S K Prio (S x K) Reducera konsekvens Minska risk Alternativ (plan B) Strategi Hårdvara försenad 2 Ont om persontid 4 2 8 Undersöka alternativ Konstruera simulator Minska scope Strulig beställare 1 Andas... 3 Sammanfattning projektplanering Inledning: projektmodell, utvecklad produkt, affärsmål, begränsningar Programvaruprojekt speciella eftersom de är en av, komplexa, och eftersom det går att ändra sent Projektorganisation: utvecklingsorganisationen, andra intressenter Projektplanen beskriver t ex projektorganisation, arbetsnedbrytning, tidplan och riskanalys, mm. Hårdvara, programvara och andra resurser som krävs för projektets genomförande Kostnadsskattning kan göras baserat på expertbedömningar eller algoritmiska modeller Arbetsnedbrytning: aktiviteter, leverabler, milstolpar Riskhantering sker i fyra steg: identifiera risker, bedöm risker, behandla risker, följ upp risker 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 37
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 ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Dokumentgranskning (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 38 Granskningsprocessen Introduktion Planering ABC-video: Krav & plan: Nu före individuell hranskning Test & design: Granskningsmöte Omarbete Uppföljning ti/on Ö2 - - TBD TBD Roller Moderator Sekreterare Författare Granskare 39 Lästekniker (individuell granskning) Individuell granskning före möte före omarbete före nästa måndag 24 MS1 TBD före 3/ MS2 Tips: Planera in det mötet idag! 40 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? Hur många lejon finns det i skogen? Planering och introduktion:? Hur vet man om det är värt det? Individuell granskning*: Krav: sid/h Design: 4 sid/h Kod: LOC/h (utan kommentarer) Testplan: 4 sid/h Antal personer på ett granskningsmöte: 4- personer x?h Omarbete och uppföljning:?h Planering Introduktion Individuell granskning Granskningsmöte Omarbete Uppföljning Lejonen kan vara fel och jägarna kan vara granskare * Ebenau, et.al., Software Inspection Process 42 Med två granskare Sammanfattning - Granskning A N = totalt antal fel (som man vill veta) Systematisk metod för att identifiera problem i material som inte kan exekveras Tar tid men lönar sig i allmänhet NA = antal fel som granskare A hittar Under stabila förhållanden kan man uppskatt hur många fel som finns kvar NB = antal fel som granskare B hittar NAB = antal fel som båda hittar 43 Granskning är bra B Andel som granskare A hittar = NAB/NB Planering Andel som granskare A hittar = NA/N Introduktion Individuell granskning Granskningsmöte Omarbete Uppföljning NA/N = NAB/NB --> N = NA* NB/NAB 44 4
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