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



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

Kravspesifikasjon. Erik Arisholm. Simula Research Laboratory. Institutt for Informatikk. INF1050-krav-1

Utvikling fra skallet og inn

Kravspesifikasjon med UML use case modellering. Erik Arisholm

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

Kravspesifikasjon med. Erik Arisholm

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

Fra krav til objektdesign

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Spesifikasjon av Lag emne

Metode for ansvarsdrevet OO. Dagens forelesning. Delegering av ansvar i en trelagsarkitektur

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

Beskjed fra Skagestein

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

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

NB! Endring i undervisningsplanen

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

Prosjektrettet systemarbeid

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

The Unified Modeling Language - UML

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

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

Use Case-modellering. INF1050: Gjennomgang, uke 04

Metode for ansvarsdrevet OO med UML. Dagens forelesning. Hovedflyt for Meld på kurs. Delegering av ansvar i en trelagsarkitektur

UKE 11 UML modellering og use case. Gruppetime INF1055

Metode for ansvarsdrevet OO. Dagens forelesning. Delegering av ansvar i en trelagsarkitektur

Datamodellering med UML. Modellenes to formål. The Unified Modeling Language - UML

Datamodellering med UML. Modellenes to formål. The Unified Modeling Language - UML

Metode for ansvarsdrevet OO. Dagens forelesning. Delegering av ansvar i en trelagsarkitektur

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

Datamodellering med UML

Metode for ansvarsdrevet OO med UML. Dagens forelesning. Hovedflyt for Meld på kurs. Delegering g av ansvar i en trelagsarkitektur

o UML klassediagrammer

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

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

Dagens forelesning. o Litt mer om design med UML sekvensdiagrammer. Sentralisert og delegert kontrollstil

Produktrapport Gruppe 9

Dagens forelesning. o Litt mer om design med UML sekvensdiagrammer. Sentralisert og delegert kontrollstil

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

UML klassediagrammer

DRI2001 h04 - Forelesning Systemutvikling og nettsteder

INF1050 Systemutvikling

Oversikt over forelesningene. Fra analyse til objektdesign. Utfordringen i å lage OO-modeller. Metode for ansvarsdrevet OO. Uke 12: Ansvarsdrevet OO:

Eksamen INF1050: Gjennomgang, uke 15

Universitetet i Oslo Institutt for informatikk. Eskild Busch. UML hefte

INF1050 Systemutvikling

UML-Unified Modeling Language

UNIVERSITETET I OSLO

Erfaringer fra semi-strukturerte intervjuer innenfor Software Engineering. 10. oktober 2005 Siw Elisabeth Hove

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning

Prosjektoppgave våren 2007

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

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

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning

Krav. Beskriver tjenestene produktet skal håndtere Kravene kan testes

Fra krav til objekter. INF1050: Gjennomgang, uke 05

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

Ulike typer prosessmodeller. Systemutvikling. Utviklingsmodeller. Prosessmodell - faser

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

AlgDat 12. Forelesning 2. Gunnar Misund

Planlegging og dokumentasjon

Use case drevet design med UML

Modellering av brukstilfeller og forretningsprosesser. Kurs i standarder, Oslo, 12. juni 2018

Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling

Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling

DRI 2001 Systemutviklingsarbeidet og nettsteder Forelesning

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

GJENNOMGANG OBLIGATORISK OPPGAVE 1

Kapittel 7 & 8. Kravspesifikasjoner & Data design. Thomas Tjøstheim og Thomas Edvinsen. 20 September Kapittel 7 & 8 p.1/20

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

Forslag til løsning. Oppgave 1

Forskningsmetoder. INF1050: Gjennomgang, uke 13

DRI2001 forelesning

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

Eksamen INF

IN2001: Kravhåndtering, modellering, design

Systemutviklingsmetoder

UNIVERSITETET I OSLO

Kravhåndtering. INF1050: Gjennomgang, uke 03

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

Aktivitetskart. Fremdriftsplan: denne prosessen: Peder Sundbø. ferdigstilt uke 8. fastslåing av prosjekt. Magnus Eriksen. Uke 8.

Fra krav til modellering av objekter

Agenda. TDT4140: Kravinnhenting. Kravprosessen Forståelsesproblemet Teknikker for innhenting av krav. Den organisatoriske dimensjonen

STE6221 Sanntidssystemer Løsningsforslag kontinuasjonseksamen

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

Vakt og lønnssystem - Rema 1000

GJENNOMGANG UKESOPPGAVER 9 TESTING

Meeting Reservation System

Lykke til! Eksamen i fag TDT4140 Systemutvikling NTNU Norges teknisk-naturvitenskapelige universitet

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

Tom Røise 18. Februar 2009

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

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

Vedlegg Brukertester INNHOLDFORTEGNELSE

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

Innhold. Innledning Del 1 En vei mot målet

Eksamen i fag SIF8018 Systemutvikling. Fredag 25. mai 2001 kl

Entobutikk 3.TESTRAPPORT VÅR 2011

Innholdsfortegnelse INNHOLDSFORTEGNELSE... 2 REVISJONSOVERSIKT...4 INTRODUKSJON MED FORUTSETNINGER... 5

Transkript:

Dagens forelesning Kravspesifikasjon Kravspesifikasjon og objektorientert analyse Hva skal systemet gjøre? Hvem og hva påvirker krav? Motivasjon: Hvorfor trenger vi UML? Noen resultater fra et UML-eksperiment Erik Arisholm Simula Research Laboratory Kravspesifikasjon med UML: Uttrykke krav som bruksmønstre (use cases) & Institutt for Informatikk INF1050-krav-1 INF1050-krav-2 Mal for kravspesifikasjon Overordnet systembeskrivelse (visjon) o Hva er formålet med systemet? Funksjonelle krav o Hvilke tjenester skal systemet tilby? Kvalitetsønsker (ikke-funksjonelle krav) o Eks: Krav til svartider, brukervennlighet, endringsevne, oppetid Rammer (påvirker funksjonelle og ikke-funksjonelle krav) o Lover og forskrifter o Teknologi og samvirke med andre systemer o Standarder o Økonomiske rammer og tidsfrister Hvordan finne fram til kravene? Intervjuer med kunder og potensielle brukere Observasjon av eksisterende arbeidsprosesser Granskning av standarder, lover og forskrifter Inkrementell og evolusjonær (iterativ) systemutvikling, inkludert prototyping INF1050-krav-3 INF1050-krav-4

Unified Modeling Language - UML Et sett på 8 diagramteknikker, utarbeidet av toneangivende grupperinger innen OO Use Case diagram Class/object diagram Sequence diagram Collaboration diagram State diagram Activity diagram Component diagram Deployment diagram Use- Case Logical Component Concurrency Deployment Hva brukes UML til? Notasjon som støtter opp under metoder for o objektorientert analyse ( hva systemet skal gjøre ), og o objektorientert design ( hvordan systemet skal gjøre det ) Dokumentasjon av systemets krav, design og implementasjon for andre utviklere (og for deg selv) for kommunikasjon med kunde/sluttbruker under utviklingsprosjektet Er ikke så sikker på denne påstanden: det er ikke sikkert at kunden forstår UML spesielt godt Enkle prototyper av skjermbilder fungerer i mange tilfeller bedre som kommunikasjonsmiddel med sluttbrukere!* * Anette C. Lien and Erik Arisholm, Evolutionary Development of Web-applications - Lessons Learned, European Software Process Improvement Conference (EuroSPI'2001), Limerick Institute of Technology, Ireland, November 2001 INF1050-krav-5 INF1050-krav-6 Motivasjon: Vitenskapelig evaluering i vårt fag Ville du tatt medisiner som ikke var vitenskapelig dokumentert med hensyn til o forventet effekt inkludert eventuelle bivirkninger? Holder det at naboen synes effekten var bra? Det er dessverre fortsatt svært vanlig i vårt fag å ta i bruk ny teknologi fordi noen påstår at den er bra, før den har vært gjennom en grundig evaluering av både potensielle kostnader og eventuelle gevinster o Prosesser, metoder og verktøy for objektorientert programvareutvikling er absolutt ikke noe unntak! Nytteverdien av UML som dokumentasjon for andre utviklere resultater fra et kontrollert eksperiment * (m/java endringsoppgaver og Tau UML) % subjects with correct task 100 90 80 70 60 50 40 30 20 10 Task Correctness No UML 0 Task1 Task2 Task3 Task4 * Erik Arisholm, Samera Afsheen Ali & Siw Elisabeth Hove: An Initial Controlled Experiment to Evaluate the Effect of UML Design Documentation on the Maintainability of Object-Oriented Software in a Realistic Programming Environment, Simula TR-2003-4 UML INF1050-krav-7 INF1050-krav-8

Nytteverdi av UML tidsforbruk på koding og testing * Nytteverdi av UML ekstra tidsforbruk for å oppdatere UML-modellene med Tau UML * Effort to understand, code and test tasks 2+3+4 250 Effort (incl. updating UML doc) for tasks 2+3+4 250 Time (minutes) 200 150 100 50 Time (minutes) 200 150 100 50 0 0 NoUML UML NoUML UML * Erik Arisholm, Samera Afsheen Ali & Siw Elisabeth Hove: An Initial Controlled Experiment to Evaluate the Effect of UML Design Documentation on the Maintainability of Object-Oriented Software in a Realistic Programming Environment, Simula TR-2003-4 * Erik Arisholm, Samera Afsheen Ali & Siw Elisabeth Hove: An Initial Controlled Experiment to Evaluate the Effect of UML Design Documentation on the Maintainability of Object-Oriented Software in a Realistic Programming Environment, Simula TR-2003-4 INF1050-krav-9 INF1050-krav-10 Hva er en bruksmønstermodell? En komplett bruksmønstermodell består av to komponenter o UML bruksmønsterdiagrammer som gir en visuell representasjon av modellen (oversikt over aktører, bruksmønstre og sammenhengen mellom dem) o tekstlige spesifikasjoner av hvert enkelt bruksmønster Modellen beskriver hva systemet skal gjøre Eksempel: Bank bruksmønsterdiagram Ta ut penger fra minibank Overfør penger o Aktør: Beskriver en bestemt type bruker av systemet Aktører kan være mennesker eller andre informasjonssystemer Sett inn penger på kontoen Bankfunksjonær UML symbol for en aktør: Kontoinnehaver o Bruksmønster (use case) Kontoinnehaver Opprett konto beskriver en bestemt interaksjon mellom systemet og aktøren UML symbol for et bruksmønster: Lån penger Lånebehandler Ta ut penger fra kontoen INF1050-krav-11 INF1050-krav-12

Aktører (1) En aktør beskriver en (og kun en) ROLLE som en bruker (en person eller et annet system) har i forhold til systemet som skal utvikles o En person (Ola) kan ha mange roller Aktør 1: Kontoinnehaver Aktør 2: Bankfunksjonær Men Ola er ingen aktør i banksystemet Aktører (2) Aktører avgrenser systemets bruksområder: o Hvilke typer brukere vil systemet ha? o Hvilke MÅL har disse brukerne? Målene til aktørene dikterer hvilke tjenester systemet skal tilby o Primære aktører initierer bruksmønstre som oppfyller deres mål o Sekundære aktører muliggjør utførelsen av bruksmønstre o Hvilke aktører et system har, og hvorvidt en aktør er primær eller sekundær avhenger av hvor man setter grensene mellom system og dets omgivelser INF1050-krav-13 INF1050-krav-14 Aktører (3) Hva er et bruksmønster? Aktører har MÅL. Målene er gode utgangspunkt for å finne bruksmønstre: o Kontoinnehaver : Mål1: Ta ut penger Mål2: Overføre penger Mål3: Sette inn penger Mål4: Låne penger o Bankfunksjonær Mål1:Behandle lånesøknad Et bruksmønster beskriver en komplett sekvens av interaksjoner mellom aktør og system for å oppnå et bestemt MÅL Navnet på et bruksmønster representerer en brukssituasjon hvor alt går bra ( happy day scenario ). Tips! Bruk aktive setninger Eksempler (): o Ta ut penger fra kontoen (ikke uttak ) o Overfør penger (ikke pengeoverføring ) o Sett inn penger på kontoen (ikke innskudd ) INF1050-krav-15 o Opprett konto INF1050-krav-16

Eksempel: Bank bruksmønsterdiagram Kontoinnehaver Ta ut penger fra minibank Overfør penger Sett inn penger på kontoen Opprett konto Lån penger Hvem er primær aktør? Hva med Behandle lånesøknad? Hva med Administrere konto? Er detaljeringsnivået riktig? Lånebehandler Bankfunksjonær Hvordan lage bruksmønstermodeller? Det er ofte vanskelig å finne de riktige bruksmønstrene o Hvor STORT er et bruksmønster? o Hvor DETALJERT er et bruksmønster? o Hva MANGE bruksmønstre består modellen av? Det finnes dessverre ikke noe fasitsvar, men her er noen enkle retningslinjer: o 1: Identifiser grensen mellom systemet og omgivelser. Det bestemmer hva som er primære aktører o 2: Dersom du lar målene til det du anser som de primære aktørene styre valg av bruksmønstrene har du et godt utgangspunkt å jobbe med o 3: Dersom modellen blir svært kompleks kan man ofte velge et høyere abstraksjonsnivå (med større bruksmønstre på øverste nivå) I videregående kurs (bl.a. Inf3120 Software Engineering) vil dere også lære mer avanserte UML-konstruksjoner som gjør det mulig å definere mer struktur på store bruksmønstermodeller (<<include>>, <<extend>>, m.m.) INF1050-krav-17 INF1050-krav-18 Hvilke av disse setningene tror du representerer et bruksmønster? o Logg inn på systemet o Lei en bil o Behandle retur av leiebil o Øk produksjonen med 20% o Varesalg Hint: o Hvor går systemgrensen, hvem er primær aktør og hvilke(t) mål oppfyller bruksmønsteret? o Kan bruksmønsteret beskrives som et komplett hendelsesforløp med en veldefinert start og slutt? Mal for spesifikasjon av et bruksmønster Et bruksmønster er ikke komplett uten en tekstlig beskrivelse som skal bestå av følgende informasjon Navn: Hva heter bruksmønsteret Aktør: Hvem initierer bruksmønsteret Pre-betingelse: Beskriver hva som må være oppfylt for at bruksmønsteret skal kunne utføres (opsjon) Post-betingelse: Beskriver tilstand til system og aktør etter at bruktsmønsteret er utført, både ved normal hendelsesflyt og variasjoner. (opsjon) Trigger: Et situasjon eller hendelse som initierer bruksmønsteret Normal hendelsesflyt: Hva skjer når alt går bra, dvs når målet til aktøren oppnås på enklest mulig måte Variasjoner: Beskriv spesialtilfellene (unntak fra normal hendelsesflyt) separat. Format: <Betingelse>: <konsekvenser> Relatert informasjon: For eksempel ikke-funksjonelle krav ( svartid må være bedre enn 10 sekunder ) (opsjon) INF1050-krav-19 INF1050-krav-20

Student Eksempel: Første utkast til bruksmønstermodell for kursregistrering Meld på kurs Betal semesteravgift Lag kursbeskrivelse Behandle dispensasjonssøknad K ursa dm inistra tor Aktør: Student Spesifikasjon av Meld på kurs Trigger: Student ønsker å melde seg på et kurs Pre-betingelse: Student har betalt semesteravgift og er logget inn på systemet Post-betingelse: Student er meldt på kurset eller student har sendt søknad om dispensasjon Normal Hendelsesflyt: 1. Studenten velger kurs 2. Systemet sjekker om det er ledig plass på kurset 3. Systemet sjekker at studenten kvalifiserer til å ta kurset 4. Systemet registrerer studenten på kurset og oppdaterer antall oppmeldte på kurset INF1050-krav-21 INF1050-krav-22 Spesifikasjon av Meld på kurs (forts.) Variasjoner: 1a. Kurset holdes ikke dette semesteret: (Er dette en mulig variasjon?) 1. Studenten velger et annet kurs eller avslutter 2a. Kurset er fullt: (Er dette en mulig variasjon?) 1. Systemet gir melding og avslutter registreringen 3a. Kurset forutsetter andre kurs: 1. Systemet sjekker om studenten har tatt kursene 1a. Studenten har tatt kursene som forutsettes: 1. Systemet fortsetter registreringen 1b. Studenten har IKKE tatt kursene som forutsettes: 1. Systemet spør om studenten ønsker å søke om dispensasjon 2. INF1050-krav-23 Revidert bruksmønstermodell, alt. 1 Student Betal semesteravgift Meld på kurstilbud Meld av kurstilbud Lag emnebeskrivelse Lag kurstilbud Behandle dispensasjonssøknad Registrer eksamensresultat Et vanlig diskusjonstema i forbindelse med slike modeller: Bør Lag x inkludere både ny x, endre x og slette x? Kursadministrator INF1050-krav-24

Revidert bruksmønstermodell, alt. 2 Betal semesteravgift Lag emnebeskrivelse Lag kurstilbud Student Meld på kurstilbud Eksamensregister (et annet system) Behandle dispensasjonssøknad Kursadministrator Meld av kurstilbud Registrer eksamensresultat Valgt systemgrense bestemmer hvilke bruksmønstre, primære og sekundære aktører modellen inneholder INF1050-krav-25