UKE 11 UML modellering og use case. Gruppetime INF1055

Like dokumenter
Use Case-modellering. INF1050: Gjennomgang, uke 04

Fra krav til objekter. INF1050: Gjennomgang, uke 05

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

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

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

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

Mer$om$objektorientering$og$UML

GJENNOMGANG UKESOPPGAVER 6 MER OM OBJEKTORIENTERING OG UML

UML-Unified Modeling Language

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

Objektorientering og UML. INF1050: Gjennomgang, uke 06

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

Kravspesifikasjon med UML use case modellering. Erik Arisholm

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

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

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

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

Fra krav til modellering av objekter

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

UNIVERSITETET I OSLO

Spesifikasjon av Lag emne

IN2001: Kravhåndtering, modellering, design

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Mer om objektorientering og UML

UML 1. Use case drevet analyse og design Kirsten Ribu

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

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

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

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

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

Fra krav til objektdesign

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

Obligatorisk oppgave 5: Modellering av krav

Use case drevet design med UML

Eksamen INF1050: Gjennomgang, uke 15

Mer om objektorientering og UML

UNIVERSITETET I OSLO

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

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

Oppgave 1: Multiple choice (20 %)

Utvikling fra skallet og inn

GJENNOMGANG OBLIGATORISK OPPGAVE 1

Løsningsforslag til Case. (Analysen)

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

INF 5120 Modellering med objekter

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

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

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

INF Oblig 2. Hour Registration System (HRS)

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

Forside Eksamen INF1055 V17

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

Etter uke 9 skal du. Introduksjon til objektorientert programmering. Innhold. Klasser som abstraksjoner

Prøveeksamen INF1050: Gjennomgang, uke 15

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

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

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

God objektorientert design Flere UML diagrammer UML Distilled kap. 7,8, 9 Using UML, kap. 11, 12, 14 Kirsten Ribu

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

Kravhåndtering. INF1050: Gjennomgang, uke 03

Gjennomgang av prøveeksamen. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski

Prosjektrettet systemarbeid

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

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

Meeting Reservation System

Eksamen INF

Eksamen 2013 Løsningsforslag

Kravspesifiseringsprosessen

Use case modellering. Use case modellen. Metode for systembeskrivelse og Nettsted-design

UKE 9 Prosesser og prosessmodeller inkludert smidige metoder. Gruppetime INF1055

GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG

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

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

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

Use case drevet design med UML. I dag

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

Hva gjøres i design? 19. september 2002, Tore Berg Hansen, TISIP

1. Hvilke type krav angår sikkerhet og pålitelighet?

1. Hvilke type krav angår sikkerhet og pålitelighet?

INF1000: Forelesning 7

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

INF Obligatorisk innlevering 7

1. Designe ER-modeller med MS Visio

Produktrapport Gruppe 9

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

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

Beskjed fra Skagestein

UML klassediagrammer

Planlegging og dokumentasjon

Innhold uke 7. Objektorientert programmering i Python: Introduksjon. Lite tilbakeblikk: Programflyt og skop. Lite tilbakeblikk: Funksjoner er uttrykk

Obligatorisk oppgave 3. INF1050: Gjennomgang, uke 16

21. Objektorientert Analyse (OOA) Kap. 21 Objektorientert Analyse (OOA)

INF1000: Forelesning 7. Konstruktører Static

o UML klassediagrammer

Transkript:

UKE 11 UML modellering og use case Gruppetime INF1055

Hva skal vi i dag? Analyse og design - kapittel 5 og 7 UML modellering Ukesoppgaver 3: Modellering av krav

UML

UML Kompetansemål Modellering av krav - Kunne modellere ulike typer krav UML-diagrammer - Innføring i grunnleggende UML-modellering - Bruksmønster (use case) - Domenemodell (klassediagram uten metoder) - Sekvensdiagram - Aktivitetsdiagram - Tilstandsdiagram

UML Hvorfor modellerer vi? - I systemutvikling er modellering prosessen hvor man utvikler abstrakte modeller av et system - Det er viktig å forstå at én systemmodell ikke er en komplett representasjon av systemet, men at den viser kun ett perspektiv - derfor trenger man flere typer modeller som synliggjør ulike aspekter ved systemet; ulike modeller representerer ulike måter å se systemet på - UML (Unified Modeling Language) er en standard for objektorientert modellering

UML Ulike perspektiv å modellere ut i fra - Eksternt perspektiv: modellere systemets kontekst og miljø - Interaksjonsperspektiv: modellere interaksjonen mellom systemets og dets miljø, eller mellom komponenter (eller aktører) i systemet - Strukturelt perspektiv: modellere systemets organisering eller strukturen på dataen som blir prosessert av systemet - Atferdsperspektiv: modellere systemets dynamiske atferd og hvordan det responderer på ulike hendelser (feks. at en bruker trykker på en knapp)

UML Hvordan brukes abstrakte modeller i systemutvikling? 1. Som utgangspunkt for fokusert diskusjon om et eksisterende eller foreslått system. - Omfang: modellen må ikke være komplett, men bør dekke hovedpoengene i diskusjonen. - Notasjon brukes uformelt. - Abstrakte modeller brukes ofte slik i smidige systemutviklingsprosesser. 2. Som dokumentasjon av et eksisterende system. - Omfang trenger ikke være komplett da man kan velge å dokumentere enkelte deler av systemet. - Notasjon må være korrekt 3. Som en detaljert systembeskrivelse som kan anvendes som utgangspunkt for implementasjon av systemet. - Omfang modellene må være komplette - Notasjon må være korrekte

UKESOPPGAVER

FORMÅL Formålet med disse oppgavene er - å få trening i å beskrive funksjonelle krav ved å modellere use cases - få en bedre forståelse av begrepene - aktør, - use case, - use case diagram, - tekstlig beskrivelse av et use case, - domenemodell og - sekvensdiagram

SPØRSMÅL 1 Spørsmål: Hva er et use case, og hvorfor er det nyttig å lage use cases?

SPØRSMÅL 1 Spørsmål: Hva er et use case, og hvorfor er det nyttig å lage use cases? Svar: Fra et interaksjonsperspektiv: en 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

SPØRSMÅL 1 Spørsmål: Hva er et use case, og hvorfor er det nyttig å lage use cases? Svar del 2: Use case 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

SPØRSMÅL 2 Spørsmål: Hva skiller aktører fra interessenter?

SPØRSMÅL 2 Spørsmål: Hva skiller aktører fra interessenter? Svar: En aktør er en samlebetegnelse for å angi alle grupper av personer som anvender systemet, eller øvrige systemer som blir anvendt av systemet En interessent er en betegnelse for alle personer, grupper eller organer, som påvirkes av eller påvirker systemets utvikling/bruk. Både direkte og indirekte.

SPØRSMÅL 2 Spørsmål: Hva skiller aktører fra interessenter? Svar del 2: Skillet mellom aktør og interessent omhandler: - Rolle/tilknytning til bruken og utviklingen av systemet - Aktører må være enten - 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

SPØRSMÅL 3 Spørsmål: Hva er en aktør i et use case diagram, og hva er forskjellen på en primær- og sekundæraktør?

SPØRSMÅL 3 Spørsmål: Hva er en aktør i et use case diagram, og hva er forskjellen på en primær- og sekundæraktør? Svar: I et use case diagram er aktøren strekfigurene. Disse må ha et rollenavn.

SPØRSMÅL 3 Spørsmål: Hva er en aktør i et use case diagram, og hva er forskjellen på en primær- og sekundæraktør? Svar: Primæraktører 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

SPØRSMÅL 4 Spørsmål: Hva er en domenemodell, og hvorfor er det nyttig å lage en domenemodell for et gitt system?

SPØRSMÅL 4 Spørsmål: Hva er en domenemodell, og hvorfor er det nyttig å lage en domenemodell for et gitt system? Svar: En domenemodell er en representasjon av de ulike objektene (i domenet) et system består av. Modelleres på samme måte som et klassediagram, men uten metoder. Det er nyttig for å: - kartlegge hvilke objekt som man bør ta hensyn til; - kommunisere at man har forstått domenet; - se på relasjoner mellom objektene.

SPØRSMÅL 5a Spørsmål: Anta beskrivelsen av et system som skal håndtere bord og bordbestillinger på en restaurant. Finn aktører for systemet.

SPØRSMÅL 5a Spørsmål: Anta beskrivelsen av et system som skal håndtere bord og bordbestillinger på en restaurant. Finn aktører for systemet. Svar: - Resepsjonist: motta samtaler og håndtere bestillinger - Hovmester: plassere gjester - Videre kan man generalisere disse to til Ansatt : se oversikt over bestillinger/plasseringer

SPØRSMÅL 5b Spørsmål: Anta beskrivelsen av et system som skal håndtere bord og bordbestillinger på en restaurant. Finn use cases for systemet.

SPØRSMÅL 5b Spørsmål: Anta beskrivelsen av et system som skal håndtere bord og bordbestillinger på en restaurant. Finn use cases for systemet. Svar: Hva skal aktørene kunne gjøre? Hvilke resultater vil aktøren oppnå? Identifiser de viktigste oppgavene (se etter verb) - Skape / Lagre / Endre / Lese / Slette Notasjon: Figur: Oval Merkelapp: Navn på use case verbfrase

SPØRSMÅL 5c Spørsmål: Anta beskrivelsen av et system som skal håndtere bord og bordbestillinger på en restaurant. Lag et use case diagram for systemet.

SPØRSMÅL 5c Spørsmål: Anta beskrivelsen av et system som skal håndtere bord og bordbestillinger på en restaurant. 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.

SPØRSMÅL 5d Spørsmål: Anta at en kunde kan bestille bord på nett i tillegg til over telefon. Gjør eventuelle modifikasjoner i løsningene i oppgave a, b og c.

SPØRSMÅL 5d Spørsmål: Anta at en kunde kan bestille bord på nett i tillegg til over telefon. Gjør eventuelle modifikasjoner i løsningene i oppgave a, b og c. Svar: 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

SPØRSMÅL 5e Spørsmål: Lag en enkel domenemodell for systemet.

SPØRSMÅL 5e Spørsmål: Lag en enkel domenemodell for systemet. Svar: 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

SPØRSMÅL 6a Spørsmål: Hva er en tekstlig beskrivelse av et use case?

SPØRSMÅL 6a Spørsmål: Hva er en tekstlig beskrivelse av et use case? Svar: En tekstlig beskrivelse av en use case tar for seg interaksjonen mellom systemet og bruker. Nummerert liste som beskrive interaksjonen steg for steg. En tekstlig beskrivelse skal inneholder følgende: - Navn på use case Hvilken funksjonalitet dreier det seg om? - Aktør hvem/hva er det som interagerer med systemet? - 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?

SPØRSMÅL 6b Spørsmål: Lag en tekstlig beskrivelse av ett use casene du fant i oppgave 3b. Ha med eventuelle pre- og postbetingelser, og få med minst én alternativ flyt.

SPØRSMÅL 6b Navn: Bestill bord Aktører: Resepsjonist Prebetingelse: ingen Postbetingelser (mål): Bord er reservert på kunde Hovedflyt 1. Kundebehandler ber systemet om å finne et ledig bord på en gitt tid og dato 2. Systemet finner ledige bord 3. Kundebehandler registrerer kundens navn, adresse og telefonnummer 4. Systemet lagrer kundens navn, adresse, og telefonnummer 5. Systemet ber om bekreftelse på reservasjon om 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.

SPØRSMÅL 6b Svar del 2: Modellering av alternativ flyt Identifiser avvik i hovedflyten - Hva skjer i slike tilfeller? Hvordan responderer systemet? 1. Bruker ber systemet om å finne et ledig bord 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

SPØRSMÅL 6b Svar del 3: 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 7 Spørsmål: Hva er et sekvensdiagram?

SPØRSMÅL 7 Spørsmål: Hva er et sekvensdiagram? Svar: Et sekvensdiagram er et interaksjonsdiagram - Modellen viser en interaksjonssekvens mellom objektene som finner sted under et bestemt use case - Sekvensdiagrammer viser: - Hvilke objekter som inngår i et bruksmønster - Interaksjonen mellom objektene/deres rekkefølge - Data/informasjon som sendes mellom objektene

SPØRSMÅL 7 Spørsmål: Hva er et sekvensdiagram?

SPØRSMÅL 8 Spørsmål: Hvorfor er det nyttig å benytte sekvensdiagram?

SPØRSMÅL 8 Spørsmål: Hvorfor er det nyttig å benytte sekvensdiagram? Svar: Viktig å kunne vise hva som skjer/burde skje ved kjøretid - Altså: Viser den dynamiske oppførselen til et program Oversikt over nødvendige klasser og objekter for å gjennomføre et bruksmønster Kan gjøre det enklere å implementere et system - Svært kodenært diagram - Mulig å generere kode automatisk fra et sekvensdiagram Viser hvordan objektene kommuniserer - Oversikt over data som sendes mellom objektene, og rekkefølgen

SPØRSMÅL 9 Spørsmål: Et bilutleiefirma ønsker et informasjonssystem som kundebehandlerne kan benytte for utleie av biler. Lag et sekvensdiagram for hovedflyten og én av de alternative flytene i den tekstlige beskrivelsen.

SPØRSMÅL 9 Svar: 1. Identifiser de aktuelle objektene/aktørene - Hvilket system er det snakk om? Reservasjonssystem for utleie av biler - Har vi eventuelle undersystemer? Bilregister/Kunderegister (avhengig av hvordan systemet er implementert) - Har vi eventuelle objekter? Kunde (objekter for de ulike kundene)/kontrakt (objekt for utleiekontrakt) - Hvem skal interagere med systemet? Kundebehandler

SPØRSMÅL 9 Svar: 2. Oppsett (rekkefølgen gis av flyten) - Aktøren (Kundebehandler) plasseres til venstre i sekvensdiagrammet - Aktøren interagerer med Reservasjonssystemet - 1. Kundebehandler velger tidsintervall (hentedato og returdato) - Reservasjonssystemet interagerer - Først med Bilregisteret - 2. Returnerer liste over tilgjengelige biler - Deretter med Kunderegisteret - 4. Finner kunden i systemet

SPØRSMÅL 9 Svar: 2. Oppsett (rekkefølgen gis av flyten) - Kundeobjekt må være på plass før avtalen tegnes - Kontrakten opprettes til slutt - 5. Systemet bekrefter at bilen er reservert for den gitte perioden - Foreløpig oppsett Har nå et skjelett for hvordan sekvensdiagrammet skal se ut - Kan starte å modellere den tekstlige beskrivelsen

SPØRSMÅL 9 Svar: 3. Modeller hendelsesforløpet ved å følge den tekstlige beskrivelsen - Rekkefølgen fra hoved- og alternativ flyt bestemmer rekkefølgen i diagrammet - Hvert steg i den tekstlige beskrivelsen er tilnærmet lik en pil i diagrammet - Data som sendes mellom objektene reflekteres i diagrammet Metodekall (med parametere) Heltrukket pil Returverdier Stiplet pil Create (for å opprette objekter) Stiplet pil

SPØRSMÅL 9 1. Kundebehandler velger tidsintervall (hentedato og returdato) 2. Systemet returnerer en liste over tilgjengelige biler (oppsøker Bilregister)

SPØRSMÅL 9 3. Kundebehandler velger én av bilene 4. Systemet ber om kundenummer og finner kunden i systemet (Kunderegister)

SPØRSMÅL 9 Mulig utfall 1: kunde finnes - Vi oppretter en ALT-blokk for å håndtere alternativ flyt - Hvis kunden finnes Returner kunde

SPØRSMÅL 9 Mulig utfall 2: Kunden finnes ikke i systemet - Alternativ flyt 2.1: Systemet opplyser om at kunden ikke er registrert - Alternativ flyt 2.2: Systemet oppretter ny kunde

SPØRSMÅL 9 5. Systemet bekrefter at bilen er reservert for den gitte perioden - Oppretter en kontrakt med Kunde, Bil, hentedato og returdato - Ber om bekreftelse fra kunden og viser denne

MODELLERING AV SEKVENSDIAGRAMMER - Desto mer detaljert den tekstlige beskrivelsen er, desto enklere blir det å modellere det tilhørende sekvensdiagrammet - Tekstlig beskrivelse viser interaksjon mellom bruker og system! - Gir oss informasjon om hvem (bruker) og hva (objekter/metodekall/data) - Følg rekkefølgen som gis fra beskrivelsen - TIPS! Ta utgangspunkt i bruksmønsteret - Lag en tekstlig beskrivelse (for bruksmønsteret) om denne ikke er gitt - Beskriv hendelsesforløpet i detalj Vis interaksjonen - Fra beskrivelsen Kartlegg aktører og objekter - Følg oppsett gitt av rekkefølgen i beskrivelsen - Modeller flyten (piler frem og tilbake) med dette som utgangspunkt

Neste uke Fortsettelse på kapittel 5 og 7 Aktivitetsdiagrammer Tilstandsdiagrammer Klassediagrammer