Streamade föreläsningar på webben ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Föreläsning 1: Kursen & Projektuppgift Synligt inom LU Vänligen sprid inte filmerna! Ni bör inte synas Utvecklingsprojekt & Kravhantering Skicka gärna frågor om innehåll via formuläret! Möjligen nacken på 2-3 främre rader Jonas Wisbrant Ni kan komma att höras Säg till om jag ska klippa bort ljud 2 Utmaning 3 Jonas Wisbrant - kort CV Samhällsvetare vid LU Kommunikation och webbutveckling Programvaruingenjör LTH i Helsingborg Institutionen för Datavetenskap 1 Kan man förstå software engineering utan att ha upplevt stora programvaruprojekt? 1989 1990 2002 2002 LUCAS - Center for Applied Software Research Diverse undervisning Det Norske Veritas 2008 Institutionen för Datavetenskap 2 2009 EASE / Programvaruportalen / kommunikation Datorer i System Ingenjörsprocessen Kan man förstå vad som händer i stora programvaruprojekt utan att ha studerat software engineering? 4 Datavetenskap + LU webb 2011 5
Agenda F1 Kursen & projektuppgiften ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Vad är ett utvecklingsprojekt Kravhantering: Vad är ett krav? Hur hittar vi dem? Hur vet vi att de är bra? I pausen: Bilda projektgrupper och köpa kompendier Kursen Att göra inför övning 1 On kl 13 & to kl 10 i E:Hacke Wiki-praktik för C och I Kursen Innehåll Projektplanering Kravhantering Arkitekturdesign Testning Modeller av utvecklingsprocessen för programvara 6 Kurslitteratur Formalia 5 hp Obligatorisk för C1, D1, alternativobligatorisk för IE3 Moment - Föreläsningar Övningar 7 Bok Pankaj Jalote, A Concise Introduction to Software Engineering, Springer, 2008. J: 6.2-5, 7.1.1-7.1.3 kursivt Övningar Föreläsning Projekt Projekt Hemtentamen Hemarbete Del 1 av 3 kurser Kompendium Examples and Exercises in the Software Engineering Process, 2011. Säljs av institutionen för 50;- Vi genomför ett utvecklingsprojekt under rimligt ordnade former och belyser det med teori och reflektioner. 8 9
ETSA01: Ingenjörsprocessen metodik VT 2012 2012-02-20 kl 10.02 Förklaring J = Jalote, Pankaj K = Kurskompendium Tidplan v 1.0 OBS! Dokumentet kan komma att uppdateras före och under kursen! A = Övning på kurswebben P = Projektbeskrivning på kurswebben Examination Dag Aktivitet Må kl 9 V11 (12-16/3) Må kl 15 F1 Ö1 V12 (19-23/3) To kl 10 V13 (26-30/3) Läsa Gör i förväg Händer på plats Kursöversikt, kravhantering, projektplanering, gruppindelning Praktisk introduktion till projektwiki för C&I Tillfälle 1 (E:Hacke) F2 I To kl 8 Ö2 Må kl 15 F3 Må 24.00 I Kravspecifikation 0.99, Projektplan 0.99, granskningsprotokoll från intern granskning av de versioner som föregick 0.99orna. To kl 8 Ö3 Ändringshantering Testplanering, Systemtest 26 timmar hemtenta 24-25/5: Enkla övningsuppgifter för att komma in i wikin. A: R.1-6 Diskussion: A: R.1-6 Göra: A: R.7-10 Enkla övningsuppgifter för att komma in i wikin. Praktisk introduktion till projektwiki för C&I Tillfälle 2 (E:Hacke) Ti 24.00 Projektarbete J: 1, 3, 4 Kravhantering: Kravkriterier, Kvalitetskrav, Översiktligt: J 3-4 Use-Case, relationen mellan USE-case och K: 2 + 4-6 skall-krav. Detaljerat: J: 3.4-5 Må kl 15 Projektåterkoppling Genomgång av den wiki som kommer att användas under projekten Teoretisk introduktion till projektwiki för C&I (E:3308) On kl 13 To kl 8 Innehåll Kravhantering, Granskning, Projektplanering Kravspecifikation 0.x J: 3, 4, 7.5 Projektplanering: Intressentanalys, Affärsmål, projektmål, produktmål Riskanalys, riskkategorier, uppställning Dokumentgranskning (inspection) Testning J: 4.1 J: 4.4-5 J: 7.5 A: P.1-5 A: I.1 Att wikin är igång och dokument är upprättade och påbörjade. Kort återkoppling på kravspecifikationen Diskussion: A: P.1-6 Göra A: I.2-3 J: 8 A: T.1-8 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Att krav, plan och granskningsprotokoll är av tillräcklig kvalitet för att milstolpe 1 ska kunna passeras. Återkoppling Kravspecifikation 0.99 och Projektplan 0.99 Diskussion: A:T.1-8 Göra: A: T.15-1610 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. 11 V16 (16-20/4) Påskuppehåll Ti kl 15 F4 Arkitektur, design, kodning, versioner On kl 24.00 I MS1 Uppdaterade krav och plan som Kravspecifikation 1.0 och Projektplan 1.0 To kl 8 Ö4 Test forts. Design Må kl 24.00 I MS2 Testplan 1.0, Design 1.0, Granskningsprotokoll från granskningar inför Testplan 1.0 och Design 1.0 J: 5, 6, 7 A: T.9-11 Diskussion: A: T.9-11 V17 (23-27/4) Göra: A: T.9-14 De 4 dokumenten används tillsammans med versionshistoriken som bas när projektets slutleverans bedöms. Övergripande återkoppling på Testplan 1.0 och Design 1.0 Hälsningar från förra årets studenter To kl 9 Ö5 Kursboken kan upplevas som svår V19 (7-11/5) Ingen schemalagd verksamhet F5 Utvecklingsprocesser, vidareutveckling, J: 2 Projektet innebär att man ofta känner osäkerhet om tentamen Skriv upp dig på en av grupperna Alla grupper ska ha sex deltagare. Må kl 15 Det är viktigt att alla i projektgruppen har koll på I SlutSista versionen av Kravspecifikation, tidplanen (vem, vad, när) inlämning Projektplan, Testplan, Design, exekverbar V20 (14-18/5) On 24.00 T Må kl 15 24/5 kl 08.00-25/5 kl 10.00 F6 Inför tentan Utvärdering Bilda projektgrupper och köp kompendium i pausen A: HE.1-3 Granskning och bedömning av samtliga dokument Grupp XX kod, testprotokoll samt manual för systemstart Nytt och i kursen Hem-obeprövat Hela kursen Deltagare (namn) Program Lisa Larsson D1 Kalle Karlsson IE3 tentamen Modifierad projektuppgift (manualer) E:3308 Filmer publicerade i förväg Studenter som projekthandledare Notera grupp och övningslokal Köp kompendium 5v-påsk&bygg --> 3v-påsk-2v-bygg ---> 12 13
Projektuppgiften Arbeta i grupper om 6 personer ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Genomför utvecklingsprojekt från början till slut Projektuppgiften 14 Uppgift: Programmera ett cykelgarage Uppdrag Kravspecifikation Projektplan Testplan & testspecifikation Granskningsrapporter Designdokument Manual Testrapporter Exekverbar applikation Plattformar Moinwiki för dokumenten Java/swing för programvaran 15 Kick-start: Etablera projektgrupper senast i pausen Faser och leverabler Målmiljö = electronic lock Barcode printer PC = pincode terminal Fas 1 Specifikation Projektplan 188 personer --> Testplan Fas 2 Design Fas 3 Implementation och enhetstest Exit door 31,3 31 grupper Designdokument Extra exit door Bicycle garage Första deadline om 200,5 h Kravspecifikation = barcode reader Operator Entry door Kravidentifiering och kravanalys Projektplanering Design och implementation Testning Leverans Leverabler Fas 4 Systemtest Exekverbar källkod t genomförda systemtest 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. Utvecklingsmiljö Aktörer Dokumentmiljö Har konto i projekt-wikin Har förberett Övning 1! Har läst in sig på projektuppgiften Projekthandledare Nästa tisdag kl 24 är det första dokumentet inlämnat Projektgrupp QA från IP3 17
Projektwikin Självförklarande ;-) On kl 13 To kl 10 i E:Hacke Wiki-praktik för C och I Läsrätt: egen grupp kursledning (med automatik) 18 ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Om man utvecklar ett system... Om utvecklingsprojekt 20 Vad kan gå fel? Vad brukar gå fel? Varför då? Vad kan man göra åt det? 19
Hur svårt det är att koka pasta Projekt är något mer eller mindre unikt beror på om man gjort det förut 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... och var man börjar 22 Utvecklingsprojekt vs. en-gång-till-projekt Likheter Planering och uppföljning Samarbete och kommunikation... Skillnader Hög komplexitet Kan ändra sent... Ska vi börja med projektplanen eller kravspecifikationen? Kravspecifikation Fas 1 Specifikation Beroende av varandra Projektplan Testplan Fas 2 Design Designdokument Fas 3 Implementation och enhetstest Utvecklingsprojekt är något som man gör när man inte vet från början exakt hur det ska gå till 23 24 Exekverbar källkod Fas 4 Systemtest Kraven är en del av produkten. Sista versionen måste sparas. Planen hör till organisationen. Erfarenheterna bör sparas. t genomförda systemtest 25
Agenda Krav Definition, olika sorter Kravhanteringsprocessen identifiera analysera dokumentera validera ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Om kravhantering 26 Top 10 challenges 27 Vad är ett krav? Standish Group Survey Chaos Report (1994) Top 10 Challenges 1. Lack of User Input Idé Önskemål 2. Incomplete Requirements 3. Changing Requirements 4. Lack of Executive Support 5. Technology Incompetence 6. Lack of Resources 7. Unrealistic Expectations Begränsning Om man utvecklar ett system... Vad kan gå fel? Vad brukar gå fel? Varför då? Vad kan man göra åt det? Behov Funktion Måste Produktegenskap Underlag för test Lönsam Investering 8. Unclear Objectives 9. Unrealistic Time Frames Kontrakt 10. New Technology Beslut [Standish Group, 1995] 28 29
Olika abstraktionsnivåer 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 30 Kvalitetskrav 31 Funktionella krav, exempel Tillförlitlighet Mognadsgrad, feltolerans, återhämtningsförmåga Om kunden erlägger belopp större än en varas pris ska systemet returnera mellanskillnaden. Användbarhet Begriplighet, lärbarhet, handhavande, attraktivitet Effektivitet Tidsbeteende, resursutnyttjande Vid time-out returnerar systemet erlagda mynt. Underhållsbarhet Analyserbarhet, ändringsbarhet, stabilitet, testbarhet Portabilitet Uppfyllandegrad (standarder etc) Om en kund trycker på en knapp för en vara som inte finns händer ingenting. Delar av ISO9126, se också Ingproc 2 32 33
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. Kravhanteringsprocessen krav Nu vet vi hur vi formuerar funktions- och kvalitets-krav. Men... krav Hur hittar vi, analyserar och dokumenterar krav Programvaran får högt använda 6 kb RAM Programvaran får högt använda 65 kb ROM Hur säkerställer vi att vi förstått? Systemet får vara ur funktion högst 30 minuter om året. Hur ska vi prioritera? krav 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... 34 krav 35 krav Från olika personer med olika behov Ta hänsyn till lagar, regler och standarder Hur? Marknadsanalyser Kundkontakter Analys av gamla system och processer Intervjuer, Kartläggningar (frågeformulär etc), Observationer Prototyper Förstå problemen som systemet ska lösa nya krav, stryk krav, omformulera krav, värdera, dvs iterera Viktiga önskemål om kravspecifikation i denna fas: Korrekt, dvs stämmer med bakomliggande behov Komplett, dvs inga viktiga saker saknas etc 36 37
krav Användningsfall (use case) Dvs ta fram kravspecifikation, analysera, dokumentera och validera krav, utgående från typiska exempel på användning. Olika format möjliga Text Grafisk form Formell notation Administrera kurs Anmäla sig Lärare Student Lista kurser 38 Användarfall - exempel 39 Användarfall - Metod UC3: Register for course Primary actor: Student Precondition: the student has logged in Main success scenario: 1. Student lists available courses 2. Student selects one course 3. System accepts the selection 1. aktörer och deras mål 2. För varje användningsfall: förstå och specificera normalscenario (main success scenario) 3. För varje normalscenario: - identifiera undantagsscenarier 4. För varje undantagsscenario: - definiera vad som ska hända Exception scenarios: 3a) The student has not been accepted on earlier required courses --> The system tells the student this situation 3b) The course is full and no more students are admitted --> The system tells the student this situation Val av detaljnivå beror på situationen... OBS! Sub-sub-process :-) Mer i ETS170 40 41
Att göra Nu Kursdeltagare: Prio 1: Kom på banan nu! Skaffa wiki-konton enligt kurswebb. Hitta INTE på egna namn Läsa in er på projektbeskrivningen Göra R.1-6 C & I ses i Hacke on kl 13, to kl 10 Alla: Övning to kl 8 Nästa måndag här Mer om krav Mer om projekt Granskning Prio 2: Läsa J:3-4 Uppdatera: http://wiki.cs.lth.se/ ETSA01/gruppXX/gruppmedlemmar Kursledning: Prio 1: Kom på banan nu! Rigga kurswikin Förbereda övning 1 42