Presentation laddar. Vänta.

Presentation laddar. Vänta.

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.

Liknande presentationer


En presentation över ämnet: "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."— Presentationens avskrift:

1 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 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 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 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 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 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 7 ETSA01 Ingenjörsprocessen för programvaruutveckling – Metodik Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Kursen

8 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

9 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 10 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Översikt

11 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 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 13 ETSA01 Ingenjörsprocessen för programvaruutveckling – Metodik Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Projektuppgiften

14 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

15 Uppgift: Programmera ett cykelgarage

16 Uppdrag

17 Uppgift: Programmera ett cykelgarage Uppdrag Målmiljö

18 Uppgift: Programmera ett cykelgarage Uppdrag Målmiljö Faser och leverabler

19 Uppgift: Programmera ett cykelgarage Faser och leverabler Uppdrag Målmiljö Utvecklingsmiljö

20 Uppgift: Programmera ett cykelgarage Faser och leverabler Utvecklingsmiljö Uppdrag Målmiljö Aktörer

21 Uppgift: Programmera ett cykelgarage Faser och leverabler Aktörer Utvecklingsmiljö Uppdrag Målmiljö Dokumentmiljö

22 Uppgift: Programmera ett cykelgarage Faser och leverabler Aktörer Dokumentmiljö Utvecklingsmiljö Uppdrag Målmiljö

23 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 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 25 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1

26 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 27 ETSA01 Ingenjörsprocessen för programvaruutveckling – Metodik Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Om projekt

28 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 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 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 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 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 33 ETSA01 Ingenjörsprocessen för programvaruutveckling – Metodik Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Om kravhantering - del 1

34 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 35 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 [Alan Davis] Tidiga faser är viktiga

36 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 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 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 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 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 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 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 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 44 ETSA01 Ingenjörsprocessen för programvaruutveckling – Metodik Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Om projektplanering

45 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 46 Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F1 Tre viktiga delområden inom projektplanering Kostnadsskattning Schemaläggning Riskhantering

47 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 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 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 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 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 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 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 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 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


Ladda ner ppt "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."

Liknande presentationer


Google-annonser