Föreläsning 2: ering & granskning INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT 57 Detta har hänt... Pratat och provat kravhantering Bildat projektgrupper :-) Skaffat litteratur? Kommit igång med projektwikin Genomfört en dubbel workshop Hur var den? L1:, funktionella krav, kvalitetskrav fb1: tillgång? begripligt? 58
Sammanfattning - Viktigt eftersom tidiga faser påverkar mycket kan finnas på olika abstraktionsnivåer påverkar ofta hela produkten Egenskaper hos krav: korrekt, komplett, otvetydig, verifierbar, konsistent, prioriterad, spårbar, genomförbar Spårbarhet: källa krav, krav-krav, krav-design/kod, krav-test är en viktig del i arbetet med produktledning och produktplanering 59 Agenda F2 Kursen Kursmål Kursombud ering Projekt eller utvecklingsprojekt? ering Strukturerad dokumentgranskning Grupperna: 11-15 26-28 i E:1406 på torsdag morgon Projektuppgiften Återkoppling L1 Projektens projektplan Inför övning 2 60
Kursmål - beställningen i bild täckning 61 Kursmål - beställningen i text Kunskap och förståelse kunna definiera grundläggande begrepp inom utveckling av stora programvarusystem. kunna beskriva de vanligaste processerna för utveckling av stora programvarusystem. kunna förklara de viktigaste momenten i kravhanteringsprocessen. kunna förklara hur testning går till. kunna beskriva vad en arkitekturdesign är. kunna beskriva de viktigaste stegen i projektplanering och projektuppföljning. kunna beskriva hur organisationer planerar och genomför en serie av projekt. Färdighet och förmåga kunna utveckla projektplan, kravspecifikation och testplan för ett mindre projekt. kunna granska projektplan, kravspecifikation och testplan för ett mindre projekt. kunna skriftligen formulera text i projektdokumentation. 62 Värderingsförmåga och förhållningssätt förstå komplexiteten i uppgiften att utveckla ett programvarusystem. ha förståelse för ingenjörens yrkesroll.
Utse kursombud Möten Fr 2013-04-19 kl 12.30-13.10 i LUCAS-rummet (E:2405) Må 2013-05-07 kl 12.30 i LUCAS-rummet (E:4130) Beslut: Jonatan Bratel (I) Erik Gärtner (D) Konrad Gjertsson (D) Anna Lissborg(C) Anton Lundborg (C) 63 Projekt vs. utvecklingsprojekt? 64
Hur svårt det är att koka pasta... beror på om man gjort det förut... och var man börjar 65 Projekt är något mer eller mindre unikt Från beställares synvinkel: en investering som ska gå med vinst avstämningspunkter för att se om det går som man tänkt sig Från utförares synvinkel: en teknisk uppgift som ska bli klar i tid avstämningspunkter för att visa att man klarar att utföra uppgiften UTMANING: Vi bygger inte ytterligare ett hus, gipsar nästa ben eller kokar pasta igen...... vi gör innovation på beställning. 66
Utvecklingsprojekt vs. en-gång-till-projekt Likheter Skillnader Planering och uppföljning Hög komplexitet Samarbete Kan ändra sent... Utvecklingsprojekt är något som man gör när man inte vet från början exakt hur det ska gå till 67 Photo attribution: nuchylee at http://www.freedigitalphotos.net/ 68 täckning
Ska vi börja med projektplanen eller kravspecifikationen? Fas 1 Specifikation Fas 2 Fas 3 Implementation och enhetstest Fas 4 specifikation Testplan dokument Exekverbar källkod Dokumenterat genomförda systemtest Beroende av varandra en är en del av produkten. Sista versionen måste sparas. Planen hör till organisationen. Erfarenheterna bör sparas. 69 ering och projektplaner 70
ering täckning 71 Diskussion: Förklara för varandra Vad är det för skillnad mellan projektets:? Projektmål 72
täckning täckning ering Intressentanalys 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 4 23 November Användarf Funkt K 73 Kommunikation i projektet över tiden Visioner & krav Beställarens projekt Specifikation & plan Bekräfta System Utvecklarens projekt Godkänna 74
täckning Signaler i projektet Behov er Visioner Förväntningar 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 75 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 : 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 76
täckning täckning Fyra viktiga metoder inom projektplanering Intressentanalys Underleverantör Kostnadsskattning Schemaläggning 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 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 Riskhantering 77 Intressentanalys (stakeholders) Organisationer Beställare Utvecklare Sponsor Kundansvarig IT-funktion Projektledare Slutanvändare Utvecklare Vad vill varje intressent? Affärs-, produkt och projektmål Konflikter? Kommunikationsbehov Underleverantör Gränssnitt 78
täckning täckning Kostnadsskattning Persontid viktigaste (dvs dyraste) faktorn Alltid svårt att veta, men viktigt ändå Olika angreppssätt Expertbedömning Algoritmiska modeller 79 Schemaläggning Aktivitet Tid (d) Beroenden A1 5 A2 5 A3 10 A1 A4 2 A3 A5 10 A6 15 A3, A5 start Aktivitetsnätverk för kritisk väg 10 15 A5 A6 5 10 2 A1 A3 A4 5 slut Gantt-diagram A2 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 80 4 23 November
täckning täckning Riskhantering hög Riskprocess Sannolikhet låg låg [1] Konsekvens hög [5] Strategier Reducera konsekvens Minska risk Alternativ (plan B) 81 Risk S K Prio (S x K) Strategi Undersöka alternativ Hårdvara försenad 2 5 10 Konstruera simulator Ont om persontid 4 2 8 Minska scope Strulig beställare 5 1 5 Andas... Prioritera för given funktionalitet: Tidpunkt, kostnad eller kvalitet Tidpunkt När ska vi leverera? Ju större osäkerhet desto svårare att fixera......prioritera en eller två...... lova aldrig alla tre. Kostnad Vad kan det få kosta? Kvalitet Hur bra ska det bli? 82
täckning täckning 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 : 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 83 Sammanfattning projektplanering Programvaruprojekt speciella eftersom de är en av, komplexa, och eftersom det går att ändra sent en 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 Tidpunkt - kostnad - kvalitet: Välj max 2 84
Statisk testning - dokumentgranskning 85 ar grundläggande idé Hitta fel tidigt utan att exekvera kod d.v.s statisk testning Rätt personer ska läsa Personerna ska läsa på rätt sätt Alla viktiga delar av dokumenten ska läsas Alla dokument kan granskas (krav, test, design, kod, testfall, ) Läs dokument på ett strukturerat sätt täckning 86
täckning täckning sprocessen Planering Individuell granskning Introduktion smöte Omarbete Uppföljning ABC-video: Nu ti/on Ö2 - - specifikation före individuell granskning före möte före omarbete före nästa måndag 24 MS1 Test & design: TBD TBD TBD före 3/5 MS2 Roller Moderator Författare Sekreterare Granskare Förslag: senast fredag 87 Lästekniker vid 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 88
täckning täckning Vad kostar det? Planering Individuell granskning Introduktion smöte Omarbete Uppföljning Planering och introduktion:? Individuell granskning: : 5 sid/h : 4 sid/h Kod: 150 LOC/h (utan kommentarer) Testplan: 4 sid/h Hur vet man om det är värt det? Antal personer på ett granskningsmöte: 4-10 personer x?h Omarbete och uppföljning:?h 89 V-modellen för programvaruutvecking Har vi hittat problemen - eller hur många lejon finns det i skogen? Lejonen kan vara fel och jägarna kan vara granskare 90
täckning täckning V-modellen för programvaruutvecking Med två granskare A N = totalt antal fel (som man vill veta) N A = antal fel som granskare A hittar NB = antal fel som granskare B hittar N AB = antal fel som båda hittar B Andel som granskare A hittar = N AB /N B Andel som granskare A hittar = N A /N N A /N = N AB /NB --> N = N A * NB/N AB 91 V-modellen för programvaruutvecking - sammanfattning Planering Individuell granskning Introduktion smöte Omarbete Uppföljning 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 är bra 92
Projektuppgiften - forts 93 Projektuppgiften - storyn Utveckla och leverera programvara till ett organiserat garage som förvarar cyklar. - - Installationsmanual Arbetsgivaren och beställare vill ha insyn: - - sprotokoll - Testrapporter från systemtest Vi vet att det ska vidareutvecklas av någon annan: - specifikation - Testspecifikation - - Leverabler specifikation Testplan & testspecifikation srapporter dokument Manual Testrapporter Exekverbar applikation Plattformar Moinwiki för dokumenten Java/swing för programvaran 94
Uppdrag Faser och leverabler Målmiljö specifikation = barcode reader Operator = electronic lock Barcode printer PC = pincode terminal Fas 1 Specifikation Testplan Fas 2 Extra exit door Bicycle garage Entry door dokument Fas 3 Implementation och enhetstest Exit door Fas 4 Utvecklingsmiljö Aktörer Dokumentmiljö Projekthandledare Projektgrupp 95 QA från IP3 L3 måndag v 16 kl 24: 0.x Good version Individual inspection Inspection meeting Inspection protocoll 0.99 Supervisor review Better version 0.0991 Supervisor feedback 1.0 96 Exekverbar källkod Dokumenterat genomförda systemtest
i wikin? Något som fungerar För projektgruppen För projekthandledaren Kan ha fler rubriker... 97 Veckoschema för projekten - idé måndag tisdag onsdag torsdag fredag V tid 8 10 12 13 15 K 8 10 12 13 15 K 8 10 12 13 15 K 8 10 12 13 15 K 8 10 12 13 15 K lö sö 12 Student Ö0a F1 Ö0b Ö1a Ö0c Ö1b Projekt 1,0 spec 1,0 2,0 1,0 1,0 1,0 L1 Handledare -> fb0 15 Student F2 Ö2 Projekt spec 1,0 3,0 L2 G1 Handledare - - - - - -> fb1 - - - -> fb2 16 Student F3 Ö3 Projekt spec > L3 L3 Testplan Handledare - - - - - - - - - - - - -> fb3 17 Student F4 Ö4 Projekt spec G2 > L4 L4 98 Testplan G3 G4
Att göra inför övning 2 P.1-6 och intressenter I:1: Granska ABC-video och notera brister inför granskningsmöte torsdag morgon Onsdag kl 13: Mjuk deadline krav 0.x Torsdag kl 8: Återkoppling@Ö2 Måndag v16: Föreläsning om testning 3 x hård deadline 4 dag Torsdag v 16: Återkoppling@Ö3 99 Frågor om projekt som sådana? kursprojektets projektplan? kursprojektets kravspecifikation? 100