Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Medan vi väntar: Diskutera Vad kan gå fel? Vad brukar gå fel? Varför då? Vad kan man göra åt det? Om man utvecklar ett system...
2 ETSA01 Ingenjörsprocessen för programvaruutveckling – Metodik Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Föreläsning 1: Kursen, Projektet, Kravhantering och Projektplanering
3 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 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 engineering?
4 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Jonas Wisbrant - minimal CV Samhällsvetare vid LU1989 Kommunikation och webbutveckling1990 Programvaruingenjör LTH i Helsingborg2002 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 EASE / Programvaruportalen / kommunikation Datorer i System Ingenjörsprocessen
5 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Agenda Kursen Projektet Kravhantering: –Vad är ett bra krav? Projektplanering –Estimering och schemaläggning –Riskhantering Att göra inför övning 1 kl i E:3308 –Wiki-intro för C och I I pausen: Bilda projektgrupper och köpa kompendier
6 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 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 Notera gruppnummer och övningslokal Köp kompendium Grupp 01Deltagare (namn) från D eller IProgram to 8-10 E:0522 Lisa LarssonD1 Kalle KarlssonIE3
7 ETSA01 Ingenjörsprocessen för programvaruutveckling – Metodik Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Kursen
8 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Kursen Innehåll Projektplanering Kravhantering Arkitekturdesign Testning Modeller av utvecklingsprocessen för programvara Formalia 5 hp Obligatorisk för C1, D1, alternativobligatorisk för I3 Moment Föreläsningar Övningar Projekt Hemtentamen Del 1 av 3 kurser 8
Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Pedagogisk idé Vi genomför ett utvecklingsprojekt under rimligt ordnade former och kryddar med teori och reflektioner. Learing while doing... Föreläsning Hemarbete Övningar Projekt
10 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Översikt
11 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Kurslitteratur Bok Pankaj Jalote, A Concise Introduction to Software Engineering, Springer, –J: 6.2-5, kursivt Kompendium Software Engineering Research Group, Project and Exercises in the Software Engineering Process, –Säljs av institutionen 50;-
12 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Examination Projektarbete 26 timmar hemtenta xx juni: U3 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.
13 ETSA01 Ingenjörsprocessen för programvaruutveckling – Metodik Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Projektuppgiften
14 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 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 Leverabler –Projektplan –Kravspecifikation –Testplan & testspecifikation –Designdokument –Exekverbar applikation Plattformar –Moinwiki för dokumenten –Java/swing för programvaran
Uppgift: Programmera ett cykelgarage
Uppdrag
Uppgift: Programmera ett cykelgarage Uppdrag Målmiljö
Uppgift: Programmera ett cykelgarage Uppdrag Målmiljö Faser och leverabler
Uppgift: Programmera ett cykelgarage Faser och leverabler Uppdrag Målmiljö Utvecklingsmiljö
Uppgift: Programmera ett cykelgarage Faser och leverabler Utvecklingsmiljö Uppdrag Målmiljö Aktörer
Uppgift: Programmera ett cykelgarage Faser och leverabler Aktörer Utvecklingsmiljö Uppdrag Målmiljö Dokumentmiljö
Uppgift: Programmera ett cykelgarage Faser och leverabler Aktörer Dokumentmiljö Utvecklingsmiljö Uppdrag Målmiljö
23 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Kick-start: Etablera projektgrupper senast i pausen 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 Första deadline om 224,5 h
24 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Projektwikin Självförklarande ;-) Läsrätt: –egen grupp –QA-grupp från IP3 –kursledning (med automatik)
25 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1
26 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Wiki-intro för C och I kl i E:3308 Hur man använder den Supportfrågor under övning 1 Rigga om jag blir sen
27 ETSA01 Ingenjörsprocessen för programvaruutveckling – Metodik Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Om projekt
Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Gruppdiskussion Vad kan gå fel? Vad brukar gå fel? Varför då? Vad kan man göra åt det? Om man utvecklar ett system...
29 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Hur svårt det är att koka pasta... och var man börjar beror på om man gjort det förut
30 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 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
31 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Innovationsprojekt vs. en-gång-till-projekt Likheter –Planering och uppföljning –Samarbete och kommunikation –... Skillnader –Engångsprojekt –Hög komplexitet –Lätt att ändra sent i projektet –...
32 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 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.
33 ETSA01 Ingenjörsprocessen för programvaruutveckling – Metodik Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Om kravhantering - del 1
34 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Agenda Krav –Definition, olika sorter Kravhanteringsprocessen –Identifiera, analysera, dokumentera, validera Undersökning om verkligheten Lite större perspektiv
35 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 [Alan Davis] Tidiga faser är viktiga
36 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 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 [Standish Group, 1995] “Top 10 challenges”
37 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Måste Önskemål Produkt- egenskap Kontrakt Beslut Begränsning Funktion Idé Behov Lönsam Investering Underlag för test Vad är ett krav?
38 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Olika abstraktionsnivåer Användarnivå: –Användare, kunder, ingenjörer hos kunder,… Systemnivå: –Arkitekter, utvecklare, ingenjörer hos kunder,… Designnivå: –Arkitekter, utvecklare,… [Sommerville07]
39 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 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
40 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 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 Uppfyllandegrad (standarder etc) Delar av ISO9126, se också Ingproc 2
41 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 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
42 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 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
43 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Kravhanteringsprocessen Dokumentera krav Validera krav Analysera krav Identifiera krav Nästa vecka: –Hur hittar vi, analyserar och dokumenterar krav –Hur säkerställer vi att vi förstått? –Hur ska vi prioritera?
44 ETSA01 Ingenjörsprocessen för programvaruutveckling – Metodik Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Om projektplanering
45 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F2 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 ska ske? Riskanalys
46 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Tre viktiga delområden inom projektplanering Kostnadsskattning Schemaläggning Riskhantering
47 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Kostnadsskattning Viktigaste (dvs dyraste) faktorn: persontid. Alltid svårt att veta, men viktigt ändå Olika angreppssätt –Expertbedömning –Algoritmiska modeller
48 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Schemaläggning AktivitetTid (d)Beroenden A15 A25 A310A1 A42A3 A510 A615A3, A5 Aktivitetsnätverk för kritisk väg Gantt-diagram
49 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Time Management T1 M1 T2 S S T3 M2 T4 M3 T5 E E /15 31/31 10/36 0/0 48/48 Activity Network 1.Define Milestones 2.Draw network graph 3.Earliest starting time 4.Last possible starting time 5.Critical path UTidBeroenden T110 T212T1 T315 T416T1, T3 T517T4
50 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Riskhantering Strategier Reducera konsekvens Minska risk Alternativ (plan B) Sannolikhet låg [1] hög [5] hög låg Konse- kvens RiskSKPrio (S x K)Strategi Hårdvara försenad 2510 Undersöka alternativ Konstruera simulator Ont om persontid428Minska scope Strulig beställare515Andas... Riskprocess
51 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F2 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
52 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Kommunikation i projektet över tiden Specifikation & plan Bekräfta System Godkänna Beställarens projekt Utvecklarens projekt Visioner & krav
53 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 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 AMediaMeddelande Återkoppling Meddelande Aktör B
54 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Intressenter (stakeholders) Gränssnitt Underleverantör Kundansvarig Utvecklare Projektledare Utvecklare Slutanvändare IT-funktion Sponsor Beställare
55 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 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: –Läsa J:3-4 –Uppdatera: ETSA01/gruppXX/grup pmedlemmar ETSA01/gruppXX/grup pmedlemmar Kursledning: Prio 1: Kom på banan nu! –Rigga kurswikin –Förbereda övning 1 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 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