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

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

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

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

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

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

Beskjed fra Skagestein

NB! Endring i undervisningsplanen

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

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Prosjektrettet systemarbeid

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

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

Spesifikasjon av Lag emne

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

The Unified Modeling Language - UML

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

Datamodellering med UML

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

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

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

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

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

Use Case-modellering. INF1050: Gjennomgang, uke 04

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

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

UKE 11 UML modellering og use case. Gruppetime INF1055

o UML klassediagrammer

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

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

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

UML klassediagrammer

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

INF1050 Systemutvikling

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

INF1050 Systemutvikling

Produktrapport Gruppe 9

Eksamen INF1050: Gjennomgang, uke 15

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

Prosjektoppgave våren 2007

DRI2001 h04 - Forelesning Systemutvikling og nettsteder

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

UML-Unified Modeling Language

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

Kravhåndtering. INF1050: Gjennomgang, uke 03

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

Forskningsmetoder. INF1050: Gjennomgang, uke 13

UNIVERSITETET I OSLO

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

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

Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling

Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning

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

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

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

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

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

GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG

Fra krav til modellering av objekter

DRI 2001 Systemutviklingsarbeidet og nettsteder Forelesning

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning

Ulike typer prosessmodeller. Systemutvikling. Utviklingsmodeller. Prosessmodell - faser

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

Oppsummering. Thomas Lohne Aanes Thomas Amble

Fra krav til objekter. INF1050: Gjennomgang, uke 05

Eksamen INF

Tom Røise 18. Februar 2009

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

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

Tom Røise 9. Februar 2010

GJENNOMGANG UKESOPPGAVER 9 TESTING

INF Obligatorisk innlevering 7

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

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

Systemutviklingsmetoder

DRI2001 forelesning

GJENNOMGANG OBLIGATORISK OPPGAVE 1

UNIVERSITETET I OSLO

Distributed object architecture

IN2001: Kravhåndtering, modellering, design

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

INF Modellering med objekter (Oblig 2) **TimeregistreringSystem** (Designet av Alen Cemer

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

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

Design, protoyping og konstruksjon. INF 1500; introduksjon 9l design, bruk og interaksjon 4 oktober 2010

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

Prosjektgruppen: Gjermund Gartmann Tommy Jansson Margrethe Store. Prosjektledelse: Margrethe Store Kvalitetssikring: Tommy Jansson

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

AlgDat 12. Forelesning 2. Gunnar Misund

Programvareutvikling (store systemer)

1. Designe ER-modeller med MS Visio

Planlegging og dokumentasjon

Kravhåndtering. Erik Arisholm. Simula Research Laboratory & Institutt for informatikk

Akseptansetesten. Siste sjanse for godkjenning Etter Hans Schaefer

Transkript:

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

Kravspesifikasjon Hva skal systemet gjøre? Hvem og hva påvirker krav? Motivasjon: Hvorfor trenger vi UML? o Noen resultater fra et UML-eksperiment Kravspesifikasjon med UML: o Uttrykke krav som bruksmønstre (use cases) INF1050-krav-2

Mal for kravspesifikasjon Overordnet systembeskrivelse (visjon) o Hva er formålet med systemet? Funksjonelle krav (UML bruksmønstre) 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 INF1050-krav-3

Hvordan finne fram til kravene? Intervjuer med kunder og potensielle brukere Observasjon av eksisterende arbeidsprosesser Granskning av eksisterende IT-systemer Granskning av standarder, lover og forskrifter Inkrementell og evolusjonær (iterativ) systemutvikling, inkludert prototyping INF1050-krav-4

Unified Modeling Language - UML Et sett på 8 diagramteknikker, utarbeidet av toneangivende grupperinger innen OO Use- Case view Logical view Component view Concurrency view Deployment view Use Case diagram Class/object diagram Sequence diagram Collaboration diagram State diagram Activity diagram Component diagram Deployment diagram INF1050-krav-5

Hva brukes UML til? Notasjon som støtter opp under modellbasert systemutvikling o objektorientert analyse ( hva systemet skal gjøre ), og o objektorientert design ( hvordan systemet skal gjøre det ) o simulering, prototyping, kodegenerering og testing 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 kanskje 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-6

Motivasjon: Vitenskapelig evaluering i vårt fag 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! o Det finnes SVÆRT lite vitenskapelig basert kunnskap om når, for hvem, hvordan og hvorfor en gitt prosess, metode eller verktøy er nyttig INF1050-krav-7

Nytteverdien av UML som dokumentasjon for andre utviklere resultater fra et kontrollert eksperiment * (m/java endringsoppgaver og Tau UML) Task Correctness 100 90 80 % subjects with correct task 70 60 50 40 30 20 No UML UML 10 0 Task1 Task2 Task3 Task4 * E. Arisholm, L. C. Briand, S. E. Hove and Y. Labiche. The Impact of UML Documentation on Software Maintenance: An Experimental Evaluation, IEEE Transactions on Software Engineering 32(6):365-381, 2006. INF1050-krav-8

Nytteverdi av UML tidsforbruk på koding og testing * 250 Effort to understand, code and test tasks 2+3+4 200 Time (minutes) 150 100 50 0 NoUML UML * E. Arisholm, L. C. Briand, S. E. Hove and Y. Labiche. The Impact of UML Documentation on Software Maintenance: An Experimental Evaluation, IEEE Transactions on Software Engineering 32(6):365-381, 2006. INF1050-krav-9

Nytteverdi av UML ekstra tidsforbruk for å oppdatere UML-modellene med Tau UML * 250 Effort (incl. updating UML doc) for tasks 2+3+4 200 Time (minutes) 150 100 50 0 NoUML UML * E. Arisholm, L. C. Briand, S. E. Hove and Y. Labiche. The Impact of UML Documentation on Software Maintenance: An Experimental Evaluation, IEEE Transactions on Software Engineering 32(6):365-381, 2006. 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 o Aktør: Beskriver en bestemt type bruker av systemet Aktører kan være mennesker eller andre informasjonssystemer UML symbol for en aktør: o Bruksmønster (use case) Kontoinnehaver beskriver en bestemt interaksjon mellom systemet og aktøren UML symbol for et bruksmønster: Ta ut penger fra kontoen INF1050-krav-11

Eksempel: Bank bruksmønsterdiagram Ta ut penger fra minibank Overfør penger Sett inn penger på kontoen Bankfunksjonær Kontoinnehaver Opprett konto Lån penger Lånebehandler 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 INF1050-krav-13

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-14

Aktører (3) 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 INF1050-krav-15

Hva er et bruksmønster? 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 ) o Opprett konto INF1050-krav-16

Eksempel: Bank bruksmønsterdiagram Ta ut penger fra minibank Hvem er primær aktør? Hva med Behandle lånesøknad? Hva med Administrere konto? Er detaljeringsnivået riktig? Overfør penger Sett inn penger på kontoen Bankfunksjonær Kontoinnehaver Opprett konto Lån penger Lånebehandler INF1050-krav-17

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 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 velge et høyere abstraksjonsnivå (med større bruksmønstre på øverste nivå) I videregående kurs 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-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? INF1050-krav-19

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-20

Eksempel: Første utkast til bruksmønstermodell for kursregistrering Meld på kurs Lag kursbeskrivelse Student K ursa dministra tor Betal semesteravgift Behandle dispensasjonssøknad INF1050-krav-21

Spesifikasjon av Meld på kurs Aktør: Student 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-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

En vanlig problemstilling Systemadministrator el.l. er ofte en aktør som utfører administrative oppgaver i systemet, for eksempel å opprette, slette eller endre brukere. Alternativ 1: Systemadministrator har ett bruksmønsteret o Administrer bruker Alternativ 2: Systemadministrator har tre bruksmønstre o o o Opprett ny bruker Slett bruker Endre bruker Begge alternativer er OK, og beskriver samme funksjonalitet Fordeler og ulemper ved begge alternativer: o Alt. 1: o Alt. 2: + Felles funksjonalitet mellom opprett, slett og endre kan beskrives på ett sted - Ofte litt vanskelig å avgjøre hva som er normal hendelsesflyt og hva som er variasjoner + Ofte blir normal hendelsesflyt enklere å identifisere samt færre variasjoner - Bruksmønsterdiagrammet kan bli stort og uoversiktlig - Felles funksjonalitet beskrives flere steder (men NB! Det finnes løsninger på dette som forklares i videregående kurs) INF1050-krav-24

Revidert bruksmønstermodell, alt. 1 Betal semesteravgift Lag emnebeskrivelse Student Meld på kurstilbud Meld av kurstilbud Lag kurstilbud Behandle dispensasjonssøknad Kursadministrator??? Registrer eksamensresultat Bør Lag x inkludere både ny x, endre x og slette x, eller bør man dele opp???? INF1050-krav-25

Mulig høynivå spesifikasjon av Lag emnebeskrivelse Aktør: Kursadministrator Trigger: Kursadministrator ønsker å opprette, endre eller slette en emnebeskrivelse Normal Hendelsesflyt: 1. Kursadministrator velger emnekode 2. Systemet sjekker om emnekoden eksisterer 3. Kursadministratoren oppdaterer beskrivelsen av kurset (her kan det være mange underpunkter, for eksempel registrering av hvilke andre kurs som forutsettes) 4. Systemet registrerer den nye informasjonen Variasjoner: 2a. Emnekoden eksisterer ikke: (dvs, Opprett ny emnekode er en variasjon) 1. Systemet spør om ny emnekode skal opprettes og oppretter i så fall ny emnekode INF1050-krav-26

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. I denne modellen er Eksamensregister en sekundær aktør i modellen til Kursregistreringssystem. Dessuten er Kursregistreringssystem er en primær aktør i den tilsvarende modellen for systemet Eksamensregister INF1050-krav-27