Kravspesifisering (4): Use Cases. Hvorfor passer use cases til krav? Tema / læremål. Gjettekonkurranse: Hva er det mest fundamentale.

Like dokumenter
Kravspesifisering (5): Use Cases, forts. 1.1 identifiser/oppsummer hver u.c. Tema / læremål. 1. Del opp i detaljerte use cases

Kravspek: Mål-orientering

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

UKE 11 UML modellering og use case. Gruppetime INF1055

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

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

Kravspesifikasjon med UML use case modellering. Erik Arisholm

Bolk om Kravspesifisering

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

Use Case-modellering. INF1050: Gjennomgang, uke 04

Prosjektrettet systemarbeid

Oversikt over forelesningen. DFD sentrale konsepter. Intro til Dataflytdiagrammer (DFD) Marakas, kap. 5

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

GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG

Spesifikasjon av Lag emne

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

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

Kravspesifikasjon med. Erik Arisholm

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

Use case drevet design med UML

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

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

Gruppenavn. Prosjektnavn Kravdokument For Navn på systemet. Versjon <1.0>

Veileder for kravspesifisering. for digitale læringsplattformer og digitale læringsressurser

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

Kravspesifisering (2): Validering av kravspek er

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

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum

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

Løsningsforslag til Case. (Analysen)

Billige skjermvideoer Visjoner og erfaringer

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

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

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

Presentasjon 1, Requirement engineering process

UML 1. Use case drevet analyse og design Kirsten Ribu

SLUTTRAPPORT. gruppe 42 Nils-Kristian Liborg, Bente Brevig, Tom Olav Bruaas, Eirik Lied og Hege Lid Pedersen. 25. november 2002

Fra krav til objektdesign

INF329: Utvalgte emner i programutviklingsteori Sikkerhetsanalyse av programvare

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

DIAGNOSERAPPORT. for. Dato: Utført av: Tommy Svendsen

INF1500 Introduksjon til design, bruk, interaksjon Kapittel 10 Identifisere behov og etablere krav

UNIVERSITETET I OSLO

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

EKSAMEN I FAG SIF 8035 INFORMASJONSSYSTEMER Tirsdag 7. mai 2002 Tid: kl

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

AP221 Use Case TUL Bygg verktøykasse

Øving 3: Begrensninger

AP221 Use Case SBL Registrer abonnement

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

DIAGNOSERAPPORT. for. Dato: Utført av: Jon P Hellesvik

Kravanalyse og objekt-orientert analyse

Oppsummering fra sist

UKE 9 Prosesser og prosessmodeller inkludert smidige metoder. Gruppetime INF1055

Læringsplan for 9. trinn Nordre Modum ungdomsskole

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

Med løkke: Læringsmål og pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker/Sløyfer Utgave 3: Kap. 4 Utgave 2: Kap. 5. Mål.

Iden%fisere behov og etablere krav. INF 1500; introduksjon %l design, bruk og interaksjon 13 september 2010

INF5120 Oblig 2 - Timeregistreringssystem Gruppe 25 Annette Kristin Levine Nils-Kristian Liborg Unni Nyhamar Hinkel

DRI2001 forelesning

AP221 Use Case TUL Utarbeid designdokumenter

AP221 Use Case SBL Send inn innsendingstjeneste

Objektorientering og UML. INF1050: Gjennomgang, uke 06

Prosjektarbeid og oppgaveskriving

Stoff som i boka står i kap 4, men som er

AP221 Use Case SBL Preutfyll og instansier innsendingstjeneste

Laget mitt: Hvordan skrive for innhold. Skriv for effekt!

Endringsledelse i Drammen Taxi BA Glenn A. Hole

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Kirsten Ribu - Høgskolen i Oslo

Eksamen 2013 Løsningsforslag

UNIVERSITETET I OSLO

Løsningsforslag for eksamen i fag TDT4120 Algoritmer og datastrukturer Tirsdag 9. desember 2003, kl

Læringsmål og pensum. Intro løkker. Mål Lære om begrepet løkker Lære om bruk av while-løkke Lære om bruk av for-løkke Pensum. Kapittel 4.

Kundesamtale teste hypoteser

EN INNFØRING I BPM

ARBEIDSPLAN 9 DE UKE Leksesjekk første fagtime uka etter!

Iden%fisere behov og etablere krav. INF 1500; introduksjon %l design, bruk og interaksjon 8 september 2014

UML-Unified Modeling Language

Person. status Kunde nummer. Selger. Ordre. Rabatt

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Gruppe 43. Hoved-Prosjekt Forprosjekt

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

Visma EasyCruit. Et kort innblikk i den siste produktutviklingen. August Norsk

TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker. - 3rd edition: Kapittel 4. Professor Alf Inge Wang

Planlegging og dokumentasjon

FMEA. Hvorfor bruke FMEA?

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

Systemutvikling (Software Engineering) TDT 4110 IT Grunnkurs Professor Guttorm Sindre

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Rapportskriving. En rettledning.

Test og kvalitet To gode naboer. Børge Brynlund

Sekventkalkyle for utsagnslogikk

AlgDat 12. Forelesning 2. Gunnar Misund

UKE 3 Krav og behov. Plenum IN1050 Julie og Maria

The Unified Modeling Language - UML

Problem Analyse (Under utvikling)

TDT4110 Informasjonsteknologi, grunnkurs

ORG110 1 Organisasjonsteori for IT-studenter

Last ned Utbrytere - Malcolm Gladwell. Last ned. Last ned e-bok ny norsk Utbrytere Gratis boken Pdf, ibook, Kindle, Txt, Doc, Mobi

Transkript:

Tema / læremål Use cases Hva er en use case? Hvorfor passer use cases til kravspesifisering? Mens OO- eller prosessmodellering ikke gjør det...? Use case diagrammer (kort repetisjon) Tekstlige use cases Lære å skrive gode use cases Pensumstoff: P12 Kravspesifisering (4): Use Cases Guttorm Sindre, IDI Utdrag fra boka Use Cases: Requirements in Context, Kulak og Guiney, Addison-Wesley, 2000. Enda bedre bok Cockburn: Writing Effective Use Cases, A-W, 2001 Hvorfor passer use cases til krav? mens OO- eller prosessmodeller ikke passer... Gjettekonkurranse: Hva er det mest fundamentale poenget? Use cases mindre formelle (enklere diagrammer, naturlig språk), lettere å forstå for kunden Use cases fokuserer direkte på aktørene (dvs brukerne), dermed mer kravrelevante Use cases dekomponerer systemets grense mot omverdenen, mens prosessmodeller (a la DFD) eller OO klassediagrammer (i f.eks UML) dekomponerer systemets indre 1 Hva er en use case? Jacobsons def.: En interaksjonssekvens mellom en aktør og systemet Aktøren gjør noe Systemet responderer Aktøren gjør noe mer Systemet responderer, osv. Utretter noe av verdi aktør : rolle i organisasjonen, evt en enkelt bruker Use case diagrammer (UML) Beskriver ikke interaksjonen Ovalene er derfor ikke use cases Kun oversikt over hvilke use cases man har

2 Når bruke use cases? Passer godt til funksjonelle krav Best ved: diskrete tjenester, klart begrensede episoder Svært mange systemer i dag er slik Ikke så bra (men ofte mulig) til: Overordnede krav Batch-systemer, kontinuerlig funksjonalitet Passer dårligere / ikke til Ikke-funksjonelle krav Problemanalyse Design Eksempel: interaksjonssekvens for Risk Erobre territorium Basis-sti: 1. Spilleren forteller hvor han angriper fra og mot. Som default antas at man angriper med maksimalt tillatte antall bataljoner per runde. 2. Systemet presenterer terningene 3. Spilleren fortsetter angrepet ved å trille terningene. 4. Systemet forsvarer seg med 1 eller 2 terninger utifra hva som er optimalt og fjerner bataljoner fra brettet utifra resultatet. (Repeter) Steg 3 og 4 gjentas inntil det ikke er forsvarende bataljoner igjen i det angrepne området. 5. Spilleren flytter bataljoner inn i det erobrede territoriet, minst det antall han angrep med i siste runde. Alternative stier: I steg 1: Spilleren velger å bruke mindre enn max antall bataljoner... I steg 2: Angrepet er umulig, fordi... I steg 3: Spilleren velger å avbryte angrepet... I steg 4: Angriper går tom for bataljoner... Hvorfor bruke use cases? Det tradisjonelle alternativet er kravlister på formen Systemet skal..., jfr P11 Store systemer har mange krav, uoversiktlig Use cases gir en gruppering av krav Hver bolk en nyttig arbeidsoppgave Ett use case = mange skal -krav hvis interaksjonen kan være kompleks (jfr. eks. neste side) Systemet skal... : fokus på systemet Use cases: lettere å holde fokus på brukerens behov, hva som er nyttig å foreta seg med systemet Use case diagrammer Rask repetisjon av symbolikken Hvilke tabber er gjort i diagrammet under? Salgskonsulent Legg inn salgsordre Finn kunde Editer kunde extend Lag ny ordre Lag ny kunde Beregn profitt Legg til ordrelinje extend Kreditt overskredet

3 Teksten avslører feilen! Finn kunde: Brukeren velger en kunde ved å skrive inn referansenummer. Systemet viser komplett info om kunden (navn, adresse, tlf.nr, kjøpshistorie) Legg inn salgsordre: Brukeren velger en kunde fra en liste over tilgjengelige kunder. Inkluder Finn kunde. Systemet viser salgsordreskjermbildet, og brukeren registrerer ordren linje for linje. Systemet viser hele tiden det akkumulerte totalbeløpet for ordren. Når brukeren bekrefter å være ferdig, registreres ordren. Dvs, Legg inn salgsordre: Brukeren velger en kunde fra en liste over tilgjengelige kunder. Brukeren velger en kunde ved å skrive inn referansenummer. Systemet viser komplett info om kunden (navn, adresse, tlf.nr, kjøpshistorie). Systemet viser salgsordreskjermbildet, og brukeren registrerer ordren linje for linje. Systemet viser hele tiden det akkumulerte totalbeløpet for ordren. Når brukeren bekrefter å være ferdig, registreres ordren. Regelkatalogen (4.2.8, tab 4.1) Feil i diagrammet Feil bruk av (tidl. uses ) Sekvenser som ikke er felles for flere UC Sekvenser som er systeminterne Både og brukt direkte (eks Finn kunde, se neste side) Bruk av extend Feil retning på pil Inkonsekvent navngiving Anbefaling A: alltid verb substantiv Anbefaling B: verb substantiv for vanlige use cases, men for extend use cases: betingelsen for utførelse Tekstlige use cases Arbeidsmåte (P12, 4.2) Steg 1-5 innledende undersøkelser 6. Finn aktørene 7. Lag fasade use cases Sammen med identifiseringen av use cases vil man også identifisere relevante forretningsregler 8. Innled regelkatalogen Steg 9-11: analyse av risk, osv. Forretningsregler kan Finne aktørene Start med de som skal bruke systemet direkte Rollene kan være uklare på dette tidspunkt For hver aktør, se så etter use cases Begrense måten use cases kan utføres på Ønsker ikke å skrive reglene i selve use case Samme regel kan være relevant for flere use cases Stibeskrivelsen blir tung og vanskelig å forstå hvis forretningsregler skal forklares der Dvs., beskrive i separat del av dokumentet Men med kryssreferanser / hyperlenker fra / til relevante use cases

4 Prinsipper for navngiving (4.3.2-4.3.4) Use cases Verb - substantiv Unngå svake begreper (vagt meningsinnhold) jfr tab 4.4, 4.5 Bruk kandidat-liste (tab 4.2) Aktører En person flere roller Aktører kan også være andre systemer Bruk generiske rollenavn (jfr tab 4.3) Mer fleksibelt mhp evt reorganisering Men ikke for generiske (jfr tab 4.3) Roller i prosjektet (tab 4.6) Kravkonsulent: Dokumenterer use cases, evt diagrammer, og forretningsregler Interessent (f.eks bruker) Deltar i intervjuer, gjennomganger av relevante u.c. Kunderepresentant Gjennomganger på høyt plan, status Teknisk arkitekt Deltar i review Prosjektleder Arbeidsplan, problembeskrivelse m.m. Fasade use cases Viser grunnleggende interaksjoner Gir oversikt over hvilke oppgaver som skal støttes Kun en skisse (jfr eks. s. 81, 82) 2-3 setninger, ikke stegnummererte stier Ikke bruk eller extend Relativt få og abstrakte use cases som kan detaljeres videre etter hvert Unngå implementasjonsdetaljer! System context use case (jfr. s. 73) Hele systemet som en use case Unødvendig hvis man har brukt andre modeller i tillegg Denne kan neppe detaljeres videre i en handlingssti (med mindre systemet er veldig enkelt) Gjennomgang (review) 4.3.9-10 ~ gjennomgang av kravspek (P11) Og review av modeller som gjort i øvingsopplegget Team leser use cases, ser etter feil / mangler Ca 5 use cases per time Kravkonsulenter: som har skrevet use cases Designarkitekt: kan anslå arbeidsbyrde, risk mv Domeneekspert: kan avsløre mangler Bruker-gjennomgang Gå igjennom use cases med aktuelle brukere Tidlige og hyppige reviews vil spare inn på tidsbruken senere

5 Forklaring av bokas template (jfr s 81) Navn (Name) Iterasjon (Iteration) Hvor langt man har kommet i detaljeringen / finpussingen Sammendrag (Summary) 2-3 setninger som beskriver interaksjonen Basis handlingssti (Basic course of events) Steg for steg, bruker gjør noe, systemet svarer, osv. Den normale, mest vanlige handlingsstien Antar at use casen lykkes Ser bort ifra alle omveier, komplikasjoner, uforutsette unntak o.l. Template, forts. Trigger Betingelser i eller utenfor systemet som utløser u.c. Antagelser (Assumptions) Betingelser som må være sanne for at u.c. kan utføres på normalt vis Men som systemet ikke har kontroll over Prebetingelser (Preconditions) Betingelser som må være sanne for at u.c. kan utføres Og som systemet har kontroll over Postbetingelser (Postconditions) Blir sanne når u.c. fullføres Bør dekke både basis- og alternative stier, men ikke nødvendigvis unntaksstier Templates for use cases Fordel å ha et fast template Dvs. definerte felter som skal med Gjør materialet mer oversiktlig Mindre sannsynlig at noe viktig glemmes Behøver ikke være det i boka Dette er ett av mange mulige forslag Mange felt i tillegg til basis handlingssti Oppnår at selve stibeskrivelsen blir enklere Alternative stier og unntak for seg selv heller enn som if-setninger Antagelser, pre- og postbetingelser, forretningsregler m.m i egne felt, trenger dermed ikke forklares i selve stien Template, forts. Alternative stier (... Paths) Mindre vanlige stier enn basis-stien, men som fortsatt er å betrakte som normale Dvs., u.c. fullføres fortsatt med suksess Unntaksstier (Exception paths) Stier som velges når feil oppstår Her kan u.c. mislykkes Utvidelsespunkter (Extension points) Steg nummer hvor extend use cases tar av fra basisstien

6 Template, forts. Relateterte forretningsregler Forretningsregler som omhandler u.c. Og f.eks kan begrense hva som er lovlig utførelse av denne Forfatter Den som har skrevet u.c. Dato Intro til øving 4 Hva skal gjøres? Grupper à 4 stud., ta utgangspunkt i kjent case Lage deler av kravspek Når skrevet Hvordan? Evt med endringslogg som viser ulike stadier Intro, kontekstbeskrivelse 8+ use cases, 20+ ikke-funksjonelle krav Velge beste prosess- og info-modell Evt forbedre modellene litt hvis de ikke stemmer Fordel skriving av presise krav og use cases Gjør internt review + forbedring Relevant pensum P11 (overordnet struktur, trad. kravlister) P12 (use cases) Format: redusert variant av IEEE std 830 1. 1. Introduksjon 1. 1.1. Formål med dokumentet 2. 1.2. Produktets omfang og formål 2. 2. Overordnet beskrivelse (med modeller) 1. 2.1. Produktperspektiv: kontekst, aktuell maskinvare 2. 2.2. Produktfunksjoner: kort oversikt over funksjonalitet 3. 2.3. Brukerkarakteristikker: hva slags brukere 3. 3. Spesifikke krav 1. 3.1. Funksjonelle krav (use cases) 2. 3.2. Ikke-funksjonelle krav (kravlister)