Ulike typer prosessmodeller. Systemutvikling. Utviklingsmodeller. Prosessmodell - faser



Like dokumenter
Oppsummering av hovedområdene i kurset LO 135A Kirsten Ribu

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

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

UML-Unified Modeling Language. Prosess-oversikt. Use case realisering

Use case modellen. Use case modellering i analysefasen. Hva er en Aktør? Hva er et Use case?

UML-Unified Modeling Language

Validering og verifisering. Kirsten Ribu

Use case modellen. Use case modellering i analysefasen. Hva er en Aktør? Hva er et Use case? Use case modellering. Eksempel

UML- Use case drevet analyse og design. Domenemodeller Sekvensdiagrammer Use case realisering med GRASP patterns Klassediagram - designmodeller

I dag UML. Domenemodell visualisering av konsepter. Eksempel. Hvordan finne domeneklasser?

Use case drevet design med UML

UML 1. Use case drevet analyse og design Kirsten Ribu

Systemutviklingsmetoder

Kirsten Ribu

Livsløpstesting av IT-systemer

Prosjektet - leveranser. Testing og evaluering av systemer. Hva er sikkerhetskritiske systemer? I dag: Systemfeil og testing. Robust kraftforsyning?

UNIVERSITETET I OSLO

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

Kirsten Ribu

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

Estimeringsmetoder. I dag. Kostnadsestimering. Kostnader og prisfastsettelse. Ulike estimeringsmetoder. Måling av programvare. Estimeringsteknikker

Estimeringsmetoder. Kirsten Ribu. HiO - Kirsten Ribu

UNIVERSITETET I OSLO

UKE 11 UML modellering og use case. Gruppetime INF1055

Kravspesifikasjon med UML use case modellering. Erik Arisholm

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

Inception Elaboration Construction Transition Bemanning 1 1,5 2 2 Varighet i uker Antall iterasjoner (lengde i uker i parentes) Tabell 1

IN2001: Kravhåndtering, modellering, design

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

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

Estimeringsmetoder. I dag. Estimering = måling. Kostnader og prisfastsettelse

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

IN2000:&Kravhåndtering,&modellering,&design

Mer om objektorientering og UML

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

Use Case-modellering. INF1050: Gjennomgang, uke 04

Use case drevet design med UML. I dag

Innhold. Innledning Del 1 En vei mot målet

I dag Prosjektstyring og prosjektgjennomføring

Statisk testing. Testing uten datamaskin, men med vår egen evne til å vurdere og analysere

Gruppenavn. Prosjektnavn Beskrivelse av design For Navn på systemet. Versjon <1.0>

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

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

Kravspesifikasjon med. UML diagrammer. systemutvikling. Dokumentasjon av systemets krav, arkitektur, design og implementasjon

GJENNOMGANG UKESOPPGAVER 9 TESTING

Spesifikasjon av Lag emne

Måling Hvordan ta beslutninger Estimeringsteknikker

Kravspesifikasjon med. Erik Arisholm

Unified Modeling Language (UML) Kravspesifikasjon med UML use case modellering. UML diagrammer. Notasjon som støtter opp under modellbasert

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

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

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Fra krav til objektdesign

Kravspesifiseringsprosessen

Kravspesifikasjon. Kravspesifikasjon. Mal for kravspesifikasjon. Hvordan finne fram til kravene? Hva skal systemet gjøre? Hvem og hva påvirker krav?

Hva gjøres i design? 19. september 2002, Tore Berg Hansen, TISIP

God objektorientert design Flere UML diagrammer UML Distilled kap. 7,8, 9 Using UML, kap. 11, 12, 14 Kirsten Ribu

Spesifikasjon av Lag emne. Kursregistrering bruksmønstermodell (ny versjon) Dagens forelesning. Fra krav til objektdesign

UNIVERSITETET I OSLO

EKSAMEN 05HBINDA, 05HBINFA, 05HBISA, 05HBMETEA, 06HBINFA. Tom Røise. INNFØRING MED PENN, evt. trykkblyant som gir gjennomslag

Kravspesifikasjon. Dagens forelesning. Mal for kravspesifikasjon. Hvordan finne fram til kravene? Kravspesifikasjon og objektorientert analyse

Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling

Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling

Produktrapport Gruppe 9

UKE 13 Mer UML modellering. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski

Verifikasjon og validering

Hva gjøres i analysen? 2. oktober 2001, Tore Berg Hansen, TISIP

Prosjektstyring og prosjektgjennomføring

Mer$om$objektorientering$og$UML

GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG

Objektorientering og UML. INF1050: Gjennomgang, uke 06

Tom Røise 18. Februar 2009

1. Leksjon 01: Introduksjon til faget Prosjektrettet systemarbeid

Innholdsfortegnelse: Resymé: Denne leksjon gir en kort og enkelt oversikt over hvilke oppgaver som skal utføres i design- og programmeringsfasen.

BlackBox, WhiteBox og andre testmetoder. Etter ønske fra studentene 26. november 2009

Inf1055 Modul B 26 april 2017:

1. Mer om iterative utviklingsprosesser

IN& &april&2019. Modellering*av*krav. Yngve&Lindsjørn. IN1030&'>Systemutvikling'>&Modellering&av&krav 1

Løsningsforslag til Case. (Analysen)

Kravhåndtering. INF1050: Gjennomgang, uke 03

DRI2001 h04 - Forelesning Systemutvikling og nettsteder

Forside Eksamen INF1055 V17

Vakt og lønnssystem - Rema 1000

OptimalJ-kurs UIO Oppsummering av kurset. De ulike modellene egenskaper og formål

Eksamen 2013 Løsningsforslag

Eksamen INF1050: Gjennomgang, uke 15

UKE 9 Prosesser og prosessmodeller inkludert smidige metoder. Gruppetime INF1055

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

Brukersentert design Kapittel 3 i Shneiderman

TESTRAPPORT Tittel på hovedprosjektet: Varebestillingssystem for Wokas Salg AS

Mer om objektorientering og UML

Spesifikasjon av Lag emne. Kursregistrering bruksmønstermodell. Dagens forelesning. Fra krav til objekter

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

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

DRI2001 forelesning

Systemutvikling (Software Engineering) Professor Alf Inge Wang

Use case modellering. Use case modellen. Metode for systembeskrivelse og Nettsted-design

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning

S Y S T E M U T V I K L I N G ( L O A )

Transkript:

1 Ulike typer prosessmodeller Systemutvikling Oppsummering av hovedområdene i kurset LO 135A Kirsten Ribu 19.05.2004 De røde er viktige i kurset: Evolusjonær (prototyping) Inkrementell (RUP) XP fossefall gjenbruksbasert spiral-modellen 2 Prosessmodell - faser Utviklingsmodeller Forstudium/ Feasability study (Hvilke muligheter har vi?) Kravspesifikasjon (Hva skal systemet gjøre?) Design (Hvordan skal systemet lages?) Programmering (Lage systemet) V&V (Validering og verifikasjon) / Testing Har vi bygd riktig system/produkt? (validering) Har vi bygd systemet/produktet riktig? (verifikasjon) Videreutvikling/Vedlikehold/Endring 3 En modell er en oversikt over utviklingsarbeidet Modellen beskriver hvilket arbeid som skal gjøres hvordan arbeidet skal inndeles i faser og aktiviteter og arbeidstrinn Det finnes mange forskjellige utviklingsmodeller Valg av modell er avhengig av: hvor store deler av systemutviklingsarbeidet modellen omfatter hvordan faser og aktiviteter er delt inn hvor fleksibel modellen er hvordan ansvaret og organiseringen skal gjøres 4

5 Oversikt over aktiviteter Inkrementell utvikling 6 Inkrementell utvikling - fordeler Viktig funksjonalitet kan leveres tidlig Tidlige inkrementer kan være prototyper som avdekker krav for senere inkrementer Mindre risko for at prosjektet skal feile og ingenting leveres Funksjonalitet med høyest prioritet blir testet best. 7 Fossefallmodellen Requirements definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance Lite fleksibel inndeling i fastlagte steg Vanskelig å etterkomme kundens skiftende krav Modellen er bare anvendelig dersom kravene er tydelige og godt dokumenterte, og lette å forstå. 8

9 Evolusjonær utvikling Explorativ (utforskende) utvikling Arbeidet foregår sammen med kunden med å utvikle et ferdig produkt utfra et utkast til kravspesifikasjon Må starte med veldefinerte krav Prototyping Målet er å forstå systemkravene. Brukes når kravene er uklare, (for å tydeliggjøre kravene) Anvendbarhet: For små eller mellomstore systemer For deler av større systemer (f.eks brukergrensesnittet) For systemer med kort levetid. Evolusjonær prototyping : fordeler og ulemper Fordeler: Raskere leveranse av systemet Brukerengasjement under utviklingen av systemet Systemet oppfyller brukerkravene, og brukerne blir mer dedikerte (føler eierskap til systemet) Ulemper Ofte dårlig strukturerte systemer Dårlig dokumentasjon 10 Extreme programming - XP En ny tilnærming til utvikling basert på utvikling og leveranse av svært små inkrementer (deler) Rask og kontinuerlig koding Brukermedvirkning i utviklingsteamet Parprogrammering Anvendbarhet: For mindre systemer Objektorientering 11 12

13 Best practises ved programvareutvikling Iterativ utvikling Håndtering av krav Bruk av komponentbasert arkitektur Visuell modellering Kontinuerlig verifisering av programvarekvaliteten Kontrollerte endringer i programvaren The Unified Process forts. Prosessmodell som kombinerer best practises i software utvikling: Iterativ livssyklus Risikodrevet utvikling UP består av 4 faser: Inception gjennoførbarhetsanalyser, tidlige estimater Elaboration iterativ implementering av basisarkitektur, løsning av høyrisiko faktorer, identifikasjon av mesteparten av kravene Construction iterativ implementering av lavrisiko-elementer og forberedelser til innføring av systemet Transition beta-test og innføring 14 Oversikt over prosessen. Inception Elaboration Construction Transition Idefase Utdypning Konstruksjon Overgang Idefasen: Krav, omfang, lønnsomhet Utdypning: planlegging, krav, arkitektur, risiko, prototyping Konstruksjon: konstruksjon, implementering, testing Overgangsfasen: kvalitetskontroll, brukeropplæring 15 Kort repetisjon av grunnleggende UML Use case modellen Beskriver kravene til systemet Beskriver systemet sett fra kundens perspektiv Beskriver hva som skjer, ikke hvordan det skjer Use case er ikke objekt-orienterte, men beskrivelser av hendelsesforløp 16

17 Pre- og postbetingelser, triggere Prebetingelse: Må være sant før use caset starter (testbart). F.eks: Bruker er logget inn, bruker er registrert i systemet Postbetingelse: Testbar tilstand når use caset er ferdig. F.eks: Bruker har mottatt en e-post, eller Skjema er opprettet. Trigger: En hendelse som setter i gang use caset. F.eks: Kunde ønsker å bestille time Use case modellering Use case modellen består av diagram og tekstlige beskrivelser som viser stegene i use caset Hvert use case steg beskriver en enkelthandling (transaksjon) mellom bruker og systemet Et komplett use case består av flere ulike hendelsesforløp (flyt, scenarier) 18 Detaljering i iterasjoner Sekvensdiagrammer: fra krav til design En overordnet use case modell består av diagram og en kort beskrivelse av alle use case En uformell modell har main success scenarier på de viktigste use case Variasjoner og feilsituasjoner (alternativ oppførsel) finnes ved hjelp av brainstorming Use casene detaljeres ut i flere 19 iterasjoner til alle er komplette Et UML sekvensdiagram viser hendelsesflyten i et use case viser interaksjoner (samarbeid) mellom objekter i systemet viser rekkefølgen på beskjedene som sendes mellom objektene kan brukes til å identifisere metodene til objektene i systemet 20

21 Domenemodell Designmodell - Design Domenemodellen tilhører analysefasen og er en representasjon av objekter i domenet. Domeneklassene gjenspeiler objekter i den virkelige verden, ikke systemkomponenter Lages i parallell med use case modellen Typisk informasjon om objektene: Assosiasjoner Attributter Multiplisitet En designmodell viser systemklasser, ikke konseptuelle klasser som i domenemodellen Typisk informasjon er: Klasser, assosiasjoner, attributter, multiplisitet Grensesnitt Metoder Avhengigheter 22 Use case realisering En betegnelse fra Rational Unified Process (RUP) Beskriver forbindelsen mellom kravene uttrykt i use casene og objektdesignet som oppfyller disse kravene Beskriver hvordan scenariene i et use case realiseres gjennom objekter som samarbeider Illustreres med sekvensdiagrammer Ikke-funksjonelle krav Eksempler på ikke-funksjonelle krav er krav til sikkerhet, ytelse, responstid, kostnader detaljer rundt hvilke hardware eller software komponenter som skal brukes Ikke-funksjonelle krav som gjelder et spesielt use case kan skrives i det use caset Ikke-funksjonelle krav som gjelder flere use case eller hele systemet beskrives i et eget dokument. 23 24

25 Objektdesign GRASP mønstre: Patterns of General Principles in Assigning Responsibilites: Ekspertprinsippet: La det objektet som har kunnskapen (dataene) også behandle den (Eksempel Spørreskjema ) Kontrollobjektprinsippet: Velg objekt som håndterer systemhendelser (Eksempel: SpørreskjemaHåndterer use case kontrollobjekt) Skaperprinsippet: Legg ansvar for å opprette et nytt objekt i klassen som må vite om det nye objektet (Eksempel: SpørreskjemaGenerator ) Høy kohesjon Et objekt skal bare ha ansvar for relaterte ting Lav kobling Et objekt skal ha samarbeid med et begrenset antall andre objekter Kobling/kohesjon Høy kohesjon Et objekt skal bare ha ansvar for relaterte ting Lav kobling Et objekt skal ha samarbeid med et begrenset antall andre objekter 26 Kostnadsestimering Ingen enkel oppgave: Tidlige estimater baserer seg på ufulstendig informasjon i kravspesifikasjonen Man må kanskje benytte ny teknologi Det kan være ukjente folk i prosjektteamet Estimater kan være selvoppfyllende profetier: Estimatet bestemmer budsjettet produktet justeres for å holde budsjettet Bottom-up vs. Top-down Bottom-up estimering begynner med komponentene på laveste nivå, og det lages et estimat for hver del. Bottom-up tilnærmingen setter sammen estimering av enkelttdeler til høynivå estimater. Top-down estimering begynner med det overordnede produkt Estimater for enkeltdelene regnes ut som deler (prosenter) av estimatet for hele systemet. 27 28

29 Prosentvis bottom-up estimering basert på empiri Prosjektledelse 20% Analyse: 15% Design: 20% Koding: 25% Testing 15% Systemintegrasjon 5% Totalt 100% Hva er et brukergrensesnitt? Alle produkter har et brukergrensesnitt Eks: Pantemaskinen i butikken: Lys lyd, bevegelse Bil: menneske/maskin grensesnittet PC: Mer enn skjermbildet: mus, tastatur, og skjerm med diverse knapper for lys og lydkontroll 30 Brukerens rolle Utfordringer: å kjenne brukeren og dennes oppførsel Brukermedvirkning er viktig! I alle systemer er det brukeren som avgjør hvorvidt et system er en suksess eller ikke. God ide å bruke prototyping ved utforming av skjermbilder Validering og verifikasjon hvorfor? Å sørge for at et datasystem tilfredsstiller brukerens behov For å kunne vurdere hva vi gjør og hvorfor vi gjør det Behov for verifikasjon øker med størrelsen på systemet Ca 1/3 av utviklingstiden brukes å testing, noen ganger opp til 50% Systemutvikling er en industriell prosess! 31 32

33 V&V: Validering: Bygger vi det riktige systemet? Snakke med brukerne Bruke use case modellen Verifikasjon: Bygger vi systemet riktig? Manuelle inspeksjonsmetoder Automatisert testing Inspeksjon Dokumentgjennomgang Gjennomgang av dokumenter med formål å finne feil og mangler Hvem bør gjennomgå dokumentet? De som skal ha systemet De som skal bruke dokumentet De som har vært delaktige i utformingen av dokumentet Eksperter (rollen / forretningsområdet) Gjennomgang av kildekoden for å finne feil og mangler Funksjonelle feil (avvik fra design og kravspesifikasjon) Avvik fra kodestandard og retningslinjer (for eksempel navngiving av klasser) Tekniske feil 34 Testbarhet (for eksempel dokumentasjonsmangler, muligheten for isolasjon, etc) Typer testing Enhetstest Tester at komponenten (klassen) virker isolert Integrasjonstest Tester at komponenten (klassen) virker sammen med andre komponenter Betatest Utvalgte kunder tar i bruk systemet før offisiell lansering Akseptansetest Tester at systemet lar brukerne gjøre det de trenger Tester med reelle data Utføres gjerne i samarbeid mellom kunder og testere Systemtest Tester at systemet oppfører seg korrekt i samspill med Type testing forts. Ytelsestest (tester ytelse = hastigheten på én transaksjon) Stresstest (overbelastningstest) (tester skalerbarhet = hastigheten på mange samtidige transaksjoner) Recoverability-test (tester systemets håndtering av uforutsette avbrudd) omgivelsene 35 36

37 Black- og white-box testing Testing med use case ne Inndata Inndata Komponent Black box: Gir input forventet output? Komponent Xxxxx xxxxx Utdata Utdata Bruk use case beskrivelsene som test cases. Viktig: At use casene oppdateres ved alle endringer Test pre- og postbetingelsene Test at all beskrevet funksjonalitet er på plass ved gå gjennom hvert use case Test alle feilsituasjoner og alternativ oppførsel White box: Følger hvert trinn i komponenten. Midlertidige utskrifter. 38 Hva er konfigurasjonsstyring Takk for nå! Konfigurasjonsstyring disiplin for å håndtere endringer og ulike versjoner av komponenter Konfigurasjonsstyringsverktøy støtter håndtering av versjoner av komponentene og i å konfigurere (sette sammen) et system Hvordan håndtere versjoner og releaser? Hvordan håndtere endringer? Merk: Nye versjoner av et programsystem lages etter hvert som det endres Konfigurasjonsstyring støtter evolusjon av systemer på en kontrollert måte Helt avgjørende i nærmest all industriell programvareutvikling Likevel finnes nesten ingen kompetanse om dette hos nyutdannete kandidater fra universitet/høyskole (Unntak: Hio! ) 39 Ingen undervisning neste uke, men lærer er tilgjengelig. Lykke til med innleveringen! 40