Iterativ mjukvaruutveckling. 1DV404 HT14 Jesper Andersson

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

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

Agil programutveckling

SYSTEMUTVECKLING METODER & MODELLER. Suzana Ramadani

Software Engineering. Agneta Nilsson, PhD MPA Software Engineering Master s Programme

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning

Objektorienterad programmering

Sara Skärhem Martin Jansson Dalarna Science Park

CREATING VALUE BY SHARING KNOWLEDGE

Kurser och seminarier från AddQ Consulting

Produktens väg från idé till grav

Projektkaos. Chaos-rapporten. 34% av projekten avslutades i tid och enligt budget % misslyckades!

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

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

Civilingenjör Mjukvaruteknik Att designa en utbildning utifrån ACM CS Curriculum

agil projektledning CE E86C7B9BE4BB2FD43E7A902 Agil Projektledning 1 / 6

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

Mjukvaruprocesser och Planering. 1DV404 HT14 Jesper Andersson

Symptom på problemen vid programvaruutveckling

Lyckade projekt - finns det?

PROGRAMMERINGSMETODIK

Du fulländar mig! Om synergierna mellan agila metoder och UX. Joakim Holm Adaptiv AB. Erik Hammarström Antrop AB

Linköpings universitet 1

RUP - Rational Unified Process

Vad är. Domändriven design?

Fungerar Agila principer i alla typer av projekt?

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

Datavetenskap. Beteendevetenskap MDI. Design

Agile-metoder, XP och ACSD

Användarcentrerad systemdesign

Programmering = modellering

Objekt-orienterad Programmering och Design. TDA552 Alex Gerdes, HT-2018

Regressionstestning teori och praktik

Kurser och seminarier från AddQ Consulting

Objekt-orienterad Programmering och Design. TDA551 Alex Gerdes, HT-2016

Scaled Agile Framework

PRODUKTINNOVATION Civilingenjör 180 p

Objektorienterad Systemutveckling Period 3

Design för användbarhet Användarcentrerad utvecklingsprocess

Effekter av införande av agila metoder. Daniel Sundmark Mälardalens högskola

PRODUCT MANAGEMENT. Klicka här för att ändra format. Klicka här för att ändra format på underrubrik i bakgrunden

Användarcentrerad systemdesign

Objektorienterad programmering, allmänt

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

ISTQB Testarens ledstjärna

Arbeta i projekt. Anders Hessel ITP-projekt Uppsala Universitet

Kompetensnav för Tillförlitlig Elektronikhårdvara (KTE)

Mönster. Ulf Cederling Växjö University Slide 1

Att fatta rätt beslut vid komplexa tekniska upphandlingar

Ämnesområden. Examensarbete inom datavetenskap (1DV41E) Martin Fredriksson

Datavetenskapligt program, N1COS

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

Innovation och produktutveckling. Joakim Lilliesköld & Liv Gingnell

DSK2PRJ Fö 1 Introduktion till kursen och projektledning

Rätt ifylld bokstav ger 0.5 poäng och fel ifylld bokstav ger 0.5 poäng i avdrag. Rätt svar: Alternativ A, C, D, A, C uppifrån.

Projektarbete. Grunder

Programvaruintensiva system

Roller i mjukvaruprojekt. Åke Liljenberg ake.liljenberg@volvo.com

Copyright Syntell AB 1

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

Teststrategier och Testcertifiering. Per Strandberg, Maj 2013

Datalogiskt tänkande för alla

IT-projektledning - introduktion 725G62

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

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Föreläsning 8. Designmönster

Informationshantering vid systemutveckling styrd av CM

Användarcentrerad Systemutveckling

Föreläsning 1, vecka 6: Abstraktion genom objektorientering

Upprop & Lediga tjänster

Projektledning VBEF 05. Kristian Widén, PhD

Programmering i skolan varför då? Lisa Söderlund Pedagogik och kommunikation

System arbetssystem informationssystem

Programmeringsstil 11/3-2002

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

Två resor till molnet. Per Sedihn CTO Proact IT Group

Inkapsling (encapsulation)

Kursplan. MT1051 3D CAD Grundläggande. 7,5 högskolepoäng, Grundnivå 1. 3D-CAD Basic Course

HT1 2013, FÖRELÄSNING 14 (INFÖR TENTAN)

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo

Programmering i skolan varför då? Lisa Söderlund Pedagogik och kommunikation

Programvaruteknik vt11

Objekt-orienterad programmering och design. DIT953 Niklas Broberg, 2018

Steget efter CAD Data Management. Per Ekholm

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

FMV användning av ISO/IEC för ledningssystem implementering. Harold Bud Lawson Styrelsemedlem och Consulting Partner

Användarcentrerad systemdesign

Software Engineering. Mål med föreläsningen 10/2/2017. Kort presentation

Elmarknadshubben: Kompetensbaserad upphandling

SCRUM. Marcus Bendtsen Institutionen för datavetenskap

Kursplan. FÖ1038 Ledarskap och organisationsbeteende. 7,5 högskolepoäng, Grundnivå 1. Leadership and Organisational Behaviour

Informationssystem och databasteknik, 2I-1100

Kurser och seminarier från AddQ Consulting

Vad säger forskningen om programmering som kunskapsinnehåll? Karin Stolpe, föreståndare NATDID liu.se/natdid

Kurs-PM fo r HI1028, Projektkurs inom programvaruutveckling, VT16

Undervisningsprogram Uppdaterad DATAVETENSKAP

Användbarhetsarbete i ERUP

Processbeskrivning Systemutveckling

Transkript:

Iterativ mjukvaruutveckling 1DV404 HT14 Jesper Andersson

Om kursen ü 9-10 föreläsningar ü Kurslitteratur: Larman, Craig Applying UML and Patterns, 3rd edition senaste upplagan ü Kursansvarig och föreläsningar: Jesper Andersson, Jesper.Andersson@lnu.se ü HandledareEmil Carlsson, Oskar Svärd, Johan Widén ü Examination Individuella uppgifter och uppgifter i grupp.

Från Kursplanen

Från Kursplanen

Mjukvara från Hantverk till Ingenjörsvetenskap ü 1940-talet problemlösning genom programmering ü Komplexiteten ökar Mer komplexa problem Mer komplexa lösningar ü 1965 Mjukvarukrisen Över budget För sent Dålig kvalitet, mötte inte kraven Svår att hantera ü Från hantverk till ingenjörskonst! Eller???

Mjukvaruutveckling som Hantverk craft (krft)n. 1. Skill in doing or making something, as in the arts; proficiency. 2. Skill in evasion or deception; guile. 3. a. An occupation or trade requiring manual dexterity or skilled artistry. b. The membership of such an occupation or trade; guild. 4. pl. craft A boat, ship, or aircraft. ü Resultatet beror på individens skicklighet ü Programmeraren Hantverkaren ü Lärlingssystem

eller Ingenjörsvetenskap Engineering (ĕn'jəә-nîr'ĭng) n. 1. The application of scientific and mathematical principles to practical ends such as the design, manufacture, and operation of efficient and economical structures, machines, processes, and systems. 2. The profession of or the work performed by an engineer. ü Förutsägbart ü Upprepbart ü Överförbart

Men vad gör vi då? Jo, vi löser problem! ü Traditionell problemlösningsansats enligt Polya 1. Förstå problemet 2. Arbeta fram en plan för att lösa problemet 3. Genomför planen 4. Utvärdera resultatet ü Problemlösning med mjukvara Lösningen tas fram som mjukara Vi använder metoder specifika för mjukvara

Mjukvara från Hantverk till Ingenjörsvetenskap ü 1940-talet problemlösning genom programmering ü Komplexiteten ökar Mer komplexa problem Mer komplexa lösningar ü 1965 Mjukvarukrisen Över budget För sent Dålig kvalitet, mötte inte kravem Svår att hantera ü Från hantverk till ingenjörskonst!

Ingenjörsvetenskap Engineering (ĕn'jəә-nîr'ĭng) n. 1. The application of scientific and mathematical principles to practical ends such as the design, manufacture, and operation of efficient and economical structures, machines, processes, and systems. 2. The profession of or the work performed by an engineer. ü Förutsägbart ü Upprepbart ü Överförbart

Ingenjörsprinciper ü Ingenjörer använder sig av vetenskap för att hitta lämpliga lösningar till problem eller förbättra existerande lösningar. ü Om flera alternativ finns jämför ingenjören alternativen och väljer det som bäst passar kraven. ü Ingenjörsvetenskap skall vara förutsägbar, dvs ingenjörer försöker förutse hur deras lösning kommer att bete sig i förhållande till dess specifikation innan den har gått i fullskalig produktion

Mjukvaruteknik Software Engineering Software engineering (SE) is the profession concerned with specifying, designing, developing and maintaining software applications by applying technologies and practices from computer science, project management, and other fields. ü Industriell mjukvaruutveckling Metoder Tekniker och Verktyg IEEE Software Engineering Body of Knowledge (SWEBOK) ü Programmering i det lilla jmf. med programmering i det stora.

Utvecklingsprojekt misslyckande ü Denver Airport Bagagehantering ü London Ambulansdispatcher

Orsak? Kommunikation

Ett typiskt utvecklingsprojekt Hur kunden förklarade det?

Ett typiskt utvecklingsprojekt Hur projektledaren förstod det?

Ett typiskt utvecklingsprojekt Hur arkitekten designade systemet?

Ett typiskt utvecklingsprojekt Hur utvecklarna implementerade det!

Ett typiskt utvecklingsprojekt Hur det marknadsfördes!

Ett typiskt utvecklingsprojekt Hur projektet dokumenterades?

Ett typiskt utvecklingsprojekt Vad som levererades till kunden?

Ett typiskt utvecklingsprojekt Vad kunden fakturerades för!

Ett typiskt utvecklingsprojekt Hur systemet supportades efter leverans?

Ett typiskt utvecklingsprojekt Vad kunden egentligen behövde!

Mjukvara Egenskaper som gör utveckling till en rejäl utmaning. ü Den inbyggda komplexitetet som växer mångfallt snabbare än antalet rader kod. ü Förändringbarheten som kommer av att mjukvaran är en modell av verkligheten och verkligheten förändras. ü Anpassningsbarhet som kommer sig av att mjukvaran samverkar med omgivande system ü Osynlighet som kommer av att vi inte fullständigt kan visualisera alla aspekter av mjukvaran.

Hur hanterar vi komplexitet? ü Abstraktion Förenklingar Beskrivning av element m.h.a nödvändiga egenskaper (beroende på sammanhang). Exempel, Dataabstraktion, Instruktionsabstraktion ü Nedbrytning Problem bryts ned i delproblem, som i sin tur bryts ned i ytterligare delproblem Problemet delar upp lösningen i delar Divide n conquer

Hur hanterar vi förändringsbarhet? If you are not moving at the speed of the marketplace you re already dead you just haven t stopped breathing yet Jack Welch, CEO, GE, 1981-2001 ü Mjukvaruprocesser Struktur Roller och Ansvar ü Mjukvarumodeller Begriplighet Förståelse ü Riskhantering om något händer så har vi planerat för det.

Hur hanterar vi osynligheten? ü Modeller För krav För design För implementationer För installation För operation ü Modeller underlättar kommunikation! ü Vi får ett gemensamt språk med vokabulär, syntax och semantik

Processaktiviteter ü Krav Requirements Engineering ü Design Software Design ü Test Software Testing ü Konfigurationshantering Configuration Management ü Implementation ü Projektledning Project management ü Kvalitetshantering Software Quality Management ü Produkthantering Software Product Management

Strukturera aktiviteterna en Process ü Waterfall Royce (1970-talet) ü Spiral Boehm (1980-talet) ü Unified Process (1990-talet ü Agile Processes (2000-talet) Requirements Analysis&Design Mile- stones Implementation Testing Evolution

Vattenfallsmodellen (1970)

Processmodeller Drivkrafter ü Milstolpar ü Iterationer ü Inkrement ü Risker

Milstolpar ü Dokumentdriven, dokumentet är klart... ü Releasedriven, releasen är klar ü Perspektiv:Vem gör vad och när är det klart!!!!

Iterationer & Inkrement ü Enklare att planera (!?) Mindre steg Kortare tid Enklare att verifiera och validera Snabbare återhämtning om vi gjort fel eller gått fel väg.

Iterativ vs. inkrementell ansats Källa: http://www.applitude.se/

Riskhantering ü Proaktiva aktiviteter för att minimera osäkerheter och eventuell skada kopplat till ett utvecklingsprojekt. ü Beslut baserad på fakta och kunskap inte gissningslekar. ü Genomförs kontinuerligt under systemets livslängd ü Några riskkategorier Produktens storlek, Marknad, Kunder, Process, Utvecklingsteknologier, Personal (antal & erfarenhet), Planer Kostnader risk value

Utmaningar i ett utvecklingsprojekt ü Ge exempel på utmaningar med Planering Genomförandet av ett mjukvaruprojekt

Idag ü Lite kring mjukvaruutvecklingens historia ü Problematiken kring ett projekt ü Aktiviteter när vi utvecklar mjukvara ü Processen hur vi strukturerar aktiviteter ü Drivkrafter varför vi väljer en viss struktur.

På torsdag ü Mer om utvecklingsprocesser ü Aktiviteter ü Roller och sist men inte minst ü Planering