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

Relevanta dokument
SCRUM och mycket mer

Agil testning i SCRUM

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

BESKRIVNING AV PROCESSMETODEN SCRUM

Användarcentrerad systemdesign

12 principer of agile practice (rörlig)

Användarcentrerad systemdesign

Agile-metoder, XP och ACSD

SCRUM. Marcus Bendtsen Institutionen för datavetenskap

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

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

Agil mjukvaruutveckling. 1DV404, Jesper Andersson

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

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

SCRUM. En agil projektmetod baserad på empiri - vad fungerar och vad fungerar inte?

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

Linköpings universitet 1

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

Agil programutveckling

SCRUM. på fem minuter

Projektmetodik II. HF1005, Informationsteknik och ingenjörsmetodik för Datateknik. Projektarbete

ENIMEOS ΣOEMINE. Krav och trender. Praktisk kravhantering och annat nyttigt från industrin. Christian Ehrenborg

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

Testbara krav. SAST Syd Ställ gärna frågor under presentationen eller efteråt Åhörarkopior distribueras efteråt

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

ALM Live: Scrum + VSTS

Scrum + XP = sant. Kristian Björk D06, Lunds Tekniska Högskola dt05kb1@student.lth.se. Frederik Blauenfeldt Jeppsson. dt06fb8@student.lth.

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

XP-projekt: En fördjupning

Scrums användning i Extreme Programming projekt. Lunds Tekniska Högskola D07 Lars-Olof Rydgren EDA

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

CREATING VALUE BY SHARING KNOWLEDGE

Föreläsning 4: Designprocessen

HÖSTTERMINEN. Scrum STF INGENJÖRSUTBILDNING AB. Vi vidareutbildar ingenjörer och tekniker. Din partner för livslångt lärande

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

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

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

TDP005. Föreläsning 1. Filip Strömbäck

Agila metoder. Idag skall vi vända på steken... Agil Ledning av IT-projekt

Scrum + XP samt konsekvensanalys

Översikt. Fö: Projekt: Interaktivt system. Projekt. Mål. Coachning. Praktiker att använda

RUP - Rational Unified Process

Swedbank CI Cross Functional Team

Integrerat ingenjörsprojekt

Scrum. på fem minuter

TDP023 Projekt: Agil systemutveckling

Iterativ mjukvaruutveckling. 1DV404 HT14 Jesper Andersson

SCRUM. på fem minuter

Projektmetodik. Översikt. Lektion 1: Metodiker. Metodiker.

Samarbetsstrukturer för att självorganisera inom givna ramar.

Scrum. på fem minuter

Övningstenta, examinationsfrågor

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

Modell för agil utveckling och förvaltning av produkter

Övning / handledning Användningsfall

Processbeskrivning Systemutveckling

Kurser och seminarier från AddQ Consulting

Kravsammanställning. Förstudie verksamhetsstödjande. Drift & Förvaltning. Affärs-/ processutveckling. Analys & Design. Konstruktion Test Införande

Ingenjörsinriktad yrkesträning - Softhouse Crossmedia Avenue. Ronny Roos, d04rr

TDP005 Projekt: objektorienterade system

Testdriven utveckling. Teorin bakom testdriven utveckling. Bakgrund. Januari 2009, KTH. Alexander Tarnowski

Therese Hansson & Magnus Jonsson. Motivationsfaktorer - Test inom Agila utvecklingsprojekt

TDDI02. På denna föreläsning: Programmeringsprojekt, Föreläsning 1. Kursinformation Vad är Software Engineering? Hur går ett projekt till?

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

TDP005. Föreläsning 1. Filip Strömbäck

Labrapport över Rumbokningssytemet Grupp:1

TDDI02. Programmeringsprojekt, Föreläsning 1. Filip Strömbäck. Med utgångspunkt i tidigare slides av Jonas Lindgren

Agila Metoder. Nils Ehrenberg

Undervisningen i ämnet mobila applikationer ska ge eleverna förutsättningar att utveckla följande:

TDDD26 Individuell projektrapport

Symptom på problemen vid programvaruutveckling

Praktikum i programvaruproduktion

SCRUM vs. XP en jämförelse mellan två lättviktsmetodiker

SCRUM och agil utveckling

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

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

Hemtentamen: ETSA01 Ingenjörsprocessen för programvaruutveckling metodik

RUP Rational Unified Process. 17 november 2004

Opponentrapport på examensarbete Utveckling av ett affärssystem med Unified Process av Therese Sundström.

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

Testning som beslutsstöd

Programvaruutveckling i grupp Projekt EDAF45 (D2, C4, E4, F4, I4, Pi4) - 7,5HP F1Introduktion. Boris Magnusson, Ulf Asklund Datavetenskap, LTH

Programvaruutveckling i grupp Projekt EDA260 (D2, C4, E4, F4, I4, Pi4): F1Introduktion. Boris Magnusson, Ulf Asklund Datavetenskap, LTH

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

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

Agila arbetsformer. Gemensamma värderingar

Mjukvaruprojekt Inception-fasen. 1DV404, HT14 Jesper Andersson Kap 5, 6, 7

Föreläsning 1. Kursinformation. Utvecklingsprocessen. Kravspecifikation. Gruppindelning.

Kravfångst Bra kravarbete handlar om att ställa rätt frågor och att ge rätt svar i rätt form

Mjukvaruprocesser och Planering. 1DV404 HT14 Jesper Andersson

IT-projektledning - introduktion 725G62

Hur hanterar vi risk? Vad är TKO? Skillnad på agil och trad? Agil/Lean: Defer Commitment, Build knowledge, Fail fast

Agil Projektledning. En introduktion

TDP005 Projekt: objektorienterade system

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

TDP005 Projekt: objektorienterade system

Note to programmers. Embrace Change! Extreme Programming? Fyra basaktiviteter. 12 Practices / sedvanor. Vad är Extreme Programming

Hemtentamen: ETSA02 Programvaruutveckling Metodik

TDP023 Projekt: Agil systemutveckling

Transkript:

Page 1 (5) Hemuppgift 1DV404 150115-150118 Deluppgift 1 Processmodeller a) (4p) Alla mjukvaruutvecklare följer någon form av utvecklingsprocess i sitt arbete. Diskutera vad organisationer brukar ange som syftet med användningen av mjukvaruprocesser. Observera att det kan vara flera syften. Diskutera olika anledningar exempelvis, samordning av arbete, upprepbara resultat, likhet i kvalité på producerade system mm. b) (3p) Beskriv och exemplifiera tre typer av huvudkomponenter som ingår i alla mjukvaruprocesser och som utgör grunden för processbeskrivningar. I processbeskrivningar finns alltid roller, artefakter och aktiviteter. Det räcker inte att räkna upp specifika aktiviteter från sepcifika processer, ex. krav, design, implementation utan det handlar om processbeskrivningar generellt. c) (3p) Ge exempel på två mjukvaruprocessmodeller och diskutera skillnader och likheter utifrån de tre huvudkomponenterna. Här kan man exempelvis välja SCRUM och OpenUP och då se att antalet roller, artefakter och aktiviteter i SCRUM är färre än i OpenUP. Likheterna ligger i att båda är iterativa och inkrementella. Deluppgift 2 Kravhantering a) (2p) När man diskuterar krav brukar man ange två olika typer av krav. Beskriv dessa och ge exempel. Funktionella krav, exempelvis man skall kunna skriva ut en rapport, Kvalitetskrav/Icke-funktionella krav, exempelvis systemets skall kunna hantera 2000 samtidiga användare. Linnaeus University Department of Computer Science Dr. Jesper Andersson, Head of Department SE-351 95 Växjö Visiting address B-House, Campus Växjö Telephone +46 470 708460 Email jesper.andersson@lnu.se Lnu.se

Page 2 (5) Beskriv med hjälp av ett exempel hur man beskriver funktionella krav med hjälp av scenarier och användningsfall (use cases). Här är det viktigt att ni visar på skillnaden mellan scenarier, som är specifika och användningsfall som försöker fånga många scenarier i en beskrivning. Man använder scenarier för att fånga användares syn på funktionaliteten i systemet. Därefter analyseras scenarierna och man skapar användningsfall med olika flöden som representerar scenarierna. c) (4p) Användningsfallsmodellering använder sig av olika flöden. Diskutera, exemplifiera och jämför de tre flödestyperna. Flöden, primärflöde, alternativ, exceptionella/undantag. Primärflödet är ett standard flöde som representeras flest scenarier som uppfyller den funktionalitet som beskrivs i användningsfallet. Alternativa flöden visar på flöden som tar en något annorlunda väg men slutar i att den efterfrågade funktionaliteten uppfylls. Exceptionella flöden är flöden som avviker från det normala, exempelvis att något går fel eller att ett scenario avbryts. Deluppgift 3 Testning a) (4p) Beskriv översiktligt hur man planerar sitt testprojekt. Vilka olika testtyper ingår, vilka aktiviteter ingår, etc. Vad som är viktigt är att man beskriver hur man bryter ned testuppgiften. Tester genomförs ju med olika syften (objective) på olika testobjekt i olika faser. Planeringen går ut på att identifiera vilken typ av tester som skall utföras (objective) på vilka typer av testobjekt. Dessutom måste man bestämma när testerna skall genomföras och av vem. Beroende på vilken typ av syfte och objekt får man välja testteknik. I det här läget har man svarat på alla planeringsfrågor, vad, vem, varför, när och hur. b) (2p) Beskriv och exemplifiera hur en testsvit byggs upp. Vilka delar ingår och vilket syfte har de. Utgå från xunit-arkitekturen.

Page 3 (5) För beskrivningen lånar jag en en bild från xunit-boken som visar på de olika delar som utgör arkitekturen. Vad vi kan se är att centralt är Test som kopplas samman med TestResult där test resultaten samlas. Dessutom finns en TestRunner som kan aropa (exekvera) tester. Ett test anropar exempelvis en metod och jämför sedan det faktiska resultatet med ett förväntat resultat. Vidare kan Test specialiseras (ärvas) av TestCase. TestCase innehåller typiskt flera testmetoder och en TestFixture. En TestFixture används för att sätta upp, återställa och ta bort testomgivningen som används i ett TestCase. Till sist har vi då TestSuite som också specialiserar Test men är en samling av flera Test. Arvet gör att en TestSuite kan innehålla flera TestCase och tillhörande TestFixture. c) (4p) Ge exempel på två olika täckningskriterier för testning och illustrera dem med ett exempel. Vilket syfte har dessa kriterier och när och hur används de? Exempel på täckningskriterier är statement, branch, multi-condition och path. Välj en (väljs path måste ni föklara att den inte alltid fungerar i praktiken och varför det är så). Annars kan ni ta en snutt kod och eventuellt generera en CFG och diskutera olika täckningsgrader som uppstår med givna testfall. Deluppgift 4 Planering a) (3p) Beskriv och exemplifiera hur man planerar i en iterativ utvecklingsprocess. I en iterativ process planerar man i två nivåer långsiktigt och mer kortsiktigt. Den långsiktiga planeringen syftar till att identifiera iterationer och iterationsmål. Den kortsiktiga är mycket mer detaljerad avseende aktiviteter som behövs för att uppfylla

Page 4 (5) iterationsmålen. I slutet av varje iteration planeras projektet d.v.s. både den långsiktiga planeringen gås igenom och eventuell revideras och kommande iteration planeras utifrån mål och nuvarande läge. Osäkerhet (uncertainty) anges som den huvudsakliga anledningen till att det är svårt att planera. Diskutera kortfattat hur riskhantering fungerar i ett projekt. Ge två konkreta exempel på riskhantering i samband med projektplanering som stöds av en utvecklingsprocess. Riskhantering handlar om ett förebyggande arbete där man på olika sätt kan identifiera osäkerheter (t.ex. brist på information) som kan leda till risker i projektet. Genom att identifiera osäkerheter och risker kopplade till dessa kan man planera in aktiviteter/roller/artefakter i projektet som syftar till att minimera eller helt ta bort riskerna i projektet. Två konkreta exempel på riskhantering i planeringsprocessen är iterativ utveckling som ger oss bra möjlighet att förändra planeringen allt eftersom vi förstår vad vi förväntas göra och hur vi kan uppnå detta. Ett annat exempel är inkrementell utveckling där vi kan visa kunder vad vi gjort och få deras återkoppling. Det reducerar osäkerhet/risker kopplat till krav och hur framför allt hur vi uppfattat kundkraven. c) (3p) I SCRUM används en planering i två steg. Beskriv och exemplifiera stegen. SCRUM planerar i två steg i sitt Sprint Planning meeting, först bestämmer teamet omfattningen på Sprinten genom att exempelvis bestämma vilka user stories man kommer klara av i sprinten. I denna planering finns även SCRUM mastern och Product Owner med. Därefter fortsätter Teamet och tillsammans med SCRUM mastern planeras vilka aktiviteter som måste genomföras för att uppfylla målet med sprinten. Detta är en mer detaljerad planering. Deluppgift 5 Agila processer a) (6p) Beskriv en så kallad sprint i SCRUM. Vad händer under en sprint? Vilka deltar? Vad är resultatet av en sprint?

Page 5 (5) I den här bilden finns artefakterna i SCRUM och någon aktivitet. Det som saknas är Sprint Planning, Sprint Review och Sprint Retrospecitive aktiviteterna. Kortfattat kan man beskriva SCRUM som en process där En Product Owner ansvarar för en Product Backlog som innehåller prioriterade beskrivningar av funktionalitet som skall finnas med i produkten. I planeringen inför en sprint skapar teamet en Sprint Backlog som dels innehåller målsättningen med sprinten och vilka aktiviteter som teamet skall gå igenom för att uppnå målet. Därefter går Sprinten igång. Varje dag har man ett kort möte (Daily SCRUM) var syfte är att korrdinera och eventuellt modifiera Sprint Backlog så att man ser återstående tid för att avsluta sprinten. I slutet av sprinten demonstreras produktinkrementet som teamet uppnått. Dessutom kan teamet genomföra ett retrospektiv där de reflekterar på hur de arbetat och diskuterar hur det kan förbättras. I kursen har vi diskuterat SCRUM och extreme Programming (XP). XP beskriver ett antal så kallade engineering practices. Välj två av dessa och diskutera hur de kan användas i SCRUM. I SCRUM kan vi se att vi arbetar med iterativ utveckling och små releaser detta är mer agila principer. Exempel på engineering practices kan vara parprogrammering där en driver ansvarar för att kodningen blir korrekt och en navigator ansvarar för att koden passar in i helheten. Andra exempel är test-driven utveckling, kontinuerlig integrering