Medan vi vntar Diskutera Om man utvecklar ett


































![Tidiga faser är viktiga [Alan Davis] Lunds universitet / LTH / Datavetenskap / ETSA Tidiga faser är viktiga [Alan Davis] Lunds universitet / LTH / Datavetenskap / ETSA](https://slidetodoc.com/presentation_image/6954cb79897ae06163f00785d41e2824/image-35.jpg)













![Riskhantering Riskprocess Sannolikhet hög Strategier låg [1] Risk hög [5] S K Konsekvens • Riskhantering Riskprocess Sannolikhet hög Strategier låg [1] Risk hög [5] S K Konsekvens •](https://slidetodoc.com/presentation_image/6954cb79897ae06163f00785d41e2824/image-49.jpg)





- Slides: 54
Medan vi väntar: Diskutera Om man utvecklar ett system. . . • • Vad kan gå fel? Vad brukar gå fel? Varför då? Vad kan man göra åt det? Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1
ETSA 01 Ingenjörsprocessen för programvaruutveckling – Metodik Föreläsning 1: Kursen, Projektet, Kravhantering och Projektplanering Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 2
Utmaning Kan man förstå software engineering utan att ha upplevt stora programvaruprojekt? Kan man förstå vad som händer i stora programvaruprojekt utan att ha studerat software 3 Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 engineering?
Jonas Wisbrant - minimal CV Samhällsvetare vid LU 1989 Kommunikation och webbutveckling 1990 Programvaruingenjör LTH i Helsingborg 2002 Institutionen för Datavetenskap 2002 LUCAS - Center for Applied Software Research Datorer i System Algoritmer och datastrukturer Ingenjörsprocessen Det Norske Veritas 2008 Institutionen för Datavetenskap ! 2009 Ingenjörsprocessen EASE / Programvaruportalen / kommunikation Datorer i System Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 4
Agenda • Kursen • Projektet • Kravhantering: – Vad är ett bra krav? I pausen: Bilda projektgrupper och köpa kompendier • Projektplanering – Estimering och schemaläggning – Riskhantering • Att göra inför övning 1 • kl 15. 15 i E: 3308 – Wiki-intro för C och I Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 5
Bilda projektgrupper och köp kompendium i pausen • Skriv upp dig på en av grupperna Alla ska ha sex deltagare. – D- och I-grupperna har övning Torsdagar kl 8 -10 – C- och i-grupperna har övning Fredagar kl 8 -10 Grupp 01 Deltagare (namn) från D eller I Program Lisa Larsson D 1 Kalle Karlsson IE 3 to 8 -10 E: 0522 • Notera gruppnummer och övningslokal universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 • Lunds. Köp kompendium 6
ETSA 01 Ingenjörsprocessen för programvaruutveckling – Metodik Kursen Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 7
Kursen Innehåll • Projektplanering • Kravhantering • Arkitekturdesign • Testning • Modeller av utvecklingsprocessen för programvara Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 8
Pedagogisk idé Learing while doing. . . Vi genomför ett utvecklingsprojekt under rimligt ordnade former och kryddar med teori och reflektioner. Övningar Föreläsning Projekt Hemarbete Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1
Översikt Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 10
Kurslitteratur • Bok Pankaj Jalote, A Concise Introduction to Software Engineering, Springer, 2008. – J: 6. 2 -5, 7. 1. 1 -7. 1. 3 kursivt • Kompendium Software Engineering Research Group, Project and Exercises in the Software Engineering Process, 2010. – Säljs av institutionen 50; - Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 11
Examination Projektarbete 26 timmar hemtenta xx juni: U 3 Kravgranskning (10 av 60 p) Beskriv hur en kravgranskning går till och förklara målsättning, varför denna typ av granskning är viktig, vem som bör delta, samt vilka typer av fel man bör leta efter. Diskutera vilka svårigheter som finns då man vill införa denna typ av granskningar i en organisation samt ange tänkbara lösningar på dessa problem. Ange också om det finns några alternativ till denna typ av granskning och vilka dessa i så fall är. Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 12
ETSA 01 Ingenjörsprocessen för programvaruutveckling – Metodik Projektuppgiften Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 13
Projektuppgiften • Arbeta i grupper om 6 personer • Genomför utvecklingsprojekt från början till slut – – – Projektplanering Kravidentifiering och kravanalys Design och implementation Testning Leverans Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 Leverabler –Projektplan –Kravspecifikation –Testplan & testspecifikation –Designdokument –Exekverbar applikation Plattformar –Moinwiki för dokumenten –Java/swing för programvaran 14
Uppgift: Programmera ett cykelgarage
Uppdrag Uppgift: Programmera ett cykelgarage
Målmiljö Uppgift: Programmera ett cykelgarage Uppdrag
Faser och leverabler Uppgift: Programmera ett cykelgarage Uppdrag Målmiljö
Utvecklingsmiljö Uppgift: Programmera ett cykelgarage Uppdrag Målmiljö Faser och leverabler
Aktörer Uppgift: Programmera ett cykelgarage Uppdrag Utvecklingsmiljö Målmiljö Faser och leverabler
Dokumentmiljö Uppgift: Programmera ett cykelgarage Uppdrag Utvecklingsmiljö Målmiljö Aktörer Faser och leverabler
Uppgift: Programmera ett cykelgarage Uppdrag Utvecklingsmiljö Målmiljö Aktörer Faser och leverabler Dokumentmiljö
Kick-start: Etablera projektgrupper senast i pausen Första deadline om 224, 5 h • 172 personer --> 28, 67 29 grupper • Anmäl dig på anslagna lappar i senast i pausen • Kursledningen fördelar de som inte anmält sig • Grupperna är igång på TORSDAG KL 8. – Har konto i projekt-wikin – Har förbrett Övning 1! • Nästa onsdag kl 24 är de två första dokumenten inlämnade Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 23
Projektwikin • Självförklarande ; ) • Läsrätt: – egen grupp – QA-grupp från IP 3 – kursledning (med automatik) Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 24
Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 25
Wiki-intro för C och I kl 15. 15 i E: 3308 • Hur man använder den • Supportfrågor under övning 1 • Rigga om jag blir sen http: //torvalds. cs. lth. se/EDAA 05/Wiki. Intro Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 26
ETSA 01 Ingenjörsprocessen för programvaruutveckling – Metodik Om projekt Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 27
Gruppdiskussion Om man utvecklar ett system. . . • • Vad kan gå fel? Vad brukar gå fel? Varför då? Vad kan man göra åt det? Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1
Hur svårt det är att koka pasta beror på om man gjort det förut . . . och var man börjar Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 29
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 on demand Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 30
Innovationsprojekt vs. en-gång-till-projekt Likheter – Planering och uppföljning – Samarbete och kommunikation –. . . Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 Skillnader – Engångsprojekt – Hög komplexitet – Lätt att ändra sent i projektet –. . . 31
Ska vi börja med projektplanen eller kravspecifikationen? • Beroende av varandra • Kraven är en del av produkten. Sista versionen måste sparas. • Planen är en del av processen. Erfarenheterna bör sparas. Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 32
ETSA 01 Ingenjörsprocessen för programvaruutveckling – Metodik Om kravhantering - del 1 Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 33
Agenda • Krav – Definition, olika sorter • Kravhanteringsprocessen – Identifiera, analysera, dokumentera, validera • Undersökning om verkligheten • Lite större perspektiv Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 34
Tidiga faser är viktiga [Alan Davis] Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 35
“Top 10 challenges” Standish Group Survey ”Chaos Report” (1994) Top 10 Challenges 1. Lack of User Input 2. Incomplete Requirements 3. Changing Requirements 4. Lack of Executive Support 5. Technology Incompetence 6. Lack of Resources 7. Unrealistic Expectations 8. Unclear Objectives 9. Unrealistic Time Frames 10. New Technology Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 [Standish Group, 1995] 36
Vad är ett krav? Idé Önskemål Begränsning Behov Funktion Måste Produktegenskap Underlag för test Lönsam Investering Kontrakt Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 Beslut 37
Olika abstraktionsnivåer • Användarnivå: – Användare, kunder, ingenjörer hos kunder, … • Systemnivå: – Arkitekter, utvecklare, ingenjörer hos kunder, … • Designnivå: – Arkitekter, utvecklare, … [Sommerville 07] Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 38
Olika sorters krav • Funktionella krav – Beskriver vilka funktioner systemet ska erbjuda • Kvalitetskrav (kallas även icke-funktionella krav) – Begränsningar för funktionerna – Påverkar ofta hela produkten Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 39
Kvalitetskrav • Tillförlitlighet – Mognadsgrad, feltolerans, återhämtningsförmåga • Användbarhet – Begriplighet, lärbarhet, handhavande, attraktivitet • Effektivitet – Tidsbeteende, resursutnyttjande • Underhållsbarhet – Analyserbarhet, ändringsbarhet, stabilitet, testbarhet • Portabilitet Delar av ISO 9126, se också Ingproc 2 • Uppfyllandegrad (standarder etc) Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 40
Funktionella krav, exempel • Systemet ska kontrollera att användaren inte väntar max 15 sekunder mellan myntiläggning. Efter 15 sekunder sker time-out. • Vid time-out returnerar systemet erlagda mynt. • Om en kund trycker på en knapp för en vara som inte finns händer ingenting Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 41
Kvalitetskrav, exempel • Det får maximalt gå 1. 0 sekund från en myntiläggning till att systemet är redo att ta emot nästa mynt. • Programvaran får högt använda 6 kbyt RAM • Programvaran får högt använda 65 kbyt ROM Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 42
Kravhanteringsprocessen Nästa vecka: – Hur hittar vi, analyserar och dokumenterar krav – Hur säkerställer vi att vi förstått? Identifiera krav Analysera krav Dokumentera krav – Hur ska vi prioritera? Validera krav Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 43
ETSA 01 Ingenjörsprocessen för programvaruutveckling – Metodik Om projektplanering Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 44
Typiskt innehåll i en projektplan Inledning: projektmodell, utvecklad produkt, affärsmål, 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 ske? Riskanalys Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 2 45
Tre viktiga delområden inom projektplanering • Kostnadsskattning • Schemaläggning • Riskhantering Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 46
Kostnadsskattning • Viktigaste (dvs dyraste) faktorn: persontid. Alltid svårt att veta, men viktigt ändå • Olika angreppssätt – Expertbedömning – Algoritmiska modeller Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 47
Schemaläggning Aktivitetsnätverk för kritisk väg Aktivitet Tid (d) Beroenden A 1 5 A 2 5 A 3 10 A 1 A 4 2 A 3 A 5 10 A 6 15 A 3, A 5 Gantt-diagram Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 48
Riskhantering Riskprocess Sannolikhet hög Strategier låg [1] Risk hög [5] S K Konsekvens • Reducera konsekvens • Minska risk • Alternativ (plan B) Prio (S x K) Strategi Undersöka alternativ Hårdvara försenad 2 5 10 Ont om persontid 4 2 8 Minska scope Strulig beställare 5 1 5 Andas. . . Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 Konstruera simulator 50
Sammanfattning Programvaruprojekt speciella eftersom de är en av, komplexa, och eftersom det går att ändra sent Projektplanen innehåller t ex projektorganisation, arbetsnedbrytning, tidplan och riskanalys 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 Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 2 51
Kommunikation i projektet över tiden U Bekräfta Be st pr älla oj re ek n t s Specifikation & plan tv ec pr kla oj re ek n t s Visioner & krav System Godkänna Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 52
Signaler i projektet • Behov • Idéer • Visioner • Förväntningar • Krav • Avtal • Plan • Data • Specifikationer • Pengar Aktör A Meddelande • Protokoll • Beslut • Förslag Media Meddelande Aktör B Återkoppling • Prototyper Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 53
Intressenter (stakeholders) Beställare Utvecklare Kundansvarig Sponsor IT-funktion Projektledare Slutanvändare Utvecklare Underleverantör Gränssnitt Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 54
Att göra inför övning 1 Kursdeltagare: Prio 1: Kom på banan nu! – Skaffa wiki-konton enligt kurswebb – Läsa K: 2 -6 – Göra A: 7. 1 -6 och A: 8. 3 -6 Prio 2: Kl 15. 15: –C & I vi ses i E: 3308 Nästa måndag –Lite mer om projekt –Mer om kravhantering –Kursombud –Datum för tenta – Läsa J: 3 -4 – Uppdatera: http: //torvalds. cs. lth. se/ETSA 01/gru pp. XX/gruppmedlemmar Kursledning: Prio 1: Kom på banan nu! – Rigga kurswikin Lunds universitet / LTH / Datavetenskap / ETSA 01 VT 2010 / F 1 55