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

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

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. Kursregistrering bruksmønstermodell (ny versjon) Dagens forelesning. Fra krav til objektdesign

Spesifikasjon av Lag emne

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

Beskjed fra Skagestein

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

NB! Endring i undervisningsplanen

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

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

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

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

Prosjektrettet systemarbeid

The Unified Modeling Language - UML

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

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

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

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

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

Datamodellering med UML

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

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

o UML klassediagrammer

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

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

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

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

Produktrapport Gruppe 9

UML klassediagrammer

Eksamen INF1050: Gjennomgang, uke 15

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

INF1050 Systemutvikling

INF1050 Systemutvikling

DRI2001 h04 - Forelesning Systemutvikling og nettsteder

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

UML-Unified Modeling Language

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

Prosjektoppgave våren 2007

UNIVERSITETET I OSLO

Fra krav til objekter. INF1050: Gjennomgang, uke 05

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

GJENNOMGANG OBLIGATORISK OPPGAVE 1

Ulike typer prosessmodeller. Systemutvikling. Utviklingsmodeller. Prosessmodell - faser

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

Kravhåndtering. INF1050: Gjennomgang, uke 03

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

Forskningsmetoder. INF1050: Gjennomgang, uke 13

Planlegging og dokumentasjon

AlgDat 12. Forelesning 2. Gunnar Misund

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning

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

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

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

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

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

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

Forslag til løsning. Oppgave 1

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

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

UNIVERSITETET I OSLO

Systemutviklingsmetoder

DRI 2001 Systemutviklingsarbeidet og nettsteder Forelesning

Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling

Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling

Use case drevet design med UML

Fra krav til modellering av objekter

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

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

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning

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

Meeting Reservation System

GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG

Eksamen INF

IN2001: Kravhåndtering, modellering, design

STE6221 Sanntidssystemer Løsningsforslag kontinuasjonseksamen

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

GJENNOMGANG UKESOPPGAVER 9 TESTING

INF Obligatorisk innlevering 7

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

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

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

Tom Røise 18. Februar 2009

Entobutikk 3.TESTRAPPORT VÅR 2011

DRI2001 forelesning

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

AP221 Use Case TUL Administrer brukere, grupper og rettigheter

Vedlegg Brukertester INNHOLDFORTEGNELSE

Vakt og lønnssystem - Rema 1000

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

Transkript:

Kravspesifikasjon Kravspesifikasjon Erik Arisholm Simula Research Laboratory & Institutt for Informatikk 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-1 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 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-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 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-5 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 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 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 (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 ursadministrator 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. 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 Opprett ny bruker o Slett bruker o Endre bruker Begge alternativer er OK, og beskriver samme funksjonalitet Fordeler og ulemper ved begge alternativer: o Alt. 1: + 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 o Alt. 2: + 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-23 INF1050-krav-24

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