F6 Arkitektur, Planering

Relevanta dokument
F6 Arkitektur, Planering. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Ulf Asklund Datavetenskap, LTH

XP-projekt: En fördjupning

Agil programutveckling

12 principer of agile practice (rörlig)

F9 del B Organisatoriskt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson Datavetenskap, LTH

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

Proj-Iteration 5B. Plan för återstående iterationer

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

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

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

Kritik av Extrem Programmering

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

När? Varför? För vem? Resultat? (Artefakter?)

Agil projektmetodik Varför och vad är det?

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

Proj-Iteration1. Arkitektur alt. 1

Linköpings universitet 1

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

F4 Testning och Parprogrammering i XP. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson,Datavetenskap, LTH

QC i en organisation SAST

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

Design. Vad lärde jag mig förra lekfonen? Hur bidrog jag Fll lärandet? Kravhantering sammanfa0ning 13/04/14

Cult of Code Quality

Användarcentrerad systemdesign

Nyttomaximering av spikes

Designmönster - EMW. Kent Petersson epost1: kentp@cs.chalmers.se epost2: kent.petersson@emw.ericsson.se URL:

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

Proj-Iteration 3. Grov plan för releaser

F4 Testning och Parprogrammering i XP EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson,Datavetenskap, LTH

Användarcentrerad systemdesign

Planeringsspelets mysterier, del 1

Agile-metoder, XP och ACSD

Praktikum i programvaruproduktion

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

Scrum + XP samt konsekvensanalys

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

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

TDDD26 Individuell projektrapport

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

Proj-Iteration 2. Grov plan för releaser

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

Testplanering, test-first, testverktyg

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

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

Förändringskontroll i XP-team. Love Johansson (d00lj), Joakim Persson (d00jp)

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

Principer för interaktionsdesign

Arkitektur. Den Röda Tråden

SCRUM och agil utveckling

Arkitektur Michael Åhs

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

Planering. Planning. Hur planerar vi? Hur planerar vi? XP Bill of Rights. XP Bill of Rights

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

D J U P S T U D I E I E D A S I M P L E C O D E A N D D E S I G N

Preliminär specifikation av projekt

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

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

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

Grundkurs i programmering - intro

Analys och design. Objekt. Klass. med hjälp av CRC. Klassdiagram

Informationshantering vid systemutveckling styrd av CM

RUP är en omfattande process, ett processramverk. RUP bör införas stegvis. RUP måste anpassas. till organisationen till projektet

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

TDP023 Projekt: Agil systemutveckling

2203$ ) UHOlVQLQJ. Varför fungerar XP Några motiveringar till varje regel efter Beck. Innehåll. Planeringsspelet

En praktisk studie i estimeringstekniker inom extreme Programming EDA270. Fredrik Åkerberg Tommy Kvant March 5, 2013

Coaching av programvaruteam EDA270, djupstudie: Praktisk SCM användning i XP-projekt

Objektorienterad programmering

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

Inkapsling (encapsulation)

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Objektorienterad Systemutveckling Period 3

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

Tentamen i Objektorienterad modellering och design

SCRUM och mycket mer

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

Att införa Extreme Programming genom processförbättring

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

Föreläsning 4, Användbarhet, prototyper

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Djupstudie Collective Documentation Ownerhip - Wiki. Jakob Nilsson-Ehle

En studie om parprogrammering i praktiken

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

Agil Projektledning. En introduktion

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

BESKRIVNING AV PROCESSMETODEN SCRUM

Erik Lundgren GarageLoppisen.se. Projekt i kursen Individuellt Mjukvaruutvecklingsprojekt, 1dv430

Verktyget FindBugs. Djupstudie i kursen EDA 270 Coachning av programvaruteam. Christofer Bach dt05cb6 Daniel Nilsson dt05dn4. Lunds Tekniska Högskola

TENTAMEN: Design och konstruktion av grafiska gränssnitt DAT215/TIG091

I detta avsnitt beskrivs vart parprogrammering appliceras, hur det ska fungera och även i vilket projekt det introduceras i.

Agil Projektledning. En introduktion

32 Bitar Blir 64 Sammanfattning

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:

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

Planning Poker som estimeringsteknik

Projektuppgift.

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Opponenter: Erik Hansen Mats Almgren Respondent: Martin Landälv ioftpd-verktyg

Objektorienterad Programkonstruktion. Föreläsning jan 2017

Transkript:

F6 Arkitektur, Planering EDA260 Programvaruutveckling i grupp Projekt Ulf Asklund, Boris Magnusson Datavetenskap, LTH PVG, 2013 F6-1

Mjukvaruarkitektur? Enkel Design och Refaktorisering handlar i första hand om design-in-the-small och god kodkvalitet. Hur hanteras den överordnade designen i XP? PVG, 2013 F6-2

Vad är mjukvaruarkitektur? Den övergripande designen Oftast används flera separata vyer Jämför med arkitektur och ritningar bärande delar vatten o avlopp el ventilation personflöde (t ex för en flygplats) PVG, 2013 F6-3

Kruchten s 4+1 Views The logical view - Vilka viktiga klasser och objekt finns i systemet? (översiktliga UML-klassdiagram) The process view - Vilka viktiga parallella processer finns i systemet? The physical view - Hur är mjukvaran distribuerad på hårdvaran? (Kanske olika subsystem körs på olika maskiner) The development view - Hur är mjukvaran modulariserad? Vilka viktiga subsystem finns (som typiskt kan utvecklas av olika team)? The 5th view scenarios - Några få viktiga scenarion som illustrerar de övriga vyerna PVG, 2013 F6-4

Kruchten s 4+1 views Logical View (klasser och objekt) Development View (moduler och team) Scenarios (use cases) Process View (processer och trådar) Physical View (hårdvara och distribution) PVG, 2013 F6-5

Hur stödjs arkitektur i XP? [W. Wake, http://xp123.com/xplor/xp0007b/] Traditionell syn - arkitekturen har global inverkan på systemet och är svår att ändra därför, planera och designa arkitekturen först XP s syn - embrace change PVG, 2013 F6-6

Spikes XP s stöd för arkitektur - quick throw-away explorations into potential solutions System Metaphor - a story of what the system is like First Iteration - pick stories that result in an end-to-end (skeleton) system Small releases - weak areas show up quickly and can be corrected Refactoring - the architecture can be changed and evolved Team Practices - No out-of-date document team communicates informally PVG, 2013 F6-7

Spike (experimentell prototyplösning) Om vi inte vet hur ett problem kan lösas gör ett experiment - snabb prototyplösning - målet är att se om en viss väg är framkomlig En spike ger inte produktionskod - experimentell kod testfall etc., behövs ej - koden kastas (eller sparas som inspirationskälla vid den riktiga programmeringen) Spikes hjälper oss att göra arkitekturella designval PVG, 2013 F6-8

First Iteration XP s normaltillstånd är ett system i drift som vidareutvecklas. Första iterationen är speciell - Vi skall gå från ingenting till normaltillståndet. - Vi behöver få en initial arkitektur på plats att börja fylla med funktionalitet. Mål med första iterationen - Första releasen gör ingenting (användbart), men på ett sådant sätt att hela den initiala arkitekturen är på plats. Zero Feature Release - Se till att få verktyg, systemkonfigurationer och användning av extern programvara på plats. - Målet är att åstadkomma ett minimalt system som kan installeras och köras, men med minimal funktionalitet. PVG, 2013 F6-9

Exempel Utveckling av ett interaktivt kalkylbladsprogram Första iterationen skulle kunna innehålla - Ett tomt fönster med titeln Kalkylblad - Ett menyval där man kan göra ingenting - Ett internt tomt modell-objekt - Lagring av det tomma modell-objektet i en databas. Då har vi - något som vi kan skicka och Kunden kan installera och provköra - kontroll på verktyg vi behöver använda: testverktyg, kompilator, makefiles, etc. - kontroll på extern programvara vi har tänkt använda (fönstersystem, databas-paket,...) - ett skelett-program som vi kan börja lägga in riktig funktionalitet i. - en initial arkitektur: lagerindelning med databas, modell, view PVG, 2013 F6-10

Systemmetafor En beskrivning av vad systemets implementation liknar. Varför? - Ger en gemensam syn på systemet inom teamet - Kan möjliggöra att även en icke-teknisk kund kan förstå implementationsstrukturen i stora drag - Kan fungera som källa till namn på viktiga klasser i systemet - Kan fungera som stöd för arkitekturbeskrivning genom att identifiera nyckelobjekt och deras relationer PVG, 2013 F6-11

Exempel på Metaforer Den naiva metaforen - Ingen riktig metafor. Objekten representerar helt enkelt sig själva. T.ex. Customer och Account för en bank-tillämpning. Desktop-metaforen - för grafiska användargränssnitt (Desktop, Files, Folders,...) Assembly Line - Med löpande band, delar, stationer... [Chrysler C3 payroll system] Pipes and Filters - som i Unix, för att köra data genom en kombination av program Layers - Program uppdelat i lager, t.ex. tillämpning, högnivåprotokoll, lågnivåprotokoll, eller Model-View,... PVG, 2013 F6-12

Dokumentation av arkitekturen Traditionellt - dokumentera arkitekturen noga i början av projektet XP - se till att snabbt få konkret feedback på ideerna om arkitektur (genom zero-feature release) - låt arkitekturen utvecklas och omstruktureras efter hand - arkitekturen kan dokumenteras när den har stabiliserats (om kunden önskar sådan dokumentation, planerat som vanlig story) PVG, 2013 F6-13

Varför planerar man? Vad är en plan? Planering? För att övertyga sig om man inte missat något För att få en uppfattning hur mycket tid/resurser som behövs För att underlätta att dela upp en uppgift på parallella aktiviteter PVG, 2013 F6-14

Hur noga planerar man? Exempel - du skall köra bil till Alperna kör söderut efter en karta, navigera efterhand gör upp en exakt rutt, gör en plan med varje motorvägskorsning du skall svänga i etc, varje stopp, tankning, övernattning, tider. planera varje moment i körningen, filval, placering, växlingar, hastighet, inbromsningar... Lagom är bäst, det kan bli för mycket. 1:a alternativet, plus lite mer detaljer för närmsta sträckan/tiden. Kombinerar rimlig arbetsinsats med flexibilitet (trafikstockningar, olyckor, vägarbeten...) PVG, 2013 F6-15

Andra exempel Hur planerar en taxichaufför sin dag? en tur (iteration) i taget beror på kundernas krav! Hur planerar en tågluffare sin färd? inte alls kanske PVG, 2013 F6-16

Vad är värdet av att planera? Snarare att man tänkt igenom än själva planen Planen behöver ändras ofta Ju mindre detaljer den innehåller dessto mindre planeringsarbete går förlorat vid ändringar. Detaljer bara för nära aktiviteter, grov på långt håll Något att jämföra med - larmklocka vid problem PVG, 2013 F6-17

Planering av programvaruprojekt Med lång tidshorisont - Releaseplaner (kund) Med kort tidshorisont - Iterationer (utvecklare) För att kunna leverera i delar - Stories (kund) För det dela upp arbetet - Tasks (utveckl.) För att driva arbetet - Testfall (par) PVG, 2013 F6-18

Vad följer man upp tidsmässigt? Jag är klar till 50%, 90% - ofta meningslöst! - En stor uppgift blir aldrig mer än 90% klar! Bätte att dela upp i mindre delar och bara registrera sådana som är helt klara. För oss innebär det Tasks Uppskattar tid i förväg Registrera hur lång tid det tog Räknar ut hur fort vi kör PVG, 2013 F6-19

Release-plan När ett OS (VM etc) startar måste datorsystemen vara användbara. Det är kunden och deras prioriteringar som bestämmer vad som skall vara med. Svårt första gången - när man inte vet hur mycket man hinner - med uppföljning lär man sig efterhand. I början hjälper det med coachens erfarenhet. Gången som på Extreme hour: Kunden definerar stories, och förslår de som skall vara med i första release Utvecklarna uppskattar deras svårighet (skala 1-10) Utvecklarna uppskattar hur mycket de hinner med (30) Kunden väljer stories för första release PVG, 2013 F6-20

Osäkerhetsrelation för programvarutveckling Av de fyra storheterna: Bemanning, antal utvecklare Tidåtgång, kalendertid Funktion hos systemet Kvalitet på funktionaliteten kan man vid programutveckling bara bestämma tre I XP väljer vi att hålla fast Kvalitet, Tid och Bemmaning och låter Funktion variera. Många andra metoder låter Tid varier ( ej klart i tid ). PVG, 2013 F6-21

Iterationer Vi delar upp vägen till nästa (första) release i ett antal steg, iterationer. Precis som releaser bestäms iterationer av tidpunkter, t ex 2-3 veckor, snarare än innehåll. (I projektet kommer iterationerna vara en vecka) PVG, 2013 F6-22

Iterationsplan /Planning game Vi detaljplanerar bara första (nästa) iteration. - Kunden presenterar stories och svarar på frågor - Utvecklarna delar upp varje story i tasks (deluppgifter) - För varje deluppgift uppskattar utvecklarna hur mycket tid den tar och tar samtidigt på sig att göra den deluppgiften. - Om det blir för mycket/för lite för att fylla iterationen bestämmer kunden vad som skall bort/läggas till. Vi har bestämt vad som skall med i iterationen. Varje utvecklare vet vad han/hon skall göra under iterationen Sen kanske man måste ändra men det gör man med planer. PVG, 2013 F6-23

Tidsuppskattning Att tidsuppskatta implementationsarbete är svårt. En del arbetar med ideal tid. Andra gör relativa bedömning av deras svårighet (enhet, poäng gummibjörnar, hallonbåtar) och mäter i efterhand hur många enheter man hinner på given tid. - Sätt ett värde på varje task - Task 39 verkar vara dubbelt så svår som Task 16 då får den dubbelt så många hallonbåtar - Dela upp stora tasks i mindre, små tasks är lättare att skatta. - Känns det alltför osäkert vad en task innebär gör man en Spike - Ofta bra om alla tasks från en story hanteras av en utvecklare. Om man använder ideal tid är faktorn till riktig tid ofta 3, optimistfaktor. PVG, 2013 F6-24

Tracking/Uppföljning av Iteration Bara hela stories räknas - om en task saknas är storyn av inget värde för kunden. Viktigt att identifiera tasks som hängt upp sig. Fördröjer sin Story och mindre kommer med Tracker följer upp hur långt alla task kommit jämfört med uppskattning. Om någon task blir försenad ta upp det med hela gruppen. Det är inte den som sitter med Svartepetters fel Han/hon bara gjorde en optimistisk uppskattning och ingen reagerade Omplanera - vad skall ut? PVG, 2013 F6-25

Uppföljning av hastighet Efter varje iteration - för varje task färdig - summera enheter färdiga. Första mått på hastighet (antal enheter / utvecklare / tid). Nästa iteration har vi ett bättre mått på hur många enheter vi kan klara ( yesterday s weather ) Om ni uppskattar i ideal tid kan man räkna ut optimistfaktorn Efter några iterationer lär det stabilisera sig. PVG, 2013 F6-26

Uppföljning av release Målet är att få med de viktigaste stories (ur kundens synpunkt) i varje release. Bokför hur många stories som kommer med i varje release. När man känner hastigheten kan man uppskatta hur många stories som kan komma med i varje release. Och kunden kan prioritera. PVG, 2013 F6-27

Vad göra om det blir problem Traditionellt: systemet blir inte klart i tid Stoppa in mer folk? Projektet blir ännu mer fördröjt (de gamla måste först lära upp de nya och får inget gjort i början). XP: systemet får inte med alla funktioner De väsentligaste funktionerna är med Mer folk? - kan gå med parprogrammering PVG, 2013 F6-28

Samanfattning Planering för: att tänka igenom svårigheterna - inte för att få en detaljerad plan för att få underlag till uppföljning - upptäcka missade svårigheter - de tar längre tid än uppskattat för att organisera arbetet Planera inte allt i detalj - bara den aktuella releasen, iterationen, storyn, tasken, testfallet Planera där det är motiverat - så lite som possibly kan funka PVG, 2013 F6-29

XP Values Communication Feedback Simplicity Courage All XP practices support these values PVG, 2013 F6-30

Läsanvisningar chromatic: Delar av Part II, p 36-44 (Business Practices) chromatic: Part III (XP Events) och chromatic: Part IV (Extreme Programming Artifacts) W. Wake: Where s the Architecture? W. Wake: The System Mehaphor PVG, 2013 F6-31