Prosessmodeller og smidig programvareutvikling. INF1050: Gjennomgang, uke 02

Like dokumenter
GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG

UKE 9 Prosesser og prosessmodeller inkludert smidige metoder. Gruppetime INF1055

Kravhåndtering. INF1050: Gjennomgang, uke 03

Prosjektledelse, planlegging og teamarbeid. INF1050: Gjennomgang, uke 10

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

Kontrakter. INF1050: Gjennomgang, uke 12

Konfigurasjonsstyring. INF1050: Gjennomgang, uke 11

Løsningsforslag: Oblig 1. INF1050: Gjennomgang, uke 12

Forskningsmetoder. INF1050: Gjennomgang, uke 13

Systemutvikling. Universitetet i Oslo, Institutt for informatikk Vår 2017

Eksamen INF1050: Gjennomgang, uke 15

Prøveeksamen INF1050: Gjennomgang, uke 15

Use Case-modellering. INF1050: Gjennomgang, uke 04

Prosessmodeller og smidig programvareutvikling

UKE 15 Prosjektledelse, planlegging og teamarbeid. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski

Estimering. INF1050: Gjennomgang, uke 09

Løsningsforslag Sluttprøve 2015

11 Planlegging og dokumentasjon

Kap 11 Planlegging og dokumentasjon s 310

CONNECTING BUSINESS & TECHNOLOGY KURS OG SERTIFISERINGER - SCRUM

GJENNOMGANG UKESOPPGAVER 9 TESTING

Systemarkitektur. INF1050: Gjennomgang, uke 07

UKE 10 Kravhåndtering. Gruppetime INF1055

Prosessmodeller og smidig programvareutvikling

1. Hvilke type krav angår sikkerhet og pålitelighet?

Fra krav til objekter. INF1050: Gjennomgang, uke 05

Oppgave 1 Multiple Choice

Objektorientering og UML. INF1050: Gjennomgang, uke 06

Modellering IT konferanse

1. Hvilke type krav angår sikkerhet og pålitelighet?

Prosjektledelse, prosjektplanlegging, teamarbeid

Testing av programvare. INF1050: Gjennomgang, uke 08

Smidig utvikling NTNU Tor-Erik Mathisen

Teamarbeid og smidig metodikk. Lean og Scrum. Prosjektarbeid

Konfigurasjonsstyring

Prosjektledelse, prosjektplanlegging, teamarbeid

UKE 16 Kontrakter. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski

Introduksjon,l SCRUM. EB og TMG

Prosjektledelse, prosjektplanlegging, teamarbeid

Prosjektledelse - fra innsiden

Velkommen til andre del av IN1030

Inf1055 Modul B 26 april 2017:

Eksamen 2013 Løsningsforslag

Scrum. en beskrivelse V

Velkommen til andre del av INF1055 Introduksjon til systemutvikling Prosesser og prosessmodeller

GJENNOMGANG OBLIGATORISK OPPGAVE 1

Systemutvikling - oppsummering. Alexander Nossum blog.eksplisitt.net 22. mai 2006

UNIVERSITETET I OSLO

GJENNOMGANG UKESOPPGAVER 4 USE CASE MODELLERING HELGA NYRUD & KRISTIN BRÆNDEN

UNIVERSITETET I OSLO

Oppgave 1: Multiple choice (20 %)

Mellom barken og veden Smidig testing i krevende terreng TTC 2015

Forfattere: Daníelsdóttir, Drífa Meland, Maiken Mijalkovic, Biljana Svendsen, Simen H. Gruppelærer: Zarei, Amir Hossein. 5.

Prosjektledelse - fra innsiden av et utviklingsprosjekt. Presentasjon hos UiO Ida Lau Borch, prosjektleder i Bouvet ASA

UNIVERSITETET I OSLO

GJENNOMGANG UKESOPPGAVER 13 KONTRAKTER

Undervisning i Smidige metoder ved Universitetet i Oslo

Øko-system for innovasjon og distribuerte team

1. Mer om iterative utviklingsprosesser

Systemutviklingsmetoder

Scrum. -nøkkelbegreper og noen personlige erfaringer

GJENNOMGANG UKESOPPGAVER 3 KRAVHÅNDTERING

Ledelse av systemutviklingsprosjekter

Obligatorisk oppgave 1 INF1050 Foranalyse og kravhåndtering. av Andreas Johansen Alexander Storheill Martin Dørum Nygaard Tobias Langø Aasmoe

SCRUM EB og TMG 2010

SCRUMGUIDEN. Et hjelpemiddel for deg som ønsker å komme i gang med Scrum

Neste generasjon ERP-prosjekter

Gruppetime

PROSJEKTPLAN FOR INF [4 3]120-PROSJEKT: PROJECT HOSPITAL 2004

Together. Free your energies Moden og modig! Ansvarsfull og fleksibel!

Oppgaver uke 42. Systemutvikling

Smidig innhold Hvordan smidige metoder hjelper oss å lage kvalitetsinnhold. Ove Dalen

Hensikten med denne delen av kurset. Objektets egenskaper. Objektorientering hva er det? Best practises ved programvareutvikling. Kravspesifikasjonen

AlgDat 10. Forelesning 2. Gunnar Misund

AlgDat 12. Forelesning 2. Gunnar Misund

Forside. Eksamen i IN1030 for Våren Ingen hjelpemidler tillatt.

Scrum og offshoring En studie av prosjekter som benytter Scrum kombinert med offshoring

Systemutviklingen er ferdig når et system er operativt. Med operativt menes når systemet blir brukt av brukerne på et faktisk arbeidssted.

Bruk av HP Quality Center med smidige utviklingsmetoder. HP Sofware Norge

FINN kundesenter. Hvordan FINN.no utnytter kundeinnsikt til produktutvikling. Anne Sandvin

ESTIMERING I SMIDIGE PROSJEKTER

Smidig metodikk, erfaringer fra NAV Fagportal

Digipost produktutvikling

Making IT your winning asset

Modellering av krav. INF1050: Systemutvikling 11. februar Universitetslektor Yngve Lindsjørn

Forside Eksamen INF1055 V17

SCRUM Smidig prosjektledelse og utvikling. 10 september 2009 JOSÉ MANUEL REDONDO LOPERA AVDELINGSLEDER PROSJEKT OG RESSURSANSVARLIG

User Story Mapping gir en nyttigere backlog

CRIStin 2.0 Om videreutvikling av CRIStin-systemet. Oppstartseminar 22. Oktober 2013

IT Service Management

Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling

Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling

Testing av programvare

PROGRAMUTVIKLINGSPLAN. Big Data and Machine Learning

UKEOPPGAVER 2: SYSTEMUTVIKLINGSPROSESSER OG PROSJEKTARBEID INNSPILL TIL SVAR

SAFe. - Ny styringsmodell for innovasjon, IT-utvikling og forvaltning

Modellering av krav. INF1050: Systemutvikling 07. februar Førstelektor Yngve Lindsjørn

UKE 14 Versjonshåndtering og testing. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski

Transkript:

Prosessmodeller og smidig programvareutvikling INF1050: Gjennomgang, uke 02

Kompetansemål Prosessmodeller Kunne redegjøre for hva som kjennetegner ulike prosessmodeller Vurdere prosesser for utvikling av ulike typer systemer Drøfte fordeler og ulemper Smidig utvikling Redegjøre for de ulike konseptene som inngår i smidig utvikling Struktur, roller, arbeidsmetoder

Gjennomgang av ukesoppgaver Ukens tema: Prosessmodeller og smidig utvikling

Oppgave 1 Hvorfor er det hensiktsmessig å definere prosessmodeller på ulike nivåer (generelle, bedriftsnivå, avdeling/prosjektnivå)?

Oppgave 1: Løsningsforslag Hvorfor er det hensiktsmessig å definere prosessmodeller på ulike nivåer (generelle, bedriftsnivå, avdeling/prosjektnivå)? Først: Hva er en prosessmodell? Abstrakt / forenklet modell Aktivitetene som utføres for å utvikle et datasystem Definerer hvordan man skal strukturere arbeidsprosessen i et prosjekt Normativ Beskriver en prosess slik den bør være

Oppgave 1: Løsningsforslag Hvorfor er det hensiktsmessig å definere prosessmodeller på ulike nivåer (generelle, bedriftsnivå, avdeling/prosjektnivå)? Ingen prosjekter er like Nødvendig å tilpasse prosessen etter det gitte prosjektet Mindre abstrakt Fra generelle modeller (fossefall/scrum) til bedrifts- eller prosjektspesifikke modeller Skreddersydd til den aktuelle konteksten Følgende kan tilpasses Faser / aktiviteter / roller / ansvarsforhold Dokumentformater / formalitet / frekvens på rapportering og gjennomganger

Oppgave 2(a) Beskriv fossefallsmodellen

Oppgave 2(a): Løsningsforslag Beskriv fossefallsmodellen Plandrevet prosessmodell Utviklingen styres av forhåndsspesifiserte planer Separate, veldefinerte faser Kravspesifisering Design (av system og programvare) Implementasjon (og enhetstesting) Integrasjon (og systemtesting) Drift (installasjon og vedlikehold)

Oppgave 2(a): Løsningsforslag Beskriv fossefallsmodellen

Oppgave 2(a): Løsningsforslag Beskriv fossefallsmodellen Hva skjer når vi er ferdig med en fase? Arbeidsflyt ved endt fase Avvik mellom prinsipp og praksis Prinsipp Beveg deg nedover modellen, til neste aktivitet. Ikke tilbake Praksis Kan forekomme overlapp i aktiviteter

Oppgave 2(b) Redegjør for forskjellene mellom smidig og plandrevet utvikling.

Oppgave 2(b): Løsningsforslag Redegjør for forskjellene mellom smidig og plandrevet utvikling Hovedpunkter som skiller smidig fra plandrevet utvikling Planlegging Hvordan fokuseres arbeidsinnsatsen? Kravendring Hva skjer hvis kravene må endres/kommer frem? Formalitet og dokumentasjon Roller, ansvarsområder og rapportering

Oppgave 2(b): Løsningsforslag Redegjør for forskjellene mellom smidig og plandrevet utvikling

Oppgave 2(c) Foreslå et utviklingsprosjekt der det kan være gunstig å benytte fossefallsmodellen. Begrunn svaret.

Oppgave 2(c): Løsningsforslag Foreslå et utviklingsprosjekt der det kan være gunstig å benytte fossefallsmodellen. Begrunn svaret. Først: Kjennetegn ved fossefallsmodellen Utviklingen styres av planer Separate faser for de ulike aktivitetene Går vanligvis ikke tilbake til tidligere faser Utfordrende å tilpasse endringer i brukerkrav underveis i utviklingen Planene er allerede definerte og vedtatt

Oppgave 2(c): Løsningsforslag Foreslå et utviklingsprosjekt der det kan være gunstig å benytte fossefallsmodellen. Begrunn svaret. Derfor: Fossefallsmodellen er gunstig for prosjekter hvor... Systemet er velkjent Kravspesifikasjonen er godt forstått / kravene er stabile Store geografiske avstander mellom utviklere Sikkerhetskritiske systemer (konsekvensene kan være fatale) Stilles krav til en komplett kravspesifikasjon før utviklingen starter Eksempel: Ulike transport-, trafikk- og navigasjonssystemer

Oppgave 3 Nevn noen praksiser som blir benyttet i Extreme Programming.

Oppgave 3: Løsningsforslag Nevn noen praksiser som blir benyttet i Extreme Programming. Først: Hva er ekstrem programmering (XP)? XP = Programmeringsfokusert og smidig metode Ekstrem fordi: Hele systemet kan bygges opp flere ganger daglig Inkrementer leveres jevnlig til kunden (annenhver uke) Tester kjøres før hver bygging (build) Build en aksepteres kun hvis testene lykkes / passerer

Oppgave 3(a): Løsningsforslag Nevn noen praksiser som blir benyttet i Extreme Programming. Små releaser og inkrementell planlegging Lag først minste settet funksjonalitet som gir verdi for kunden Lever hyppige inkrementer Enkelt design Design kun det som er nødvendig Refaktorering (refactoring) Kontinuerlig forbedring / restrukturering av koden Selv før behovet oppstår Reorganisering av klasser / Forbedring av navn på attributter og metoder

Oppgave 3(a): Løsningsforslag Nevn noen praksiser som blir benyttet i Extreme Programming. Kunde på stedet Representant for sluttbruker / kunde bør være tilgjengelig for utviklere hele tiden Parprogrammering To programmerere utvikler kode sammen (fører og kartleser) Holdbart tempo Unngå å jobbe overtid, da det kan føre til dårligere kode og redusert produktivitet "Test-først"-prinsippet Skriv tester for ny funksjonalitet før funksjonaliteten implementeres

Oppgave 4(a) Hva er Scrum?

Oppgave 4(a): Løsningsforslag Hva er Scrum? Smidig utviklingsmetode Arbeid deles opp i sprinter (varighet på 2-4 uker) Definerte faser i Scrum Planleggingsfasen Overordnede mål etableres / arkitektur designes Gjennomføringsfasen Serie med iterasjoner Sprinter Hver iterasjon leverer et inkrement av systemet Avslutningsfasen Dokumentasjon og manualer ferdigstilles

Oppgave 4(a): Løsningsforslag Hva er Scrum?

Oppgave 4(a): Løsningsforslag Hva er Scrum? Definerte roller i Scrum Produkteier Product Owner Utviklerteam Development Team Scrum Master Tett og kontinuerlig kommunikasjon gjennom daglige standups Hva har jeg gjort siden sist? Hva skal jeg gjøre i dag? Hvilke hindringer / utfordringer har jeg?

Oppgave 4(b) Hva er en sprint, og hvilke faser består den av?

Oppgave 4(b): Løsningsforslag Hva er en sprint, og hvilke faser består den av? Sprint Iterasjon i gjennomføringsfasen Forhåndsbestemt varighet Normalt 2-4 uker Hver iterasjon leverer et inkrement av systemet Utvikler funksjonalitet som leveres til kunden etter hver sprint Faser i sprinten Assess / Select / Develop (implementasjon) / Review (evaluering)

Oppgave 4(b): Løsningsforslag Hva er en sprint, og hvilke faser består den av?

Oppgave 4(b): Løsningsforslag Hva er en sprint, og hvilke faser består den av? Assess Vurderer nye/eksisterende oppgaver fra oppgavelisten (backlog) Select Setter mål for sprinten / Kunden kan komme med nye krav Velger oppgaver til sprinten Fokus på de høyest prioriterte oppgavene Develop Design / Koding / Testing Utviklerne isoleres fra kunden og organisasjonen Review Resultatene evalueres opp mot målene som ble satt i planleggingsmøtet Presenterer resultatene til kunden Retrospective

Oppgave 4(c) Hva er en Scrum Master?

Oppgave 4(c): Løsningsforslag Hva er en Scrum Master? Scrum Master En slags guru og ekspert på Scrum Tilrettelegger for utviklerteamet Sørger for at Scrum-teori følges i praksis Forstår alle hva Scrum er? Følges Scrum-prinsippene? Ansvarlig for å holde daglige standups Hva har jeg gjort siden sist? / Hva skal jeg gjøre i dag? Beskytte utviklere mot forstyrrelser (eksempelvis fra kunder)

Oppgave 4(d) Hva er en backlog?

Oppgave 4(d): Løsningsforslag Hva er en backlog? Scrum backlog En slags to-do -liste Prioritert liste med arbeidsoppgaver og funksjonalitet Inneholder som regel Beskrivelse / Prioriteringsgrad / Estimat / Verdi Av hver oppgave Funksjoner / Bugs Teknisk arbeid som må utføres (eksempelvis koding) Vedlikeholdes av produkteieren (Product Owner) Består ofte av en samling av brukerhistorier

Oppgave 5(a) Hva er Kanban?

Oppgave 5(a): Løsningsforslag Hva er Kanban? Kanban Rammeverk med rot i lean production Baserer seg på prinsipper fra Toyota Studerte dagligvarekjeder og deres forhold til lagerbeholdninger Kunder pleier vanligvis å kjøpe det nødvendige; ikke mer Dagligvarekjeder bestiller kun det de forventer å selge; ikke mer Med andre ord Produser kun det som er nødvendig; ikke mer

Oppgave 5(a): Løsningsforslag Hva er Kanban? Mål: Et system for å opprettholde et høyt produksjonsnivå Jobber med en oppgave til man er ferdig med den Pull fremfor push Just-in-time: Når man er ferdig med en oppgave etterspørres en ny (pull) Setter ikke nødvendigvis tid for oppgaven Oppgaver skal flyte uten avbrudd gjennom de nødvendige aktivitetene Mindre fokus på estimering

Oppgave 5(a): Løsningsforslag Hva er Kanban? Problemhåndtering underveis Stopp produksjonen Fokus på å løse problemet Gjenoppta normal produksjon etter at problemet er løst Sikrer god flyt og gjennomstrømningshastighet Utfører ikke flere oppgaver enn det teamet har kapasitet til WIP (Work in progress) begrenser antall oppgaver som kan utføres til enhver tid Unngå flaskehalser

Oppgave 5(b) Beskriv forskjellene på Scrum og Kanban.

Oppgave 5(b): Løsningsforslag Beskriv forskjellene på Scrum og Kanban. Scrum Time-boxing Definerer tidsbokser som oppgaver skal utføres innen Tydeligere definerte faser og roller utviklingen Utfordring: Kan være vanskelig å dele inn oppgaver i sprinter Kanban Task-boxing Definerer et sett med arbeidsoppgaver og leveres så snart man er ferdig Fokus på gjennomstrømningshastighet Slakk i tidsplanen kan aksepteres

Oppgave 6 Foreslå et utviklingsprosjekt der det kan være gunstig å benytte smidig utvikling. Begrunn svaret.

Oppgave 6: Løsningsforslag Foreslå et utviklingsprosjekt der det kan være gunstig å benytte smidig utvikling. Begrunn svaret. Kjennetegn for smidig utvikling Planlegging gjøres inkrementelt Enklere å endre prosessen ved endringer i krav De delene som må endres er mindre sammenlignet med plandrevet utvikling Derfor gunstig ved Utvikling av nye/innovative ideer Små utviklingsteam og prosjekter Prosjekter med betydelig sannsynlighet for at kravspesifikasjonen endres

Oppgave 7: Diskusjon Et system utvikles i henhold til en presis og detaljert kravspesifikasjon skrevet av kunden. Systemutviklere har argumentert for å bruke fossefallsmodellen. Det er først under testing at kunden begynner å ane at det var mangler ved kravspesifikasjonen. Systemet tas i bruk og brukerne oppdager at systemet er ubrukelig fordi det ikke løser deres problem. Hva kunne vært gjort for å hindre/redusere dette problemet?

Oppgave 7: Diskusjon Hva kunne vært gjort for å hindre/redusere dette problemet? Levere inkrementelt La brukere prøve tidlige versjoner av systemet, gjerne i naturlige omgivelser (miljø) Utviklere får bekreftet / avkreftet hvorvidt de er på rett vei Tidligere oppdagelse av mangler / feil Involvere kunden i større grad Forstå hvilke problemer kunden egentlig trenger å få løst Vet kunden hva de vil ha? Har utviklerne faktisk laget dette?

Spørsmål? Ta kontakt Yulai Fjeld ydfjeld @ uio.no Husk å inkludere emnekoden! Andre gruppelærere Delta på gruppetimene

Takk til Foilene er basert på Tidligere presentasjoner laget av Emilie Hallgren og Kristin Brænden Eksisterende forelesningsnotater av Dag Sjøberg og Yngve Lindsjørn Sommerville, I. (2010). Software Engineering (9th Edition). Pearson.

Takk for meg Neste uke : Kravhåndtering