Use Case-modellering INF1050: Gjennomgang, uke 04 Kompetansemål Modellering av krav Kunne modellere ulike typer krav UML-diagrammer Innføring i grunnleggende UML-modellering Bruksmønster (use case) Sekvensdiagram Domenemodell Aktivitetsdiagram project title Gjennomgang av ukesoppgaver Ukens tema: Modellering av krav og UML-diagrammer Oppgave 1 Hva er et use case, og hvorfor er det nyttig å lage use cases? project title Oppgave 1: Løsningsforslag Hva er et use case, og hvorfor er det nyttig å lage use cases? project title Use case Beskrivelse av hvordan systemet oppnår et mål av verdi for en aktør Beskriver en komplett funksjonell enhet Redegjør for ulike hendelsesforløp Normal flyt (hovedflyt) og alternativ flyt Kan ses på som en slags historie Use case er testbare Oppgave 1: Løsningsforslag Hva er et use case, og hvorfor er det nyttig å lage use cases? project title Nytteverdi: Kommuniserer tydelig… - Hva de forskjellige målene til systemet er - Hvem som bruker systemet, og til hva systemet skal brukes - Hvilke andre aktører systemet interagerer med Bestill bord Registrer lånesøknad Endre passord Oppgave 2 Hva skiller aktører fra interessenter? project title Oppgave 2: Løsningsforslag Hva skiller aktører fra interessenter? Definisjon på aktør project title Samlebetegnelse for å angi alle grupper av personer som anvender systemet, eller øvrige systemer som blir anvendt av systemet Skiller mellom to typer aktører Primæraktører Har et mål av verdi i systemet Sekundæraktører Hjelper primæraktører med å oppnå mål Vanligvis; et annet system man henter / sender informasjon til Oppgave 2: Løsningsforslag Hva skiller aktører fra interessenter? Definisjon på interessent project title Samlebetegnelse for alle personer, grupper eller organer, som påvirkes av eller | påvirker systemets utvikling / bruk Direkte / indirekte Fire hovedkategorier Kunde → De(n) som betaler for at systemet utvikles Leverandør → De(n) som leverer produktet Bruker → De som bruker systemet Andre / øvrige → Andre enheter med interesse i systemet (utvikling / bruk) Oppgave 2: Løsningsforslag Hva skiller aktører fra interessenter? Skillet mellom aktør og interessent project title Omhandler: Rolle / tilknytning til bruken og utviklingen av systemet Aktører må være… Brukere av systemet Andre systemer som brukes av / bruker systemet Interessenter kan… Være brukere av systemet Inkluderer alle som påvirker / påvirkes av systemets kravspesifikasjon og utvikling Oppgave 3 Hva er en aktør i et use case-diagram og hva er forskjellen på en primær og en sekundær aktør? project title Oppgave 3: Løsningsforslag Hva er en aktør i et use case-diagram og hva er forskjellen på en primær og en sekundær aktør? project title UML-representasjon av aktører Figur: Strekmann Merkelapp: Navn på aktørens rolle Kunde Bank Kontosystem Oppgave 3: Løsningsforslag Hva er en aktør i et use case-diagram og hva er forskjellen på en primær og en sekundær aktør? project title Primæraktører Sette inn penger Har et mål av verdi i systemet UML: Kunde setter inn penger Sekundæraktører Realiserer målene til primæraktørene UML: Bank sørger for at pengene blir satt inn Kunde Bank Oppgave 4 Hva er en domenemodell, og hvorfor er det nyttig å lage en domenemodell for et gitt system? project title Oppgave 4: Løsningsforslag Hva er en domenemodell, og hvorfor er det nyttig å lage en domenemodell for et gitt system? project title UML-klassediagrammer uten metoder Konseptuell modell / abstraksjon Viser objekter knyttet til problemdomenet / problemområdet Representasjon av de ulike objektene et system består av Hensikt: Forstå objektene Oversikt over terminologi Oppgave 4: Løsningsforslag Hva er en domenemodell, og hvorfor er det nyttig å lage en domenemodell for et gitt system? project title Domenemodellens nytteverdi Viser informasjon om objekter i use casene Verktøy for å sjekke at use casene er beskrevet på rett detaljnivå Kartlegger hvilke objekter man bør ta hensyn til Kommuniserer at man har forstått domenet / problemområdet Klassene kan brukes til utforming av pre- og postbetingelser for use caset Oppgave 4: Løsningsforslag Hva er en domenemodell, og hvorfor er det nyttig å lage en domenemodell for et gitt system? project title Oppgave 5: Bordbestilling Systemet skal støtte bordreservasjoner og plassering i en restaurant. Kunder kontakter restauranten for å bestille / avbestille bord. En resepsjonist mottar samtalene. Bestillinger legges inn for et bestemt bord sammen med antall personer. For hver bestilling registreres kontaktperson project title med navn og telefonnummer. Når gjester ankommer, blir de plassert ved sitt bord av hovmesteren, og bestillingen markeres med ‘‘ankommet’’. Hvis gjestene plasseres ved et annet bord, registreres dette bordbyttet. Tidspunktet et gitt bort må være ledig igjen kan også registreres. Kunder kan endre bestilling / avbestille på forhånd. Det er mulig å få bord uten å ha bestilt på forhånd, gitt at ledige bord finnes. Når gjester får bord uten å ha bestilt dette, markeres tidspunkt, bord og antall i systemet, men ikke navn og telefonnummer. Når nye bestillinger registreres i systemet, eller eksisterende bestillinger endres, skal skjermbildet umiddelbart oppdateres, slik at ansatte på restauranten alltid har oppdatert informasjon tilgjengelig. Oppgave 5(a) Finn aktører for systemet project title Oppgave 5(a): Løsningsforslag Finn aktører for systemet Aktører: Hvem skal bruke systemet? project title Resepsjonist - Motta samtaler og håndtere bestillinger Hovmester - Plassere gjester Begge - Se oversikt over bestillinger/plasseringer Felles funksjonalitet? → Rollene kan generaliseres til ‘‘Ansatt’’ Oppgave 5(a): Løsningsforslag Finn aktører for systemet Generalisering (i programmering) project title En klasse arver en annen klasses adferd (slik som subklasser) Alle attributter / metoder i foreldreklassen arves av subklassen Generalisering i UML Har objektene (klassene) felles […]? Attributter / Egenskaper Hovmester Ansatt Resepsjonist Skal objektene i tillegg ha særegne egenskaper / attributter? Alle resepsjonister er ansatte, men ikke alle ansatte er resepsjonister Oppgave 5(b) Finn use cases for systemet project title Oppgave 5(b): Løsningsforslag Finn use cases for systemet Use case: Hvilke mål har systemet? Hva skal aktørene kunne gjøre? - Funksjonalitet Hvilke resultater vil aktøren oppnå? Bestill bord Registrer drop-inn Vis bestillinger Bytt bord Endre bordbestilling Registrer ankomst Avbestill bord Identifiser de viktigste oppgavene - Skape / Lagre / Endre / Lese / Slette UML-representasjon av use case Figur: Oval Merkelapp: Navn på use case Verbfrase Finn project title bestilling Oppgave 5(c) Lag et use case-diagram for systemet project title Oppgave 5(c): Løsningsforslag Lag et use case-diagram for systemet Use case-diagram project title Visualiser forhold mellom aktører og use case Hvem skal gjøre hva? Bestill bord Finn bestilling Bytt bord Registrer drop-inn Vis bestillinger Registrer ankomst Avbestill bord Endre bordbestilling Oppgave 5(c): Løsningsforslag Lag et use case-diagram for systemet project title Oppgave 5(c): Løsningsforslag Lag et use case-diagram for systemet <<include>>-relasjonen Indikerer at et (sub) use case inneholder nødvendig funksjonalitet for gjennomførelsen av et annet basiscase. <<extend>>-relasjonen Utvider oppførselen / funksjonalitet til et basiscase, som utføres under spesielle omstendigheter. project title Oppgave 5(c): Løsningsforslag Lag et use case-diagram for systemet project title Oppgave 5(d) Anta at kunden kan bestille bord på nett i tillegg til over telefon. Gjør eventuelle endringer i (a), (b) og (c). project title Oppgave 5(d): Løsningsforslag Anta at kunden kan bestille bord på nett i tillegg til over telefon. Gjør eventuelle endringer i (a), (b) og (c). project title Ny aktør Kunde → Bestiller bord på nett Nytt use case? Skal man opprette et nytt use case ‘‘Bestill bord på nett?’’ Skal man beholde ‘‘Bestill bord’’? Oppdater use case-diagrammet Oppgave 5(d): Løsningsforslag Anta at kunden kan bestille bord på nett i tillegg til over telefon. Gjør eventuelle endringer i (a), (b) og (c). project title Vi definerer en ny aktør Oppgave 5(d): Løsningsforslag Anta at kunden kan bestille bord på nett i tillegg til over telefon. Gjør eventuelle endringer i (a), (b) og (c). project title Oppdater diagrammet Nytt use case Oppgave 5(d): Løsningsforslag Anta at kunden kan bestille bord på nett i tillegg til over telefon. Gjør eventuelle endringer i (a), (b) og (c). project title Oppdater diagrammet Bruker eksisterende use case Oppgave 5(e) Lag en enkel domenemodell for systemet project title Oppgave 5(e): Løsningsforslag Lag en enkel domenemodell for systemet Domenemodell: Klassediagram uten metoder Hvilke klasser er aktuelle å modellere? Abstraher objekter fra den naturlige verden For hver klasse: Hvilke attributter (variabler) er naturlig å inkludere? Hvilket forhold er det mellom klassene? Én-til-én Én-til-mange Mange-til-én Mange-til-mange project title Oppgave 5(e): Løsningsforslag Lag en enkel domenemodell for systemet project title Oppgave 6(a) Hva er en tekstlig beskrivelse av et use case? project title Oppgave 6(a): Løsningsforslag Hva er en tekstlig beskrivelse av et use case? Detaljert beskrivelse av interaksjon mellom bruker og system project title Nummerert liste: Interaksjon beskriver steg for steg Tekstlige beskrivelser skal inneholde: Navn på use case → Hvilken funksjonalitet dreier det seg om? Prebetingelse(r) → Hva skal til for å starte use caset? Postbetingelse(r) → Hva skal til for å avslutte use caset? Hovedflyt → Hvilke steg inngår i gjennomførelsen av use caset? Alternativ flyt → Hvilke steg inntreffer ved avvik i hovedflyten? Oppgave 6(b) Lag en tekstlig beskrivelse av ett av use casene fra 5b. Husk pre-, postbetingelser og alternativ flyt. project title Oppgave 6(b): Løsningsforslag Lag en tekstlig beskrivelse av ett av use casene fra 5b. Husk pre-, postbetingelser og alternativ flyt. project title Betingelser Hvordan starte og avslutte et use case? Prebetingelse Betingelse som må være på plass før et use case kan utføres Postbetingelse En endring i systemet som skal være på plass etter at et use case er utført Oppgave 6(b): Løsningsforslag Lag en tekstlig beskrivelse av ett av use casene fra 5b. Husk pre-, postbetingelser og alternativ flyt. project title Navn: Bestill bord Aktører: Bruker [resepsjonist] Prebetingelse(r): Ingen Postbetingelse(r): Bord reservert på kunde Hovedflyt: 1. Bruker ber systemet om å finne et ledig bor til en gitt tid og dato 2. Systemet returnerer ledig bord 3. Bruker registrerer kundens navn og telefonnummer 4. Systemet lagrer kundens navn 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 Oppgave 6(b): Løsningsforslag Lag en tekstlig beskrivelse av ett av use casene fra 5b. Husk pre-, postbetingelser og alternativ flyt. project title Modellering av alternativ flyt – Identifiser avvik i hovedflyten Hva skjer i slike tilfeller? / Hvordan responderer systemet? 1. Bruker ber systemet om å finne et ledig bor til en gitt tid og dato 2. Systemet returnerer ledig bord INGEN LEDIGE BORD 3. Bruker registrerer kundens navn og telefonnummer 4. Systemet lagrer kundens navn og telefonnummer UGYLDIG NAVN / TELEFONNUMMER 5. Systemet ber om bekreftelse på reservasjon av bord 6. Bruker bekrefter reservasjon av bord 7. Systemet registrerer reservering av bord på kunde BRUKER AVKREFTER RESERVASJON Oppgave 6(b): Løsningsforslag Lag en tekstlig beskrivelse av ett av use casene fra 5b. Husk pre-, postbetingelser og alternativ flyt. project title Alternativ flyt I, steg 2: Ingen ledige bord A1.1 Systemet finner ingen ledige bord A1.2 Returner til steg 1 i hovedflyten Alternativ flyt II, steg 4: Ugyldig navn / telefonnummer A2.1 Systemet registrerer at oppgitt informasjon er ugyldig A2.2 Returner til steg 3 i hovedflyten Spørsmål? Ta kontakt Yulai Fjeld ydfjeld @ uio.no Husk å inkludere emnekoden! Andre gruppelærere Delta på gruppetimene project title Takk til Foilene er basert på project title Tidligere presentasjoner laget av Emilie Hallgren og Kristin Brænden Eksisterende forelesningsnotater av Dag Sjøberg og Yngve Lindsjørn Sommerville, I. (2010). Software Engineering (9th Edition). Pearson. Takk for meg project title Neste uke : UML-modellering: Fra krav til objekter
© Copyright 2024