Use Case-modellering. INF1050: Gjennomgang, uke 04

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

UKE 11 UML modellering og use case. Gruppetime INF1055

Fra krav til objekter. INF1050: Gjennomgang, uke 05

Objektorientering og UML. INF1050: Gjennomgang, uke 06

Kravhåndtering. INF1050: Gjennomgang, uke 03

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

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

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

Kontrakter. INF1050: Gjennomgang, uke 12

Eksamen INF1050: Gjennomgang, uke 15

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

Forskningsmetoder. INF1050: Gjennomgang, uke 13

Konfigurasjonsstyring. INF1050: Gjennomgang, uke 11

Kravspesifikasjon med UML use case modellering. Erik Arisholm

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

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

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

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

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

Spesifikasjon av Lag emne

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Kravspesifikasjon med. Erik Arisholm

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

IN2000:&Kravhåndtering,&modellering,&design

UML-Unified Modeling Language

GJENNOMGANG OBLIGATORISK OPPGAVE 1

UNIVERSITETET I OSLO

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

GJENNOMGANG UKESOPPGAVER 6 MER OM OBJEKTORIENTERING OG UML

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

Løsningsforslag til Case. (Analysen)

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

UKE 16 Kontrakter. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski

IN2001: Kravhåndtering, modellering, design

Prosessmodeller og smidig programvareutvikling. INF1050: Gjennomgang, uke 02

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

Use case drevet design med UML

Prosjektledelse, planlegging og teamarbeid. INF1050: Gjennomgang, uke 10

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

Mer$om$objektorientering$og$UML

Oppgave 1: Multiple choice (20 %)

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

Prøveeksamen INF1050: Gjennomgang, uke 15

Obligatorisk oppgave 5: Modellering av krav

Forfattere: Daníelsdóttir, Drífa Meland, Maiken Mijalkovic, Biljana Svendsen, Simen H. Gruppelærer: Zarei, Amir Hossein. 5.

INF 5120 Modellering med objekter

Systemarkitektur. INF1050: Gjennomgang, uke 07

UML 1. Use case drevet analyse og design Kirsten Ribu

UNIVERSITETET I OSLO

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

Fra krav til objektdesign

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

Eksamen 2013 Løsningsforslag

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

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

Obligatorisk oppgave 3. INF1050: Gjennomgang, uke 16

Mer om objektorientering og UML

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

Fra krav til modellering av objekter

Utvikling fra skallet og inn

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

Testing av programvare. INF1050: Gjennomgang, uke 08

Forside Eksamen INF1055 V17

Estimering. INF1050: Gjennomgang, uke 09

Meeting Reservation System

INNFØRING I PRINSIPPER FOR OBJEKTORIENTERT PROGRAMMERING EMILIE HALLGREN OG KRISTIN BRÆNDEN

Produktrapport Gruppe 9

Prosjektrettet systemarbeid

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

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

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

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

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

Krav analyse og objektorientert

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

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

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

INF Oblig 2. Hour Registration System (HRS)

Mer om objektorientering og UML

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

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

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

Beskjed fra Skagestein

GJENNOMGANG UKESOPPGAVER 13 KONTRAKTER

o UML klassediagrammer

Tom Røise IMT2243 : Systemutvikling 1. IMT2243 Systemutvikling 26. februar Klassediagrammet. Klasse

Use case drevet design med UML. I dag

Entobutikk 3.TESTRAPPORT VÅR 2011

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

Kap3: Klassemodellering

GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG

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

Eksamen INF

Obligatorisk oppgave 1 INF1050 Foranalyse og kravhåndtering. av Andreas Johansen Alexander Storheill Martin Dørum Nygaard Tobias Langø Aasmoe

SRD GLIS. Cecilie Dortea Gløsmyr, Espen Buø og Henrik Lie

AP221 Use Case TUL Administrer brukere, grupper og rettigheter

Planlegging og dokumentasjon

SRD GLIS. Cecilie Dortea Gløsmyr, Espen Buø og Henrik Lie

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

Del - leveranse Del 2. Inf 2120 fredag Gruppe 1 Knut Johannes Dahle

Transkript:

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

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?

Oppgave 1: Løsningsforslag Hva er et use case, og hvorfor er det nyttig å lage use cases? 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? 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?

Oppgave 2: Løsningsforslag Hva skiller aktører fra interessenter? Definisjon på aktør 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 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 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?

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? 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? Primæraktører Har et mål av verdi i systemet Sette inn penger 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?

Oppgave 4: Løsningsforslag Hva er en domenemodell, og hvorfor er det nyttig å lage en domenemodell for et gitt system? 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? 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?

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

Oppgave 5(a): Løsningsforslag Finn aktører for systemet Aktører: Hvem skal bruke systemet? 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) 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

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å? Identifiser de viktigste oppgavene - Skape / Lagre / Endre / Lese / Slette UML-representasjon av use case Figur: Oval Merkelapp: Navn på use case Verbfrase Bestill bord Registrer drop-inn Bytt bord Registrer ankomst Finn bestilling Vis bestillinger Endre bordbestilling Avbestill bord

Oppgave 5(c) Lag et use case-diagram for systemet

Oppgave 5(c): Løsningsforslag Lag et use case-diagram for systemet Use case-diagram 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

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.

Oppgave 5(c): Løsningsforslag Lag et use case-diagram for systemet

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).

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). 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). 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). 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). Oppdater diagrammet Bruker eksisterende use case

Oppgave 5(e) Lag en enkel domenemodell for systemet

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 Mange-til-én Én-til-mange Mange-til-mange

Oppgave 5(e): Løsningsforslag Lag en enkel domenemodell for systemet

Oppgave 6(a) Hva er en tekstlig beskrivelse av et use case?

Oppgave 6(a): Løsningsforslag Hva er en tekstlig beskrivelse av et use case? Detaljert beskrivelse av interaksjon mellom bruker og system 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.

Oppgave 6(b): Løsningsforslag Lag en tekstlig beskrivelse av ett av use casene fra 5b. Husk pre-, postbetingelser og alternativ flyt. 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. 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. 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 BRUKER AVKREFTER RESERVASJON 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. 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

Takk til Foilene er basert på 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 Neste uke : UML-modellering: Fra krav til objekter