Diskutera medan vi väntar. Detta har hänt... Agenda. Föreläsning 5: Processer och vidareutveckling. Kan man utveckla programvara

Relevanta dokument
Diskutera medan vi väntar

Föreläsning 5 Processer Vidare utveckling

Föreläsning 5 Processer, vidare utveckling

Föreläsning 5 Processer, vidare utveckling

Detta har hänt... Agenda. Kursinformation. Föreläsning 5: Processer och vidareutveckling

ETSA01 Ingenjörsprocessen 1 - Metodik VT15 Markus Borg

Agenda. Föreläsning 6: Processer och vidareutveckling. Kursinformation. Utvecklingsprocesser. Programvara efter release. L5b Extern QA-granskning

Kursinformation. Metodik för programvaruutveckling. Utvecklingsprocessen för programvara. Innehåll. Processmodell. Exempel

Agenda. Kursinformation. Manual för systemstart... Föreläsning 6: Utvärdering och om tentamen

Agenda. Föreläsning 6: Utvärdering och om tentamen. Kursinformation

Hemtentamen: ETSA02 Programvaruutveckling Metodik

Agenda. Projektbeskrivning avsnitt 8: Acceptanstest - MS4 i korthet. Kursinformation

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT

Detta har hänt... Föreläsning 2: Projektplanering & granskning. Pratat och provat kravhantering. Bildat projektgrupper :-) Skaffat litteratur?

Automation Region. Affärsdriven systemutveckling genom agila metoder. Stefan Paulsson Thomas Öberg

Informationshantering vid systemutveckling styrd av CM

Föreläsning 3 Verifiering och Validering

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT

Föreläsning 4: Konfigurationer, Plattformar & Design I Programvaruutveckling - Metodik 2016 Jonas Wisbrant

Användarcentrerad systemdesign

Föreläsning 6. Utvärdering, om tenta, avrundning

Föreläsning 6. Utvärdering, om tenta, avrundning. Agenda. Kursinformation. Schemalagda kursmoment. Jonas Wisbrant. Kursinformation

Användarcentrerad systemdesign

Detta har hänt... Kursinformation. Utse kursombud - nytt försök. Föreläsning 3: Test, Konfigurationer. Pratat och skapat krav och plan

Agile-metoder, XP och ACSD

Hemtentamen: ETSA01 Ingenjörsprocessen för programvaruutveckling metodik

12 principer of agile practice (rörlig)

Föreläsning 3: Test, Konfigurationer. Övning 2 Riskhantering, intressenter och kravgranskning.

Agenda. Kursinformation. Manual för systemstart. Föreläsning 6: Summering och om tentamen. Målgrupp:

Föreläsning 2: Projekt, Kravhantering, Dokumentgranskning

Presentation. Fredrik Runnsjö 1996 Utvecklare 2004 Testare ~2006 Scrum/Canban

Föreläsning 2: Projekt, Kravhantering, Dokumentgranskning

Detta har hänt... Kursinformation. Agenda. Kursinformation

Linköpings universitet 1 TDP029. Systemutveckling. Systemutveckling. Vanliga faser. Fler faser. Systemutvecklingsmetod

OOA Objektorienterad Analys. Exempel på informell kravspecifikation. DD2385 Programutvecklingsteknik Några bilder till föreläsning 11 13/5 2013

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT. Övning 2 Riskhantering, intressenter och kravgranskning.

Föreläsning 3 Verifiering och Validering

Är instruktionerna oklara, projektet rörigt och allmänt frustrerande?

Linköpings universitet 1

Programvaruutveckling - Metodik 2016 Jonas Wisbrant

Agenda. Föreläsning 6: Summering och om tentamen Kursinformation

Detta har hänt... Jonas Wisbrant - kort CV. Kursombud - nytt försök. Föreläsning 3: Test, Konfigurationer. Pratat och skapat krav och plan

Detta har hänt... Sammanfattning - Krav. Agenda F2. Föreläsning 2: Projektplanering & granskning

Detta har hänt... Agenda. Kursinformation. Kursinformation

Agil programutveckling

Inspel till dagens diskussioner

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

AGIL KRAVHANTERING. Hitta behoven bakom kraven!! Thomas Nilsson! Agile Coach & Mentor! CTO, Responsive

Fungerar Agila principer i alla typer av projekt?

SYSTEMUTVECKLING METODER & MODELLER. Suzana Ramadani

Information technology Open Document Format for Office Applications (OpenDocument) v1.0 (ISO/IEC 26300:2006, IDT) SWEDISH STANDARDS INSTITUTE

Agil projektmetodik Varför och vad är det?

F7 Agila metoder. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Ulf Asklund Datavetenskap, LTH

F7 Agila metoder. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Ulf Asklund Datavetenskap, LTH

Användningscentrering i agila utvecklingsprojekt. johanna.sarna@valtech.com Valtech

Projektarbete. Grunder

Arbeta i projekt. Anders Hessel ITP-projekt Uppsala Universitet

Programvara i säkerhetskritiska tillämpningar

F2 XP Extrem Programmering översikt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH

Regressionstestning teori och praktik

SCRUM. Vattenfallsmodellen. Analys. Design. Kod. Test. Rational Unified Process Agile. Kallas också linjär sekventiell modell.

Hemtentamen: ETSA01 Ingenjörsprocessen för programvaruutveckling metodik Jonas Wisbrant

Agil Projektledning. En introduktion

Deluppgift 2 Kravhantering a) (2p) När man diskuterar krav brukar man ange två olika typer av krav. Beskriv dessa och ge exempel.

F2 XP Extrem Programmering översikt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH

Agil utveckling ställer nya krav på upphandling. Roland Bäcklin, Jaybis Konsult AB

Projektledning Introduktion. Version Juha Söderqvist

Var är vi? Föreläsning 4 Arkitektur, design, kodning. Agenda. Kursinformation. Produktlinjer. Konfigurationshantering - forts. Detta har hänt...

Testplanering, test-first, testverktyg

Kvalitetssäkra ditt projekt med kontinuerlig integration

Platina och kvalité. Rasmus Staberg, Teknisk direktör,

AGILA METODER. (för oss som inte kodar) Nina Berlin

Iterativ mjukvaruutveckling. 1DV404 HT14 Jesper Andersson

Den Röda Tråden. Vi kan ta fram arkitekturkrav. Vi kan ta fram arkitektur och design. Vi kan skriva Clean Code KRAV DESIGN IMPLEMENT VISION TEST

Kurser och seminarier från AddQ Consulting

Systemet. Varför? Persiska viken 3 juli Resultat. Mitt under striden: USA befinner sig i konflikt med Irak och Iran. Mitt under striden, forts:

Programmering. Hur, var, när och varför. 22 November. Lars Ohlén Tieto

Streamade föreläsningar på webben

Exercise 1b: Requirements evaluation

Processbeskrivning Systemutveckling

Diagnos och design av Verksamhet och IT, 7, 5 HP. Föreläsning 2 Sofie Pilemalm

SCRUM och mycket mer

extreme Programming refactored - recension och analys av Kent Becks senaste definition av XP

Medan vi väntar: Diskutera

Exercise 4a: Test 2 ETSA01 INGENJÖRSPROCESSEN 1 - METODIK VT15. Lund University Computer Science ETSA01 Ingenjörsprocessen - Metodik VT15 Exercise 1

Programvaruintensiva system

QC i en organisation SAST

Agil testning i SCRUM

Utmaning. Föreläsning 1: Kursen & Projektuppgift Utvecklingsprojekt & Kravhantering. Agenda F1. Jonas Wisbrant - kort CV

Testning. 1DV404, HT14 Jesper Andersson Kap 21 + Testing Primer

Kursöversikt Certifierad Mjukvarutestare

Föreläsning 11, Planera utvärdering. Att planera utvärdering. Vetenskapliga experiment. Kapitel i kursboken

Föreläsning 4 Arkitektur, design, kodning

BESKRIVNING AV PROCESSMETODEN SCRUM

Streamade föreläsningar på webben. Föreläsning 1: Kursen & Projektuppgift. Utvecklingsprojekt & Kravhantering. Utmaning. Jonas Wisbrant - kort CV

SCRUM. Marcus Bendtsen Institutionen för datavetenskap

Användarcentrerad systemdesign

Sara Skärhem Martin Jansson Dalarna Science Park

Testning som beslutsstöd

Steget efter CAD Data Management. Per Ekholm

Transkript:

Diskutera medan vi väntar Kan man utveckla programvara täckning på olika sätt? beslut Föreläsning 5: Processer och vidareutveckling 226 227 Detta har hänt... Agenda Pratat krav, plan, test, design Övning 4: Test, partitioner och täckning Jobbat med testplan och design Börjat programmera? Hunnit göra några ändringar i kraven efter 1.0? Kursinformation Om slutbedömning av projekt Utvecklingsprocesser Utvecklingsprocesser vad är det och vilka typer finns? Processledning, processförbättring Vad händer sedan: - Vidareutveckling - Legacy-system 228 229

Kursinformation Projektbeskrivning avsnitt 8: - korthet Vad händer i maj/juni? Nu är det vecka 20 -> slutinlämning om 11 dagar...uppfyller följande kriterier: V 20: Må kl 10 F: Utvecklingsprocesser, vidareutveckling, om tentamen V 21: Må kl 15 F: Om tentamen, sammanfattning, utvärdering Fr kl 24: Slutleverans projekt Levererad programvara uppfyller projektets kravspecifikation. Testas med projektets testfall + egna test specifikationens och testplanens kvalitet är god. Kontrolleras med checklistor och projektets granskningar. Det är särskilt viktigt att de testbara kraven adresseras av minst ett testfall. Projektets betyg baseras på samtliga dokument V 23: må-ti: Hemtentamen Före midsommar: Återkoppling på projekt och projektbetyg Resultat från hemtentan Projektmodellen så som den presenterats följs i tillräcklig utsträckning. Detta kontrolleras genom: analys av levererade dokument: plan, krav, test, design, testrapport, granskningsprotokoll och installationsmanual. verifiering av ändringshantering konsistens mellan slutversionerna av krav, design, test och applikation. 230 231 Software Engineering bakgrund: The Software Crisis Utvecklingsprocesser Försenade projekt Många fel i levererade produkter Projekt som fick avbrytas Stora kostnader Produkter som bara blir större och större [The major cause of the software crisis is] that the machines have become several orders of magnitude more powerful To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem. Edsger Dijkstra, The Humble Programmer, 1972 232 233

Lösning: Ordning och reda Stora subprocesser i ingenjörsprocessen NATO-konferens i Garmish-Partenkirschen 1968 myntade begreppet Software Engineering Ta efter hur utveckling sker i andra ingenjörsdiscipliner Ordning och reda Löste många problem, men svårt ta hänsyn till ändringar Fler lösningar: Utveckla iterativt Dela upp projekt i delprojekt 234 235 Processer i ingenjörsprocessen täckning beslut Processer och processmodeller - centrala begrepp 236 237

täckning täckning beslut beslut täckning täckning beslut beslut Utvecklingsprocesser - begrepp Aktiviteter i alla processer Process: Det arbete som görs för att utveckla programvara Specifikationsaktiviteter Utvecklingsaktiviteter Processmodell: En beskrivning av processen Verifieringsaktiviteter Processförbättring: Arbetet med att förbättra processen Vidareutvecklingsaktiviteter Finns i alla utvecklingsprocesser, Utvecklings- process...men kan komma i olika ordning...med olika fokus etc. 238 239 Processmodeller Att ha med i en processmodell Aktiviteter Processer en serie steg med gemensamt mål Aktivitetsorienterade, t ex Möjlighetsstudie insamling Implementation Testning Resultatorienterade, t ex Möjlighetsrapport specifikation Kod Testrapport Leverabler Villkor startvillkor, slutvillkor Roller Informationsvägar Undantag Process, subprocess, aktivitet, procedur? 240 241

täckning täckning beslut beslut täckning beslut Processmodell - exempel Processmodell - exempel Requirements Planning Plan Startvillkor Modul kompilerad utan syntaxfel Roll Test- ingenjör Stoppvillkor Alla definierade test går igenom Scripts Code Ansvarig för Output Process Aktivitet Guide Compile Test Postmortem Finished product Defects Time Logs Results Project Plan Summary Input Modulspecifikation Testmodul Process Signerad testrapport Testdata från modulen Leverabel 242 243 Varför engagera sig i processer? Kvalitet Koppling processkvalitet - produktkvalitet Rationellt Gemensamt för flera projekt Organisationsutveckling Ramverk för lärande Många olika processmodeller för utveckling 244 245

täckning täckning beslut beslut täckning täckning beslut beslut Vattenfallsmodellen V-modellen - vattenfall med återkoppling Drift & underhåll specifikation Mål Implementation hantering Integration Implementation + enhetstest 246 247 Vattenfallsmodellen: Problem Evolutionär utveckling en kan sällan frysas: flexibilitet är ett av motiven för programvara hårdvara hinner utvecklas under långa projekt Big bang-integration sällan framgångsrik Utkast Rapport Test Utvecklingsprocessen Prototyputveckling, vidareutveckling? Test Behov Beslut Rapport Slutgiltig version Ökar risk för nice-to-have bland kraven för säkerhets skull... A B C D F Kostnaden för att underhålla dokument är hög - kundnytta? för kommentarer Kund / användare 248 249

täckning täckning beslut beslut täckning täckning beslut beslut Två varianter av evolutionär utveckling Timeboxing Prototyputveckling Först prototyp, sedan riktigt system Stora risker med tekniken Börja med svåra krav Utforskande utveckling - iterativ Arbeta hela tiden med riktigt system Stora risker med kraven Börja med viktiga krav Utmaningar Svag insyn Kan ge dålig struktur Höga krav på utvecklarna Timebox 1 Timebox 1 Timebox 2 team Utveckling /impl Deploy TB1 TB2 TB3 /impl TB1 /impl Deploy /impl TB2 /impl Deploy /impl TB2 Drift Deploy TB1 Deploy TB2 Deploy TB3 250 251 Timeboxing ett verkligt exempel Spiralmodellen 252 253

täckning täckning beslut beslut täckning täckning beslut beslut Inkrementell utveckling Diskutera Parallell utveckling Tidiga leverabler Möjlighet att identifiera krav under utvecklingen Minskad risk Tidiga inkrement kan testas många gånger R D D D T T T Req Ge exempel på projekt när följande processer är lämpliga Vattenfallsmodellen Prototyper Inkrementell utveckling med kontinuerliga releaser Code Test R D C T Prototyp R D C T R D D D T T T 254 255 Lättrörliga processer (agile) XP Practices Några viktiga delar Individer och interaktion i stället för processer och verktyg Fungerande programvara i stället för fullständig dokumentation Kundsamverkan i stället för kontraktsförhandlingar Anpassning till förändringar i stället för följande av plan XP DSDM SCRUM Nightly build Crystal ASD FDD Planning Game Small s Metaphor Simple Testing Refactoring Pair Programming Collective Ownership Continuous Integration 40-hour week On-site Customer Coding Standard Mer om detta i Programvaruutveckling i grupp - projekt ETS260 256 257

V-modellen för programvaruutvecking beslut täckning Exempel på processbeskrivningar från kursen Kort version av vår process: 1. Person A finds out that there is something wrong in a document 2. Person A locates the fault in the document (currently in version 1.0) 3. Person A notifies the person responsible for the document (person B) and asks for permission to change it 4. Person B gives person A permission to change the document 5. Person A updates the document, updates the version number to 1.1 and gives it to person B. 6. Person B is now responsible for telling all persons that are working 258 259 V-modellen för programvaruutvecking V-modellen för programvaruutvecking täckning 0.x Good version Exekverbar källkod Inspection protocoll 0.99 Better version Fk1 Fk2 Supervisor review Fkn 0.0991 Supervisor feedback Plattform v. k Fk+1.1 Fk+1.2 1.0 Fk+1.m Plattform v. k+1 260 261 Inspection meeting Dokumenterat genomförda systemtest Fas 4 Individual inspection Testplan beslut täckning dokument Fas 3 Implementation och enhetstest Fas 2 beslut specifikation Fas 1 Specifikation

täckning täckning beslut beslut täckning beslut hantering Implementation (Verifiering) Integrations-test (VoV) Processer för hela företaget Aktör A Meddelande Media Meddelande Aktör B Återkoppling 262 263 Processer på företagsnivå Projektstyrningsprocess Processer Processmodeller Processförbättring Projektstyrning Organisationsprocesser Projektstyrningsprocesser PPS, PROPS, PRINCE...? = mätvärden = styrning Projektstyrningsprocess Planering Uppföljning och styrning Post mortem Utvecklingsprocessen Utvecklingsprocesser V-modell, prototyping, XP...? SCRUM? RUP? Beställare Spons IT- Slutanvänd Utvecklare Kundansva Projektled Utveckla Vad ingår i pilarna? Underleverantör 264 265 Gränssnitt

täckning beslut täckning täckning beslut beslut Olika sorters processer Processmodell för kursen på hög nivå Process Produkt- utvecklingsprocess Process för utveckling av processer Faser och leverabler Fas 1 Specifikation specifikation Aktivitetseller resultatorienterad? Testplan process Utvecklingsprocess Testprocess CM-process sprocess Projektledningsprocess Mer generella Fas 2 Fas 3 Implementation och enhetstest Fas 4 dokument Exekverbar källkod Dokumenterat genomförda systemtest 266 267 Processer för att utveckla och anpassa processer Processförbättringsprocess Identifiera förbättringar Processmodell Bestäm förbättringar Ändringsplan, utbildningsplan Introducera ändringar Återkoppling Finjustera processen Uppdaterad processmodell GOTO 1 Organisation Anpassning Erfarenhet Projekt 268 269

täckning beslut täckning täckning beslut beslut Skillnad: Verklig process vs. referensprocess? Processer lösning på allt? Referensprocess en process som man vill använda År 1969: NATO-konferens myntade begreppet Software Engineering Verklig process den process man verkligen använder Målprocess den process man vill uppnå på sikt Tänk även på: upplevd process observerad process. År 1987: No silver bullet Frederick Brooks, No Silver Bullet Essence and Accidents of Software Engineering, IEEE Computer, April 1987. 270 271 Vad händer efter release? Legacy Systems Legacy system Wikipedia: A legacy system is an old method, technology, computer system, or application program that continues to be used, typically because it still functions for the users' needs, even though newer technology or more efficient methods of performing a task are now available. A legacy system may include procedures or terminology which are no longer relevant in the current context, and may hinder or confuse understanding of the methods or technologies used. 272 273

täckning täckning beslut beslut täckning täckning beslut beslut Legacy systems Hur använder vi och underhåller legacy system? Kan vara affärskritiska Rätta fel i kod Prog A Prog B Kan vara gamla (ibland > 30 år) Prog A Prog B Rätta fel i krav och design Förbättra design Förbättra programmen Prog C Prog D Innehåller: Prog C sprogram (flera?) Data (mycket data i flera filer, udda format) Affärsprocesser Prog D Koppla samman med andra system Konvertera program så att ny hårdvara, kommunikationssystem etc kan användas Avveckla system 274 275 Lehmans Lagar (1985) efter release Kontinuerliga krav på förändring Om ett program används så kommer det att behöva ändras. Ökande komplexitet När man ändrar i ett program blir det mer komplext och svårare att förstå. Vidareutveckling av stora programvaruprodukter Självreglerande m.a.p. antal nya funktioner, problemrapport, etc per version. Inte lönt försöka göra en för stor förändring på en gång. Organisatorisk stabilitet Utvecklingshastigheten blir konstant oberoende av resurser. Kräver Ändringshantering Konfigurationshantering Påverkansanalys Spårbarhet Regressionstest Man skiljer mellan: Felrättande (Corrective) Anpassande (Adaptive) Förbättrande (Perfective) Preventivt (Preventive) Delivery Verification Change request Impact analysis Implementation 276 277

täckning beslut Sammanfattning - processer Utvecklingsprocessen är det som görs för att utveckla programvara Processmodellen är en beskrivning av processen Några exempel på processmodeller: vattenfall prototyputveckling iterativ utveckling timeboxing spiralmodellen lättrörlig utveckling Projektstyrningsprocessen har ett annat perspektiv på projektet Processförbättring görs för att få bättre projekt m.a.p. kostnad, ledtid och kvalitet Legacy system är gamla system som levt kvar länge, i många fall längre än vad man förväntade sig från början Fyra sorters underhåll: felrättande, anpassande, förbättrande, preventivt 278