Fra krav til objekter. INF1050: Gjennomgang, uke 05

Like dokumenter
UKE 11 UML modellering og use case. Gruppetime INF1055

Use Case-modellering. INF1050: Gjennomgang, uke 04

Objektorientering og UML. INF1050: Gjennomgang, uke 06

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

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

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

Kravhåndtering. INF1050: Gjennomgang, uke 03

Forskningsmetoder. INF1050: Gjennomgang, uke 13

Eksamen INF1050: Gjennomgang, uke 15

Kontrakter. INF1050: Gjennomgang, uke 12

Fra krav til modellering av objekter

Konfigurasjonsstyring. INF1050: Gjennomgang, uke 11

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

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

Mer$om$objektorientering$og$UML

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

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

GJENNOMGANG UKESOPPGAVER 6 MER OM OBJEKTORIENTERING OG UML

IN2001: Kravhåndtering, modellering, design

Spesifikasjon av Lag emne

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Mer om objektorientering og UML

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

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

Oppgave 1: Multiple choice (20 %)

INF1010 UML. Marit Nybakken 26. januar 2004

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

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

UML-Unified Modeling Language

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

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

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

Fra krav til objektdesign

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

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

UNIVERSITETET I OSLO

UML 1. Use case drevet analyse og design Kirsten Ribu

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

Kap3: Klassemodellering

Mer om objektorientering og UML

Obligatorisk oppgave 5: Modellering av krav

GJENNOMGANG OBLIGATORISK OPPGAVE 1

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

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

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

Prøveeksamen INF1050: Gjennomgang, uke 15

Prosessmodeller og smidig programvareutvikling. INF1050: Gjennomgang, uke 02

Løsningsforslag til Case. (Analysen)

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

Obligatorisk oppgave 3. INF1050: Gjennomgang, uke 16

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

INF1000: Forelesning 7. Konstruktører Static

o UML klassediagrammer

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

Systemarkitektur. INF1050: Gjennomgang, uke 07

Estimering. INF1050: Gjennomgang, uke 09

Use case drevet design med UML

UML klassediagrammer

Testing av programvare. INF1050: Gjennomgang, uke 08

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

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

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

Kravspesifikasjon med UML use case modellering. Erik Arisholm

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

INF1000: Forelesning 7

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

Beskjed fra Skagestein

INF 1050 BRUK AV MODELLERINGSVERKTØYET RATIONAL ROSE

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

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

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

INF Obligatorisk innlevering 7

NB! Endring i undervisningsplanen

INF2120 V2005. Gruppe 2 christrc ieronnin kjetimk noushinm sjuros. Trafikanten+ Innlevering

Lykke til! Eksamen i fag TDT4140 Systemutvikling NTNU Norges teknisk-naturvitenskapelige universitet

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

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

Eksamen 2013 Løsningsforslag

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

GJENNOMGANG UKESOPPGAVER 9 TESTING

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

UNIVERSITETET I OSLO

Eksamen INF

Kravspesifikasjon med. Erik Arisholm

GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG

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

Etter uke 6 skal du. Introduksjon til objektorientert programmering. Hva skjedde ~1967? INF1001. Grunnkurs i objektorientert programmering

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

LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012.

INF1050 Systemutvikling

Prosjektoppgave våren 2007

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

INF Oblig 2. Hour Registration System (HRS)

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

INF1050 Systemutvikling

INF1000: noen avsluttende ord

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

1 Kodegenerering fra Tau Suiten

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

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

Transkript:

Fra krav til objekter INF1050: Gjennomgang, uke 05

Kompetansemål Systemmodellering og systemperspektiv Utvikle abstrakte modeller av et system Ulike modeller representerer ulike perspektiver av systemet Eksternt perspektiv / Interaksjonsperspektiv / Strukturelt perspektiv / Adferdsperspektiv UML-diagrammer Innføring i grunnleggende UML-modellering Klassediagram Sekvensdiagram

Gjennomgang av ukesoppgaver Ukens tema: Fra krav til objekter

Oppgave 1 Modeller et klassediagram. Start med klassen Person, som har følgende innhold: Attributter navn Metoder getnavn() setnavn() adresse getaddresse() setadresse() telefon gettelefon() settelefon() epost getepost() setepost()

Oppgave 1: Løsningsforslag Modeller et klassediagram. UML-representasjon av klasser Form: Rektangel Utforming: Deles i tre Øverste: Klassens navn Midtre: Klassens attributter med type Nederste: Klassens metoder med returverdi

Oppgave 1: Løsningsforslag Modeller et klassediagram. Symboler for synlighet For resten av programmet Settes foran variabelnavn / metodenavn + public - private # protected ~ package

Oppgave 1: Løsningsforslag Modeller et klassediagram. Eksempel: Enkel klasse Hva forteller denne klassen oss? En klasse for studentobjekter Hva er navnet på klassen? Klassen heter Student Hvilke variabler inneholder klassen? Navn, adresse, ID, osv. Hvilke metoder inneholder klassen? Setters og getters

Oppgave 1: Løsningsforslag Modeller et klassediagram. Løsningsforslag: Person

Oppgave 2 Utvid klassediagrammet med klassen Kurs, som har følgende innhold: Attributter kursnavn Metoder setkursnavn() getkursnavn() kurskode registrerdeltaker() getdeltakere()

Oppgave 2: Løsningsforslag Utvid klassediagrammet med klassen Kurs : Løsningsforslag: Kurs

Oppgave 2: Løsningsforslag Utvid klassediagrammet med klassen Kurs : Oversikt over klassene Person og Kurs

Oppgave 3 Utvid klassediagrammet ved å benytte generalisering. Legg til klassen Student som en utvidelse av Person Foreslå særegne attributter og metoder for klassen. Representer i modellen at Student skal kunne ta ett eller flere Kurs.

Oppgave 3: Løsningsforslag Utvid klassediagrammet ved å benytte generalisering: Generalisering i UML Teknikk for å håndtere kompleksitet Vi identifiserer objekter som har flere felleskarakteristikker Lager en generalisert superklasse Eksempel: Både Student og Foreleser er Person Attributter og operasjoner fra superklassen kan assosieres med subklassene Dette foregår gjennom arv Subklassene kan ha særegne karakteristikker

Oppgave 3: Løsningsforslag Utvid klassediagrammet ved å benytte generalisering: Generalisering i UML Generalisering vises med en pil (uten fyll) fra subklassen til superklassen Eksempel: Ulike kontotyper som alle er av type Bankkonto Sparekonto / Brukskonto / Kredittkonto Særegne egenskaper

Oppgave 3: Løsningsforslag Utvid klassediagrammet ved å benytte generalisering: Forslag til klasse Student Særegne attributter Studentnummer (id) Liste over kurs studenten tar Metoder Setters og Getters Kan se for oss flere metoder

Oppgave 3: Løsningsforslag Utvid klassediagrammet ved å benytte generalisering: Utvider klassediagrammet ved generalisering Uttrykk forhold mellom klassene Student og kurs Kurs

Oppgave 3: Løsningsforslag Utvid klassediagrammet ved å benytte generalisering: Forhold mellom klasser Uttrykker hvilke relasjoner som gjelder mellom klassene

Oppgave 4 Utvid klassediagrammet ved å legge til klassen Foreleser. Foreslå særegne attributter og metoder for klassen. Representer i modellen at Foreleser skal kunne holde et Kurs.

Oppgave 4: Løsningsforslag Utvid klassediagrammet ved å legge til klassen Foreleser : Løsningsforslag: Foreleser Særegne attributter Ansattnummer (id) Liste over kurs Metoder Setters og getters

Oppgave 4: Løsningsforslag Utvid klassediagrammet ved å legge til klassen Foreleser :

Oppgave 4: Løsningsforslag Utvid klassediagrammet ved å legge til klassen Foreleser : Foreleser er også en Person

Oppgave 4: Løsningsforslag Utvid klassediagrammet ved å legge til klassen Foreleser : Foreleser kan holde ett eller flere kurs Hvert kurs må ha minst én foreleser

Oppgave 5 Hva er et sekvensdiagram?

Oppgave 5: Løsningsforslag Hva er et sekvensdiagram? Sekvensdiagram Interaksjonsdiagram Modell for interaksjon mellom objektene i et system Tar for seg et gitt bruksmønster (use case) Sekvensdiagrammer viser: Hvilke objekter som inngår i et bruksmønster Interaksjonen mellom objektene / Rekkefølge Data / informasjon som sendes mellom objektene

Oppgave 5: Løsningsforslag Hva er et sekvensdiagram? Eksempel I: Enkelt sekvensdiagram Hva forteller dette sekvensdiagrammet oss?

Oppgave 5: Løsningsforslag Hva er et sekvensdiagram? Eksempel II: Enkelt sekvensdiagram Hva forteller dette sekvensdiagrammet oss?

Oppgave 6 Hvorfor er det nyttig å benytte sekvensdiagrammer?

Oppgave 6: Løsningsforslag Hvorfor er det nyttig å benytte sekvensdiagrammer? Strukturelle modeller Viser hvordan systemer er organisert Klassediagrammer Statisk bilde av klassene i et program Viser oversikt over de ulike komponentene Adferdsmodeller Viser hvordan systemet oppfører seg under kjøring Hva skjer når systemet behandler stimuli fra omgivelsene? Data Må prosesseres av systemet Hendelser Inntreffer og fremkaller en systemrespons

Oppgave 6: Løsningsforslag Hvorfor er det nyttig å benytte sekvensdiagrammer? Sekvensdiagrammer: Nytteverdi 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

Oppgave 7 Hvordan kan vi modellere hovedflyt og alternativ flyt i et sekvensdiagram?

Oppgave 7: Løsningsforslag Hvordan kan vi modellere hovedflyt og alternativ flyt i et sekvensdiagram? Modellering av flyt i UML Modellering av disjunkte hendelser Enten utfall A, eller utfall B Ikke begge Eksempel A. Brukeren finnes i systemet B. Brukeren finnes ikke i systemet Representeres med en ALT-blokk

Oppgave 7: Løsningsforslag Hvordan kan vi modellere hovedflyt og alternativ flyt i et sekvensdiagram? Eksempel I: Modellering av flyt i UML

Oppgave 7: Løsningsforslag Hvordan kan vi modellere hovedflyt og alternativ flyt i et sekvensdiagram? Eksempel II: Modellering av flyt i UML

Oppgave 8 Må et sekvensdiagram inneholde de samme objektene som et klassediagram?

Oppgave 8: Løsningsforslag Må et sekvensdiagram inneholde de samme objektene som et klassediagram? Ikke nødvendigvis Klassediagram Modellerer et helt system Inkluderer alle objekter og klasser som inngår i systemet Sekvensdiagram Modellerer et bruksmønster Inkluderer kun de nødvendige klassene

Oppgave 8: Løsningsforslag Må et sekvensdiagram inneholde de samme objektene som et klassediagram? Forhold mellom diagrammene Alt som inkluderes i et klassediagram, må ikke være med i et sekvensdiagram Ikke alt er like aktuelt Alt som inkluderes i et sekvensdiagram, må eksistere i klassediagrammet Alt man benytter seg av MÅ finnes

Oppgave 9 Et bilutleiefirma ønsker et informasjonssystem som kundebehandlerne kan benytte for utleie av biler. La oss se på den tekstlige beskrivelsen av bruksmønsteret for Reserver bil :

Oppgave 9: Tekstlig beskrivelse Navn: Reserver bil Aktør: Kundebehandler Prebetingelser: Ingen Postbetingelser: Leiekontrakt for spesifisert bil og kunde med gitte utleiedatoer er opprettet Hovedflyt 1. Kundebehandler velger tidsintervall (hentedato og returdato) 2. Systemet returnerer en liste over tilgjengelige biler innenfor spesifisert tidsintervall 3. Kundebehandler velger én av bilene 4. Systemet ber om kundenummer og finner kunden i systemet 5. Systemet bekrefter at bilen er reservert for den gitte perioden Alternativ flyt I, steg 2: Ingen tilgjengelige biler i valgt tidsintervall A1.1: Systemet opplyser om at det ikke er tilgjengelige biler i gitt intervall A1.2: Returner til steg 1 i hovedflyten (oppgi nytt tidsintervall) eller avslutt bruksmønsteret Alternativ flyt II, steg 4: Kunden er ikke registrert A2.1: Systemet opplyser om at kunden ikke er registret A2.2: Systemet oppretter ny kunde A2.3: Returner til steg 3 i hovedflyten

Oppgave 9: Sekvensdiagram Lag et sekvensdiagram for hovedflyten og én av de alternative flytene i den tekstlige beskrivelsen

Oppgave 9: Løsningsforslag Lag et sekvensdiagram for hovedflyten og én av de alternative flytene i den tekstlige beskrivelsen I. 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

Oppgave 9: Løsningsforslag Lag et sekvensdiagram for hovedflyten og én av de alternative flytene i den tekstlige beskrivelsen I. Identifiser de aktuelle objektene / aktørene

Oppgave 9: Løsningsforslag Lag et sekvensdiagram for hovedflyten og én av de alternative flytene i den tekstlige beskrivelsen II. Oppsett (rekkefølgen gis av flyten) Aktøren (Kundebehandler) plasseres til venstre i sekvensdiagrammet Aktøren interagerer med Reservasjonssystemet 1. Kundebehandler oppgir tidsintervall for utleie

Oppgave 9: Løsningsforslag Lag et sekvensdiagram for hovedflyten og én av de alternative flytene i den tekstlige beskrivelsen II. Oppsett (rekkefølgen gis av flyten) Reservasjonssystemet interagerer Først med Bilregisteret 2. Returnerer liste over tilgjengelige biler Deretter med Kunderegisteret 4. Finner kunden i systemet

Oppgave 9: Løsningsforslag Lag et sekvensdiagram for hovedflyten og én av de alternative flytene i den tekstlige beskrivelsen II. 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

Oppgave 9: Løsningsforslag Lag et sekvensdiagram for hovedflyten og én av de alternative flytene i den tekstlige beskrivelsen II. Oppsett (rekkefølgen gis av flyten) Foreløpig oppsett Har nå et skjelett for hvordan sekvensdiagrammet skal se ut Kan starte å modellere den tekstlige beskrivelsen

Oppgave 9: Løsningsforslag Lag et sekvensdiagram for hovedflyten og én av de alternative flytene i den tekstlige beskrivelsen III. 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

Oppgave 9: Løsningsforslag Lag et sekvensdiagram for hovedflyten og én av de alternative flytene i den tekstlige beskrivelsen 1. Kundebehandler velger tidsintervall (hentedato og returdato) 2. Systemet returnerer en liste over tilgjengelige biler (oppsøker Bilregister)

Oppgave 9: Løsningsforslag Lag et sekvensdiagram for hovedflyten og én av de alternative flytene i den tekstlige beskrivelsen 3. Kundebehandler velger én av bilene 4. Systemet ber om kundenummer og finner kunden i systemet (Kunderegister)

Oppgave 9: Løsningsforslag Lag et sekvensdiagram for hovedflyten og én av de alternative flytene i den tekstlige beskrivelsen Mulig utfall 1: Kunden finnes Vi oppretter en ALT-blokk for å håndtere alternativ flyt Hivs kunden finnes Returner kunde

Oppgave 9: Løsningsforslag Lag et sekvensdiagram for hovedflyten og én av de alternative flytene i den tekstlige beskrivelsen Mulig utfall 2: Kunden finnes ikke i systemet A2.1: Systemet opplyser om at kunden ikke er registrert A2.2: Systemet oppretter ny kunde

Oppgave 9: Løsningsforslag Lag et sekvensdiagram for hovedflyten og én av de alternative flytene i den tekstlige beskrivelsen 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

Oppgave 9: Løsningsforslag

Oppgave 9: Løsningsforslag Lag et sekvensdiagram for hovedflyten og én av de alternative flytene i den tekstlige beskrivelsen 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

Oppgave 9: Løsningsforslag Lag et sekvensdiagram for hovedflyten og én av de alternative flytene i den tekstlige beskrivelsen Tips til modellering av sekvensdiagrammer Utgangspunkt: Bruksmønster 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 Samsvar mellom sekvensdiagram og den tekstlige beskrivelsen

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 : Mer UML-modellering