GJENNOMGANG UKESOPPGAVER 4 USE CASE MODELLERING INF1050 V16 HELGA NYRUD & KRISTIN BRÆNDEN
TEMAER SÅ LANGT I KURSET Forelesning 1: Systemutvikling og systemutviklingsprosesser Forelesning 2: Prosessmodeller og smidig utvikling Forelesning 3: Kravhåndtering
UKENE FREMOVER: MODELLERING Det finnes to hovedtyper modeller: - Modeller som beskriver struktur - Klassediagram - Modeller som beskriver adferd/oppførsel - Use case diagram - Aktivitetsdiagram - Tilstandsdiagram - Sekvensdiagram
DAGENS TEMA: USE CASE MODELLERING Use case = brukstilfelle/bruksmønster Et use case diagram viser: - Systemets funksjonalitet - Samspillet mellom systemet og omgivelsene (brukere, andre systemer, komponenter) Modellering av funksjonelle krav
FUNKSJONELLE KRAV Funksjonelle krav definerer hva systemet skal gjøre Hvilke tjenester (funksjoner) systemet skal tilby Hvordan det skal reagere på ulike typer input Kan også si hva systemet ikke skal gjøre
1 HVA ER ET USE CASE, OG HVORFOR ER DET NYTTIG Å LAGE USE CASES?
LØSNINGSFORSLAG OPPGAVE 1 Hva er et use case? Et use case er en beskrivelse av hvordan systemet oppnår et mål av verdi for en aktør Hvorfor er det nyttig å modellere use cases? Kommuniserer klart: - hva de forskjellige målene til systemet er - hvem som bruker systemet til hva - hvilke andre aktører systemet går via
3 HVA ER EN AKTØR I ET USE CASE DIAGRAM, OG HVA ER FORSKJELLEN PÅ EN PRIMÆR OG SEKUNDÆRAKTØR?
LØSNINGSFORSLAG OPPGAVE 3 Aktør: Begrepet aktør er en samlebetegnelse som benyttes for å angi alle grupper av personer som anvender systemet, eller systemer som blir anvendt av systemet. Vi skiller mellom to typer aktører: Primære aktører - Har mål av verdi i systemet Sekundære aktører - Hjelper primære aktører med å oppnå sine mål
LØSNINGSFORSLAG OPPGAVE 3 Eksempel: Skatteetatens system: for å se personopplysninger er man avhengig av folkeregisteret som informasjonen hentes fra
2 HVA SKILLER AKTØRER FRA INTERESSENTER?
LØSNINGSFORSLAG OPPGAVE 2 Interessent: Begrepet interessent benyttes for å angi en mengde personer, grupper eller organer som har interesse av systemet, dvs. blir påvirket av eller påvirker systemets utvikling eller bruk, enten direkte eller indirekte. De påvirker eller blir påvirket av kravspesifikasjonen til systemet. Eksempler: kunden, sluttbruker, myndigheter og utviklere
LØSNINGSFORSLAG OPPGAVE 2 Hva skiller aktører fra interessenter? En aktør må være: bruker av systemet eller et annet system som brukes av/bruker systemet En interessent kan også være en bruker av systemet, men inkluderer alle som påvirker eller blir påvirket av kravspesifikasjonen.
4 HVA ER EN DOMENEMODELL, OG HVORFOR ER DET NYTTIG Å LAGE EN DOMENEMODELL FOR ET GITT SYSTEM?
LØSNINGSFORSLAG OPPGAVE 4 En domenemodell er en representasjon av de ulike objektene et system består av. Et klassediagram uten metoder. Viser relasjoner mellom objektene. Det er nyttig å benytte domenemodeller for å: Kartlegge hvilke objekter som man bør ta hensyn til Kommunisere at man har forstått domenet
Eksempel på domenemodell
5 Systemet skal støtte bordreservasjoner og bordplassering i en restaurant. Kunder kontakter restauranten for å bestille eller avbestille bord. En resepsjonist mottar samtalene. Bestillinger legges inn for et bestemt bord sammen med antall personer. For hver bestilling registreres en kontaktperson med navn og telefonnummer. Når gjester ankommer, blir de plassert ved sitt bord av hovmesteren, og deres bestilling markeres med ankommet. Hvis gjestene plasseres ved et annet bord enn det som var registrert med bestillingen, så registreres bordbyttet i bestillingen. Tidspunktet da et gitt bord må være ledig igjen kan også registreres. Kunder kan endre bestilling eller avbestille bord på forhånd. Det er selvfølgelig mulig å spise uten å ha bestilt på forhånd hvis det er ledige bord. Når gjester får bord uten å ha bestilt dette, markeres det i systemet med tidspunkt, bord og antall, men uten navn og telefonnummer. Når nye bestillinger registreres i systemet, eller eksisterende bestillinger endres, skal skjermbildet umiddelbart oppdateres, slik at de ansatte på restauranten alltid har oppdatert informasjon tilgjengelig.
5 A) FINN AKTØRER FOR SYSTEMET
LØSNINGSFORSLAG OPPGAVE 5A Må stille følgende spørsmål: Hvem skal bruke systemet? Ble det nevnt noen andre systemer som restaurantens system må kommunisere med?
LØSNINGSFORSLAG OPPGAVE 5A I teksten nevnes: Resepsjonist Hovmester Disse kan igjen generaliseres til: Ansatt
5 B) FINN USE CASES FOR SYSTEMET
LØSNINGSFORSLAG OPPGAVE 5B Må stille spørsmålet: Hva ønsker aktørene å bruke systemet til?
LØSNINGSFORSLAG OPPGAVE 5B Use cases nevnt i teksten: - Reserver bord - Avbestill bord - Endre bestilling - Registrer bordbytte - Registrer ankomst - Registrer drop-in - Vis bestillinger
5 C) LAG ET USE CASE DIAGRAM FOR SYSTEMET
LØSNINGS- FORSLAG OPPGAVE 5C
5 D) ANTA AT EN KUNDE KAN BESTILLE BORD PÅ NETT I TILEGG TIL OVER TELEFON. GJØR EVENTUELLE MODIFIKASJONER I 5A, B OG C
LØSNINGSFORSLAG OPPGAVE 5D Endringer i oppgave a: - Får vi noen flere brukere av systemet? - Ja: Kunde
LØSNINGSFORSLAG OPPGAVE 5D Endringer i oppgave b: - Får vi noen flere use cases? - Ja: Bestille bord på nett
LØSNINGS- FORSLAG OPPGAVE 5D
5 E) LAG EN ENKEL DOMENEMODELL FOR SYSTEMET
LØSNINGSFORSLAG OPPGAVE 5E
6 A) HVA ER EN TEKSTLIG BESKRIVELSE AV ET USE CASE?
LØSNINGSFORSLAG OPPGAVE 6A En tekstlig beskrivelse av et use case tar for seg interaksjonen som foregår mellom systemet og bruker. Denne beskrives steg for steg. En tekstlig beskrivelse inneholder følgende: Navn på use caset Aktør(er) Prebetingelse(r) Postbetingelse(r) Hovedflyt Eventuell alternativ flyt
6 B) LAG EN TEKSTLIG BESKRIVELSE AV ETT AV USE CASENE DU FANT I OPPGAVE 5B
LØSNINGSFORSLAG OPPGAVE 6B Navn: Bestill bord. Aktør(er): Resepsjonist. Prebetingelse(r): Ingen. Postbetingelse(r): Bord er reservert på kunde. Hovedflyt: 1. Kundebehandler ber systemet om å finne et ledig bord til en gitt tid og dato. 2. Systemet finner ledig bord. 3. Kundebehandler registrerer kundens navn, adresse og telefonnummer. 4. Systemet lagrer kundens navn, adresse og telefonnummer. 5. Systemet ber om bekreftelse på reservasjon av bord. 6. Kundebehandler bekrefter reservasjon av bord. 7. Systemet registrerer reservering av bord på kunde. Alternativ flyt 2.1: Systemet finner ingen ledige bord. 2.2: Returnerer til hovedflyt, steg 1.
USE CASE DIAGRAM VS USE CASE TEKSTLIG BESKRIVELSE Diagram: Hva du vil bruke systemet til og hvilke andre systemer eller personer du er avhengig av for å få det til - alle use casene i systemet Tekstlig beskrivelse: Detaljert beskrivelse av ett use case
TAKK FOR OSS! Spørsmål? Informasjonen er hovedsaklig basert på forelesningsfoilene, samt fjorårets presentasjon laget av Kristin Brænden og Emilie Hallgren