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



Relevanta dokument
Arbeta i projekt. Anders Hessel ITP-projekt Uppsala Universitet

Programvara i säkerhetskritiska tillämpningar

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

RUP - Rational Unified Process

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

Användarcentrerad Systemutveckling

Chaos om datorprojekt..

Steget efter CAD Data Management. Per Ekholm

Informationssystem och databasteknik, 2I-1100

Chaos om IT-projekt..

Vad är RTCA DO-178C? och: Hur arbetar Saab med dessa krav? Lars Ljungberg, Saab AB, Avionics Systems

Symptom på problemen vid programvaruutveckling

RUP Rational Unified Process. 17 november 2004

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

Configuration testing Why? Vad det är tänkt att koden ska göra. Performance testing Kommentarer Skriva om koden som kommentar

Design för användbarhet Användarcentrerad utvecklingsprocess

Design för användbarhet

REGELVERK & HANDBÖCKER

SYSTEMUTVECKLING METODER & MODELLER. Suzana Ramadani

Några grundläggande begrepp

Diskutera medan vi väntar

Att fatta rätt beslut vid komplexa tekniska upphandlingar

Föreläsning 5 Processer Vidare utveckling

Metoder och verktyg för funktionssäkerhet

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

Föreläsning 5 Processer, vidare utveckling

Föreläsning 5 Processer, vidare utveckling

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

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

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

European Spallation Source (ESS) från Projektmodeller till Plant/Product Lifecycle Management

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

Praktikum i programvaruproduktion

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

Utvecklingsm odell och utvecklingsm etod för att skapa god kom m unikation

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

Linköpings universitet 1

Agil programutveckling

ISTQB Testarens ledstjärna

Användarcentrerad systemdesign

Föreläsning 11, Mer utvärdering

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

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

Bygg bro mellan ITIL v2 och v3 - Bridgekurser - DF Seminarium

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

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

Agile-metoder, XP och ACSD

ALM Live. April 2008 Effektivare projektarbete med Visual Studio 2008

Användarcentrerad systemdesign

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

QC i en organisation SAST

Testning på 3 föreläsningar. PV7180 Verifiering och Validering. Litteratur. Vad är testning? Varför testa och olika syn? Målet med testning

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

Vad händer med L3: ΔL3-L4 för Krav följs upp av annan projektgrupp. Föreläsning 5: V&V II + Design II Efterläsning Kodning

Prototyping. Susanna Olsson, TietoEnator Funda Denizhan, TietoEnator Ann Lantz, CID

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

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

Programvaruutveckling - Metodik 2016 Jonas Wisbrant

Grupparbete ACSD Projektplanering för ett Patientjournalsystem

ALM Live: Testfokus bättre mjukvarukvalitét med Visual Studio 2008 Team System

Modern utvecklingsmetodik. Användarcentrering i företag. Användarcentrering i företag. Användarcentrering i företag. Användarcentrering i företag

Configuration Management

SESAM. Försvarssektorns Användargrupp för Software Engineering. Inbjuder till seminariet. Automatiserad programvarutestning -

LOGISTIKSYSTEM FÖR SNABBA HJULET AB UTVECKLINGSPROCESS BASERAD PÅ DR. DEBORAH J. MAYHEW S THE USABILITY ENGINEERING LIFECYCLE

Föreläsning 3. Programvaruutveckling för Stora System. Målsättning i programvaruprojekt. Fel och risker. Christin Lindholm

Projektplan, Cykelgarage

Exercise 1b: Requirements Evaluation ETSA01 INGENJÖRSPROCESSEN 1 - METODIK VT15

Kurser och seminarier från AddQ Consulting

Testplan Cykelgarage

F8 Programvaruutveckling metoder. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson Datavetenskap, LTH

Idag. EDAA35: Utvärdering av programvarusystem. Mål. Innehåll. Kursmoment. Lärare

Iterativ mjukvaruutveckling. 1DV404 HT14 Jesper Andersson

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

Människa-datorinteraktion 1MD016, hösten 2011 Användarcentrerad systemdesign september 2011

För varje par av påstående/anledning svara med ett av följande alternativ (½ p per rätt svar):

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

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

ETSA01 Ingenjörsprocessen 1 - Metodik VT15 Markus Borg

Projektuppgift i Användarcentrerad Systemdesign, ht 04

FFI - Learning Fleet. Transporteffektivitetsdagen Hans.Deragarden@Volvo.com

Exercise 1b: Requirements evaluation

Agil testning i SCRUM

openbim Stockholm 22 april 2013 Kraven på BIM är här

Föreläsning 8, Design

Nordisk standard för kvalitetssäkring av brandskydd

Innehåll. Kravhantering. Kravhantering TDDD06 Introduktion till kravhantering. Vad är kravhantering?

Vad är design? Designmetodik. Varför en metodik? Samma (5!) huvudmoment. Härledning av form från specifikation. Användarcentrerad designmetodik

Exercise 1b: Requirements evaluation

Alla rättigheter till materialet reserverade Easec

Testplanering, test-first, testverktyg

Programmeringsstil 18/3-2002

Faster time to action and more accurate pre-studies using Agile tooling

Datavetenskap. Therese Sundström. Utveckling av ett affärssystem med. Unified Process. Examensarbete, D-nivå 30 ECTS 2005:05

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

Föreläsning om OO, OOA och UML

Implementationsstrategier för PLCS

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

UML: Exempel. Ett modelleringsspråk. UML: Ansvar. UML: tre huvudanvändningar. Exempel: En klass position storlek. UML Unified Modelling Language

Magnus Skoog


Transkript:

Kursinformation Metodik för programvaruutveckling Föreläsning 3 Latex ok för litteraturstudierapport (prata med mig bara) Nästa föreläsning är av Björn Regnell (jag är med också) Presentationer imorgon Innehåll Processer Processmodeller Iterationer Specifikation och implementation Verifiering och validering Utvecklingsprocessen för programvara Resurser Behov Process Produkter En strukturerad mängd aktiviteter som krävs för att utveckla programvara Specifikation Validering Vidareutveckling Processmodell Exempel En modell av utvecklingsprocessen Uppgiftsorienterad Dokumentorienterad Ofta grafisk Scripts Guide Requirements Planning Code Compile Test Postmortem Defects Time Logs Plan Results Project Plan Summary Finished product

Vad är en bra process? Frågor Lätt att förstå Ger insyn Kan stödjas med CASE-verktyg Accepterad Tillförlitlig Robust Underhållbar Effektiv 1. Vilka fördelar finns med en process som används i många projekt? 2. Vilka svårigheter är förknippade med att införa denna typ av process? 3. Vad kan man göra för att underlätta införandet? Generiska modeller Vattenfallsmodellen Iterativ utveckling Utveckling med formella metoder Utveckling baserat på återanvändning Kravdefinition Vattenfallsmodellen Implementation enhetstest Integration Systemtest Underhåll Vattenfallsmodellen Iterativ utveckling Fördelar Välplanerat då man har välförstådda krav God insyn Problem Svåranvänd om man inte förstår kraven väl från början (t ex om kunderna ändrar sina krav) Uppdelning i faser kan vara omotiverad Utkast Utvecklingsprocessen Versioner för kommentarer Kund / användare Slutgiltig version

Två sorters iterativ utveckling Utforskande utveckling Arbete sker hela tiden med den produkt som ska levereras Börja med de krav som man förstår bäst Slängprototyper Arbete sker med en prototyp som ska slängas Börja med de krav som man förstår sämst Prototyputveckling För att definiera och validera krav Man kan göra avkall på kvalitetskrav Tekniker som 4GL, komponentbaserad utveckling, gränssnittsprototyper Iterativ utveckling Formell systemutveckling Användningsområden Små och medelstora interaktiva system Delar av system För system med kort livstid Problem Dålig insyn Kan ge dålig struktur Ställer höga krav på utvecklarna 1. Kravdefinition 2. Formell specifikation 3. Transformation 4. Integration 5. Testning Formell utveckling Användningsområden Säkerhetskritiska system Svårigheter Specialkunskaper krävs Vissa delar av system är mycket svåra att specificera på detta sättet, t ex gränssnitt Utveckling baserat på återanvändning Kravspecifikation Genomgång av tillgängliga komponenter Kravjustering Utveckling och återanvändning av komponenter Verifiering

Inkrementell utveckling Man måste alltid anpassa och justera kraven vid utveckling av stora system För de de tidigare modellerna och t ex för Spiralmodellen Inkrementell utveckling Inkrementell utveckling 1. Bestäm övergripande krav 2. Definiera inkrement och ange vilka krav som ska implementeras i vilka inkrement 3., utveckling och verifiering av varje inkrement 4. Integrera och validera systemet 5. Gå till 3 till systemet är klart Inkrementell utveckling Spiralmodellen 1 2 3 4 3 4 3 4 Parallell utveckling Man kan leverera till kunden tidigt Man kan identifiera krav Minskad risk De tidiga inkrementen testas många gånger (välj kritiska) Determine objectives alternatives and constraints Plan next phase REVIEW Requirements plan Life-cycle plan Development plan Integration and test plan Evaluate alternatives identify, resolve risks analysis analysis analysis Operational Prototype 3 Prototype 2 protoype analysis Prototype 1 Simulations, models, benchmarks Concept of Operation S/W requirements Product design Detailed Requirement design validation Code Unit test V&V Integration Acceptance test Service test Develop, verify next-level product Exempel ett varv i spiralmodellen Mål Införskaffa komponentkatalog Begränsningar Inom ett år Måste stödja existerande komponenttyper Måste kosta mindre än 1Mkr Alternativ Köp in existerande informationssystem Köp in databas och utveckla komponenter med 4GL Utveckla komponenter som vanligt er Kanske omöjligt att upphandla med begränsningarna Specifikationen av katalogen är oklar resolution Utveckla prototyp för at klargöra kraven Förläng tidplanen Resultat Informationssystem är svåra att anpassa för ändamålet Komponentkatalog utvecklad som vanligt är inte kostnadseffektiv Prototyp kan vidareutvecklas Planer Utveckla 4GL-system baserat på den prototyp son finns Åtagande Ytterligare 12 månaders finansiering

Specifikation Bestämma tjänster, kvalitetskrav och begränsningar på systemet Att få ett implementationsunderlag från kravspecifikationen Det finns många designmetoder och verktyg för att stödja arbetet Exempel på modeller Dataflödesmodeller ER-modeller Objektmodeller Programmering och felrättning Verifiering och validering Från design till exekverbart system Det finns ingen generisk process för detta Enehtestestning Modultest M1 M2 M3 M5 M4 Delsystemtest Ds1 Ds1 Systemtest Acceptanstest S S Mn-1 Dsm Mn Underhåll Alla system som används måste underhållas! Lägga till och förbättra Anpassa till omvärlden (som förändras) Rätta till felaktigheter Metod 1. Uppdatera kraven 2. Utvärdera befintligt system och föreslå förändringar 3. Modifiera systemet CASE (Compute Aided Software Engineering), t ex Grafiska editorer för att utveckla systemmodeller Grafiska hjälpmedel för att utveckla användargränssnitt Debuggers Verktyg som genererar käöllkod från designbeskrivningar

Olika uppdelningar Funktionsperspektiv Funktionsperspektiv Processperspektiv Integrationsperspektiv Tool type Planning tools Editing tools Change management tools Configuration management tools Prototyping tools Method-support tools Language-processing tools Program analysis tools Testing tools Debugging tools Documentation tools Re-engineering tools Examples PERT tools, estimation tools, spreadsheets Text editors, diagram editors, word processors Requirements traceability tools, change control systems Version management systems, sys tem building tools Very h igh-level languages, user interface generators editors, data dictionaries, code generators Compilers, interpreters Cross reference generators, static analysers, dynamic analysers Test data generators, file comparators Interactive debugging systems Page layout programs, ima ge editors Cross-reference systems, program restructuring systems Reengineering tools Testing tools Debugging tools Processperspektiv Integrationsperspektivet: verktyg, arbetsbänkar, miljöer CASE technology Program analysis tools Language-processing tools Method support tools Tools Workbenches Environments Prototyping tools Configuration management tools Editors Compilers File comparators Integrated environments Process-centred environments Change management tools Documentation tools Editing tools Analysis and design Programming Testing Planning tools Specification Implementation Verification and Validation Multi-method Single-method General-purpose Language-specific Sammanfattning Processer: idé, resurser -> produkter Generiska processer: vattenfallsmodellen, iterativ utveckling, formella transformationer, återanvändning Inkrementell utveckling kan bland annat öka effektiviteten Viktiga faser: specifikation, design, implementering, verifiering, underhåll Case: finns för alla faser och de flesta funktioner i utvecklingen