Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling

Like dokumenter
Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling

Arne Maus, Ifi. med takk til Gerhard Skagstein(Ifi), Rune Steinberg, (Visma), Jo Hannay (Ifi), Ian Sommerville m. fl. for lån av gamle foiler

Forelesning 2: Systemutviklingsprosesser

Systemer med: Mennesker Datasystem(er) Annen teknikk. Arne Maus, Ifi

UKEOPPGAVER 2: SYSTEMUTVIKLINGSPROSESSER OG PROSJEKTARBEID INNSPILL TIL SVAR

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

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

prosjektarbeid Forelesning 3 - INF1050 Systemutvikling

prosjektarbeid Forelesning 3 - INF1050 Systemutvikling Eksempel Evolusjonære modeller Utviklingsprosesser Evolusjonære modeller Foranalyse

GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG

UKE 9 Prosesser og prosessmodeller inkludert smidige metoder. Gruppetime INF1055

Presentasjon 1, Requirement engineering process

INF1050 dagsorden 18. april 2007

GJENNOMGANG UKESOPPGAVER 9 TESTING

Kap. 2 Prosessen. Utviklingsmodeller -2. Utviklingsmodeller. Utviklingsmodeller -4. Utviklingsmodeller - 3. Software Engineering - definisjoner

Systemutviklingssprosesser, prosjektarbeid Forelesning 3 - INF1050 Systemutvikling 1. feb.2010

Kontrakter. INF1050: Gjennomgang, uke 12

DRI2001 h04 - Forelesning Systemutvikling og nettsteder

Design, bruk, interaksjon

Arne Maus, Ifi. med takk til Gerhard Skagstein(Ifi), Rune Steinberg, (Visma), Jo Hannay (Ifi), Ian Sommerville m. fl. for lån av gamle foiler

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning

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

DRI2001 forelesning

inf 1510: å lage skisser og prototyper

KONTRAKTER FOR PROGRAMVAREUTVIKLING. Ståle L Hagen UiO 20. april

Model Driven Architecture (MDA) Interpretasjon og kritikk

DRI2001 Offentlige nettsteder. Litt om systemutvikling Torsdag 24 aug Arild Jansen, AFIN, UiO

SYSTEMUTVIKLINGSKONTRAKTER SMIDIG OG PS2000

Oppsummering. Thomas Lohne Aanes Thomas Amble

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

t Institutt for informatikk Erik Arisholm 13. mai 2009 INF1050-oppsummering-1

Lean Mining. Presentasjon på Norsk Bergforenings Vårmøte 2015 Gällivare Professor i gruvedrift, Sunniva Haugen

INF1500 Høst 2015 Magnus Li Martine Rolid Leonardsen. Design og prototyping

DRI 2001 Systemutviklingsarbeidet og nettsteder Forelesning

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

Inf 1510: Bruksorientert design

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

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning

Læringsmål. INF1050 dagsorden 14. jan Formålet med prosjektet. Den obligatoriske prosjektoppgaven

Kapittel 5 - Advanced Hypertext Model Kapittel 6 - Overview of the WebML Development Process

Oppgave 2: Kontraktsutforming a) Refererer innledningsvis til følgende temaer i presentasjonen knyttet til særtrekkene i PS2000:

in1060: hva & hvorfor prototyping? Tone Bratteteig

IT I PRAKSIS!!!!! IT i praksis 20XX

Introduksjon til design, bruk, interaksjon. Litt om fagets historie. Gisle Hannemyr Ifi, høstsemesteret Design, bruk, interaksjon

Kvalitet og programvare. Når bare det beste er godt nok. Produktet prosessen eller begge deler?

UNIVERSITETET I OSLO

Prototyping. Plenumstime Uke 6. Med Maria og Helle

Inf1510: Oppsummering. Rune Rosseland

UNIVERSITETET I OSLO

Logistikkens forankring i bedriften. Arild Brennholm Distribusjonsdirektør

INF1510: Obligatorisk oppgave 2: prosjektforslag

GJENNOMGANG UKESOPPGAVER 13 KONTRAKTER

Kravhåndtering. INF1050: Gjennomgang, uke 03

Livsløpstesting av IT-systemer

Neste generasjon ERP-prosjekter

Notater: INF1510. Veronika Heimsbakk 20. mai 2015

Tom Røise 9. Februar 2010

UNIVERSITETET I OSLO

KONTRAKTER FOR PROGRAMVAREUTVIKLING. Ståle L Hagen UiO 10 mai 2017

Kort om evaluering og testing av It-systemer. Hvordan vurdere, verdsette, velge og teste?

INF1500 Høst 2015 Magnus Li Martine Rolid Leonardsen. Utviklingsprosesser & krav og behov

Anskaffelse og implementering av verktøy for virksomhetsstyring - Stortingets administrasjon

Oppsummering : IMT2243 Systemutvikling. Hensikt med kurset. Innfallsvinkel : Tom Røise IMT2243 : Systemutvikling 1

Innhold. Innledning Del 1 En vei mot målet

Prototyping og kommunikasjon med brukere

Forskningsmetoder. INF1050: Gjennomgang, uke 13

UKE 10 Kravhåndtering. Gruppetime INF1055

Forventningsavklaring. Forbedringskunnskap Innføring av et innsatsområdet Forbedringsmodellen og andre nyttige verktøy Suksesskriterier

Løsningsforslag Sluttprøve 2015

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

LEAN i Sparebank1 SMN. Nelly Maske Lean Forum Nordvest 21.Oktober 2014

Oppsummering : IMT2243 Systemutvikling. Hensikt med kurset. Innfallsvinkel : Tom Røise IMT2243 : Systemutvikling 1

I dag. Prosjektstyring og prosjektgjennomføring. Hva er et prosjekt? Oppdeling i. Planlegging. arbeidsoppgaver. Hva er en prosess? En prosessmodell?

Bilag 1 til vedlikeholdsavtalen samt driftsavtalen KRAVSPESIFIKASJON. Administrativt system for skole og SFO

Prototyping. TDT4180, vår Yngve Dahl IDI, NTNU NTNU

LEDELSE I UTFORDRENDE LANDSKAP. Hanne Refsholt Ås 14. mars 2018

UKE 6 Utviklingsprosesser og tjenestedesign. Plenum IN1050 Julie og Maria

IT Service Management

Hvordan bruke trender innovasjonsarbeidet. Ole Petter Nyhaug, Opinion AS

Kommende Trender Innenfor Test

Systemutviklingsmetoder

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

Programmering i barnehagen

UNIVERSITETET I OSLO

UKE 7 Design og prototyping. Plenum IN1050 Julie og Maria

STE6221 Sanntidssystemer Løsningsforslag kontinuasjonseksamen

Test og kvalitet To gode naboer. Børge Brynlund

Sist oppdatert: 18.november Øvelsesoppgaver til INF1500

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

PROFF Gjentagende gode prosjekter

IT Service Management

Grunnleggende om Evaluering av It-systemer

Inf1055 Modul B 26 april 2017:

Prosessmodeller og smidig programvareutvikling. INF1050: Gjennomgang, uke 02

Intern arbeidsfordeling i helse vest IKT. ITIL beste praksis i IKT forvaltning John Kåre Knudsen, gruppeleder kliniske systemer

Utvikling. 3 syn på systemutvikling

Gjennomgang av prøveeksamen. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski

Forskningsmetoder i informatikk

INF1500 Høst 2016 Lone Lægreid Martine Rolid Leonardsen. Utviklingsprosesser, krav og behov & Analyse

Systemarkitektur. INF1050: Gjennomgang, uke 07

Transkript:

Innledning Læringsmål Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling 21.1.2009 Forstå hvorfor systemutviklingsprosessen er viktig Forstå de viktigste prinsippene for ulike prosesser Få kunnskap om ulike utviklingsprosesser Forstå sentrale suksessfaktorer Rune Steinberg International Development Manager ERP INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 1 INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 2 Innledning Hva er en systemutviklingsprosess? Innledning Eksempel fra Ford Model T Beskriver hvordan programvare skal produseres ved å angi mekanismer for å styre, kontrollere og organisere arbeidet. Kunnskap om systemutviklingsprosessen er sentral i arbeidet med å forbedre produktivitet og kvalitet i systemutvikling 1908: Stasjonsvis produksjon 1913: Samlebånd introdusert Arbeidstid redusert fra 12,5 timer til 1,3 timer 1918: Halvparten av alle biler i USA er en Ford 1930: Alle bilfabrikker har gått over til samlebånd Merk at systemutviklingsprosess, utviklingsprosess og utviklingsprosessmodell betyr det samme INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 3 INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 4

Innledning Hvorfor er utviklingsprosesser viktig? Innledning Systemutvikling, en utfordrende aktivitet? Hvordan arbeidet utføres har stor påvirkning på produktivitet og kvalitet Noen prosesser er bedre egnet enn andre Prosesser innfører begreper og felles begrepsforståelse Felles begrepsforståelse er nødvendig for godt samarbeid Felles begrepsforståelse er nødvendig for standardisering Standardisering er nødvendig for forbedring av prosessen TRESS-90: Administrativt system for trygdeetaten Planlagt levert 1993, nedlegges i 1995 Opprinnelig budsjett: 383 Mill. Totalt tap over 1 MRD. Oslo Sporveier m. fl: Nytt elektronisk billettsystem Planlagt prøvedrift september 2005 Fortsatt ikke i drift i 2008 Feil prosess kan ha fatale følger for virksomheten! Merk at standardisering her betyr innenfor en virksomhet. Det er ikke det samme som en offisiell standard som f. eks. ISO 9000 INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 5 INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 6 Innledning Hvor godt lykkes vi? Innledning Konklusjon Undersøkelse fra norske virksomheter utført av Simula i 2003: 76% av prosjektene overskrider budsjettet 19% bruker mindre enn budsjettert Gjennomsnittlig overskridelse er 41% Utviklingsprosessen påvirker utfallet 55% overskridelse ved bruk av fossefallsmodellen 24% overskridelse ved iterative/inkrementelle/evolusjonære metoder Programvare har blitt en nødvendig del av vårt samfunn Vi har store utfordringer med å levere med tilfredstillende kvalitet. Sannsynligheten for å levere et prosjekt i henhold til tidsplan og budsjett er lav. Mange prosjekter feiler fullstendig INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 7 INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 8

og livssyklus Utviklingsprosess og livssyklus Ulike faser i en livssyklus I systemutvikling opererer vi med begrepene utviklingsprosess og livssyklus: En livssyklus beskriver hovedaktivitetene fra oppstarten av et prosjekt, til utvikling, drift, og nedleggelse En utviklingsprosess beskriver fasene fra oppstart, til utvikling og leveranse 1) Kravinnsamling og kravanalyse (hva skal systemet gjøre?) 2) Design (hvordan skal det konstrueres?) 3) Programmering (konstruksjon) 4) Test (ble det riktig?) 5) Installasjon, integrasjon, driftsetting 6) Vedlikehold (feilretting og videreutvikling) Merk at litteraturen i systemutvikling ikke er entydig på forskjellen mellom livssyklus og utviklingsprosess. Merk at det finnes flere ulike varianter av faseinndelinger i en livssyklus. Se f. eks. forskjellen mellom GS. INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 9 INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 10 Kravinnsamling og kravanalysefasen Eksempler på kravdokumenter Identifiserer kravene til hva vi ønsker å oppnå med systemet og hvilke begrensinger vi må ta hensyn til. Det innebærer å definere: Overordnet målsetting og begrensing Funksjonelle krav (hva skal systemet gjøre for brukeren) Ikke-funksjonelle (tekniske krav som f. eks. svartider) Kravene identifiseres og besluttes av utvalgte interessenter (sluttbrukere, driftpersonell, etc.) Resultatet er gjerne et dokument som beskriver resultatet av analysen (kravspesifikasjon) INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 11 INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 12

Designfasen Eksempler på resultater fra design Gitt kravene må systemet designes. Det innebærer å: Delvis design av bruker interaksjon og løsningskonsept Design av arkitektur Identifisere hovedkomponenter i systemet Hvilket ansvar hver komponent har Relasjonen mellom komponentene Design beskrives gjerne i egne diagrammer (UML) Design gjøres på flere nivåer, overordnet og detaljert Resultat beskrives gjerne i UML modeller og system spesifikasjon INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 13 INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 14 Programmeringsfasen Programmeringsfasen Her skjer den endelige konstruksjonen Inkluderer gjerne ytterligere detaljert design Grafisk design Windows Vista består av mer enn 50 Mill. slike kodelinjer. Det gir 1-2 Mill. A4 sider som rager nærmere 100 meter over bakken dersom vi la alle arkene oppå hverandre. INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 15 INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 16

Testfasen Testfasen Overordnet er målsettingen er å besvare følgende: 1. Har vi laget riktig system (funksjonelle krav)? 2. Er systemet riktig bygget (tekniske krav)? Vi må finne flest mulig feil tidligst mulig: Er forventninger og krav er riktig? Oppfyller systemet kravene? Er det lett å lære og å bruke? Er det robust under feil bruk? etc... Testfasen gir oss informasjon om kvalitet og risiko, men test kan aldri vise fravær av feil INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 17 INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 18 Hva er en utviklingsprosess? 4 klasser av utviklingsprosesser En utviklingsprosess beskriver en prinsipiell fremgangsmåte for å utvikle et IT system. Prosessen innholder normalt: Ulike faser Prosessflyt (rekkefølge på faser og aktiviteter) Metoder Organisasjon Prøv-og-feil Fossefallsmodellen Prototyping Evolusjonær, iterative, og inkrementelle modell Husk utviklingsprosess og utviklingsprosessmodell betyr det samme. Utviklingsmodell benyttes gjerne som et mer konkret begrep INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 19 Merk at disse 4 klassene beskriver prinsippene eller mønstre. Spesifikke og navngitte modeller blir instanser av en av disse. INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 20

Prøv-og-feil Fossefallsmodellen Programmering Feilretting Ingen planlegging Ingen kravanalyse eller designfase Ad-Hoc testing Høy risiko for å feile INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 21 INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 22 Foranalyse Fossefallsmodellen Varianter av fossefallsmodellen Den første utgaven fra 1970 Kravinnsamling Design Programmering Test Prosjektstyring INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 23 INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 24

Varianter av fossefallsmodellen Den første utgaven fra 1970 Hovedprinsippet i fossefallsmodellen Utvikling er en forutsigbar produksjonsprosess p En pålitelig og detaljert plan kan etableres ved oppstart Kravene kvalitetssikres ved at de dokumenteres og gjennomgås før programmeringen starter t Hver fase avsluttes før neste fase kan begynne Endringer i planen skal normalt ikke skje Programvaren antas å bli korrekt utviklet i første forsøk Systemet kan ikke utprøves før det er helt ferdig En repitisjon av prosessen vil levere samme resultat INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 25 INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 26 Fordeler med fossefallsmodellen Problemer med fossefallsmodellen Tre viktige observasjoner En av de første forsøk på å standardisere systemutvikling (DoD Military Standard 2167) Påtvinger disiplin med tydelig start og stopp i hver fase Konseptuelt enkel, enkel å forstå og kontrollere for ledere, enkel å undervise Alle krav og design gjøres før programmering. Sparer mye kostnader hvis feil oppdages på dette stadiet 1. Er det mulig å forstå hvordan et IT-system vil fungere ved å lese fra hundre til flere tusen sider med dokumenter? 2. Er det først når vi sitter foran en datamaskin og prøver et system at vi oppdager feilene? 3. Hvordan kan vi planlegge en testfase med en gitt slutt dato uten at vi vet noe om feilraten i systemet? (DoD = Department of Defense, USA) INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 27 INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 28

Problemer med fossefallsmodellen Prototyping Adekvate krav kan ofte ikke defineres på forhånd Brukerne er ikke alltid sikre på hva de behøver «Jeg vet hva jeg behøver når jeg ser det» Endringer i eksterne forutsetninger er ikke forutsigbare Støtter ikke endring av krav underveis Brukerne endrer oppfatning underveis i prosessen Støtter ikke tilpassning til endrede eksterne forutsetninger Evaluering og test utføres til slutt Feil og mangler oppdages for sent (dette gir høye kostnader) Vi har behov for bedre modeller som støtter evaluering og endring mye tidligere i utviklingen En prototype er en initiell versjon hvis formål er å demonstrere konsepter, utforske designvalg, og evaluere forståelsen av identifiserte krav. Formålet er å sikre at det riktig systemet utvikles. Introdusert for å avhjelpe problemene med fossefallsmodellen En mer strukturert utgave av prøv-og-feil Tilbyr flere varianter: Bruk-og-kast kast prototyping Evolusjonær prototyping INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 29 INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 30 Prototyping Fordeler med prototyping Grov spesifikasjon Bygg prototype Evaluer Foranalyse Systemdefinisjon Prototyping Gir en visuell og tidlig presentasjon av et tenkt slutt resultat Husk: «Jeg vet hva jeg behøver når jeg ser det» Forbedrer forståelsen av behov og løsningskonsept Kaste Videreutvikle Vurdering Start utvikling Evaluering Implementering INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 31 INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 32

Ulemper med prototyping Fra fossefall til evolusjon Krav til hurtighet fører til kompromisser på kvalitet Lite fokus på arkitektur og andre tekniske kvaliteter Lite fokus på vedlikehold Interessenter betrakter en kjørende prototype som ferdig system Fossefallsmodellen har flere viktige ulemper. Prototyping og evolusjonære modeller har oppstått som følge av denne erfaringen Fossefallsmodellen baseres på antagelsen om at systemutvikling er en forutsigbar og repeterbar produksjonsprosess (er det riktig?) Prototyping og den evolusjonære modellen antar at systemutvikling ikke er forutsigbar eller repeterbar Prototyping benyttes idag mer som en teknikk for å studere krav og løsningsforslag enn som en fullstendig utviklingsmodell INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 33 INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 34 Evolusjonære modeller Definisjon på iterativ og inkrementell utvikling Del prosjektet opp i mindre selvstendige mini-prosjekter som kalles iterasjoner. Hver iterasjon må levere en fungerende del av systemet. Dette kalles et inkrement. Formålet er å kontrollere at: Prosjektgruppen forstår interessentenes behov Interessentene bekrefter at prosjektgruppen forstår interessentenes behov Teknologi, verktøy, og metoder virker som forventet En iterativ utviklingsprosess er en utviklingsprosess som består av flere mindre sekvensielt ordnede miniprosjekter som kalles iterasjoner Hver iterasjon er et selvstendig mini-prosjekt i som består av kravinnsamling, design, implementering, og test Målsettingen med hver iterasjon er å levere en fungerende, stabil, integrert del av det totale systemet Mange små iterasjoner med leveranser og evaluering leder prosjektet i riktig retning. Dersom noe er galt oppdages dette tidlig INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 35 INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 36

En begrepsavklaring Endring Evolusjonær utvikling introduserer prinsippet pp om adaptiv endring i form av evaluering og justering av planen Iterativ og inkrementell utvikling viser hvordan "It is not the strongest species that survive, nor the most intelligent, but the most responsive to change" [Sir Charles Darwin, 1871] INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 37 INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 38 Prinsipper Ingen fullstendig kravspesifikasjon skrives ved oppstart Regelmessige leveranser (inkrementer) til interessentene Utviklingen foregår stegvis med nye inkrementer Eksplisitte endring og bearbeiding av tidligere resultater er innebygget i modellen Regelmessig endring av planene basert på evalueringer eringer utført av interessentene INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 39