GJENNOMGANG UKESOPPGAVER 6 MER OM OBJEKTORIENTERING OG UML INF1050 V16 KRISTIN BRÆNDEN
DAGENS TEMA Klassediagram Aktivitetsdiagram Tilstandsdiagram Sekvensdiagram
1 Ta utgangspunkt i følgende klasser: En skriver til en PC. Du kan anta at det er en blekkskriver, og at den ikke sta r i nettverk En bankkonto En bok som tilhører et bibliotek a) Definer attributter og metoder for disse klassene b) Finn andre klasser disse klassene kan assosieres med
LØSNINGSFORSLAG OPPGAVE 1A
LØSNINGSFORSLAG OPPGAVE 1B Eksempler
2 A) Hva er et aktivitetsdiagram?
LØSNINGSFORSLAG OPPGAVE 2A Et aktivitetsdiagram er en form for flow chart Det er en del av standarden til UML 2.0 Det er en grafisk representasjon av en arbeidsflyt Beskriver hvordan mulige utfall av en aktivitet påvirker flyten Viser hvilke aktiviteter som kan utføres parallelt
LØSNINGSFORSLAG OPPGAVE 2A Starter flyt med: Avslutter flyt med: Lager en aktivitet slik:
LØSNINGSFORSLAG OPPGAVE 2A Valgdiamanter beskriver hvordan handlinger påvirker flyten i systemet:
LØSNINGSFORSLAG OPPGAVE 2A En blokkering (bar) representerer start (split) og slutt (join) for parallelle prosesser.
2 B) Hvorfor er det nyttig å lage aktivitetsdiagrammer?
LØSNINGSFORSLAG OPPGAVE 2B NYTTIG Å LAGE FOR Å: definere flyten for en gitt aktivitetet som kan gjennomføres i systemet finne prosesser som kan kjøre samtidig og er uavhengig av hverandre finne 'deadlocks' i systemet tilfeller der man aldri kommer videre fra en aktivitet til en annen forstå arbeidsrutiner KAN MODELLERE: arbeidsflyten i et system organisasjonelle flyter
3 A) Hva er hendelsesdrevet modellering?
LØSNINGSFORSLAG OPPGAVE 3A Hendelsesdrevet modellering viser: hvordan hendelser driver systemet fremover hvordan tilstander er knyttet til hendelser i et system
3 B) Hva er et tilstandsdiagram?
LØSNINGSFORSLAG OPPGAVE 3B Et tilstandsdiagram representerer en tilstandsmaskin Det er en del av standarden til UML 2.0 Grafisk representasjon av de ulike tilstandene systemet kan være i Beskriver hvilke hendelser som får systemet til å endre tilstand
LØSNINGSFORSLAG OPPGAVE 3B Vi kan definere en tilstand og handlinger som utføres i tilstanden på følgende måte:
LØSNINGSFORSLAG OPPGAVE 3B Et tilstandsdiagram viser tilstander systemet kan være i og hvilke hendelser som får systemet til å gå fra en tilstand til en annen:
3 C) Hvorfor er det nyttig å lage tilstandsdiagrammer?
LØSNINGSFORSLAG OPPGAVE 3C Tilstandsdiagrammer er nyttige å modellere fordi: de viser hvilke tilstander systemet kan være i de viser hvordan vi kommer fra én tilstand til en annen de viser 'deadlocks' i systemet for oss (en tilstand som vi ikke kommer ut av)
4 Ta utgangspunkt i et system for en vaskemaskin der du antar følgende: Det er fire ulike vaskeprogrammer. Vanlig tøy kan vaskes på 30, 40 eller 60 grader. Ullvask er forhåndsinnstilt på 30 grader. Sentrifugering er inkludert i vaskeprogrammene. Det er derfor ikke en egen knapp for dette Når maskinen har startet (bruker har trykket på start-knappen), er det ikke mulig å avbryte programmet før det er ferdig. Lag et tilstandsdiagram for denne vaskemaskinen
5 Ta utgangspunkt i eksemplet med å pante flasker fra forelesningen om objektorientert modellering
5 A) Utvid den tekstlige beskrivelsen av use caset med tilfellet at flere flasker pantes og tilfellet at det er fullt i mottaket av flasker
Pante flasker Navn: Pante flasker Aktør: Kunde Prebetingelse: Panteautomat er klar til å ta imot pant Postbetingelse: Kunde får ut kvittering eller lodd i røde kors trekning Hovedflyt: 1. Kunde setter inn en flaske (eller et panteobjekt) 2. Panteautomaten skanner koden til flasken (panteobjektet) som ble puttet inn 3. Objektet er godkjent, pantebeløpet blir lagt til det totale beløpet 4. Kunde trykker på kvittering 5. Panteautomat skriver ut kvittering Fra forelesningen Alternative flyt 3.1 Objekt ikke godkjent 3.2 Start fra 1 4.1.A1 Kunde trykker på Røde kors lotteri 4.2.A1 Kunde skriver ut Røde kors lodd 4.1.A2 Kunde setter inn ny flaske (panteobjekt) 4.2.A2 Start fra 1
LØSNINGSFORSLAG OPPGAVE 5A Vi velger å legge til en ny alternativ flyt Alternativ flyt: 2.1. Systemet gir feilbeskjed om at det er fullt i mottaket av flasker. 2.2. Systemet gir tilbake flaske. 2.3. Systemet returnerer til steg 5.
5 B) Utvid sekvensdiagrammet med tilfellet at det er fullt i mottaket av flasker
Fra forelesningen
LØSNINGSFORSLAG OPPGAVE 5B
5 C) Utvid aktivitetsdiagrammet med funksjonalitet som legger til pantebeløp på flasker som gir pant
Finnes allerede
5 D) Skisser hvordan du kunne modellert use caset uten å bruke klassen Pantesystem i klassediagrammet og sekvensdiagrammet
TAKK FOR MEG Spørsmål? Eksemplene er delvis laget av André Lincoln Read og Kristian Saksvik Munkvold KRISTIN BRÆNDEN