EKSAMENSFORSIDE Fagnr. OBJ208 Tittel Objektorientert systemutvikling 2 Ansvarlig faglærer Viggo Holmstedt Klasse(r) Dato IS/IN 2 11.06.2009 Eksamensoppgaven Ant. sider inkl. består av følgende: forside og vedl. 2 Tillatte hjelpemidler: Ingen Ansvarlig avdeling SA Eksamenstid, fra-til 09.00-12.00 (tre timer) Ant. oppgaver Ant. vedlegg 6 0 Opplysninger om vedlegg: Merknader: Oppgaven består av 6 deloppgaver. Hver deloppgave er vektet. Hvis en deloppgave består av flere deloppgaver, er hver deloppgave vektet likt. KANDIDATEN MÅ SELV KONTROLLERE AT OPPGAVESETTET ER FULLSTENDIG
Oppgave 1 Kom med noen synspunkter på bruk av UML i utvikling av store systemer. Refererer gjerne andres sysnpunkter også, dersom du kjenner til drøftinger eller meningsutvekslinger som har foregått i en eller annen form for offentlighet. Her kreves det en fornuftig redegjørelse. Ved å referere til for eksempel The UML Fever og The Fever is Real eller tilsvarende diskusjonnivåer, kan studentene oppnå ekstrapoeng. Oppgave 2 a) Gi en forklaring på dette diagrammet b) Deklarer en metode i Java som du kaller behandlekunde og skriv kode innenfor metoden som tilsvarer diagrammet a) Diagrammet er et delvis velformet aktivitetsdiagram. Den samlende firkanten mangler rett før avslutningen. Diagrammet dreier seg om behandling av kunde ved POS. b) void behandlekunde() { start_ny_kunde(); while (fortsett) registrer_vare(); if (kan_betale) levere(); else kansellere(); }
Oppgave 3 Vekt 20% a) Forklar hva dette diagrammet handler om. b) Gi utfyllende informasjon. a) Diagrammet er en oversikt over alle diagramtypene i UML. Oversikten er vist som et klassediagram. Kursiv viser at de navnede diagramtypene er abstrakte. De må altså spesialiseres før de kan brukes til noe konkret. Spesialiseringssymbolene viser hvordan de konkrete diagramtypene utledes av de abstrakte. b) Boksene uten navn tilsvarer alle de konkrete diagramtypene. (Her skal en god besvarelse også fortelle hvilke). Oppgave 4 Vekt 20% a) Beskriv kort hvilket domene dette diagrammet er fra b) Forklar hva koblingen mellom de to firkantene generelt handler om c) Lag et eksempel fra noe annet enn programmering som kan illustrere hva koblingen dreier seg om a) Dette diagrammet er fra et domene som handler om forretningsdrift eller handel
b) Koblingen er en ball-and-socket. Den er sammensatt av to deler. Den ene er en lollipop som er knyttet til en klasse som realiserer et interface. Den andre er en socket som sender meldinger som er deklarert i interfacet. Meldingene sendes til den som har implementert interfacet. c) Et bilverksted har implementert et interface med metoden reparerbil. En bileier med ødelagt bil kjenner til dette interfacet. Bileieren vet derfor at hun kan sende meldingen reparerbil til verkstedet, og sende bilden med som argument. Bilverkstedet utfører innholdet i meldingen reparerbil. Litt enklere sagt: Verkstedet reparerer bilen. Oppgave 5 Forklar forskjellen på komposisjon og aggregering. Svar også på når det er mest naturlig å bruke transienter. a) Aggregering er en assosiasjon der vi spesifiserer og kan adressere objektet som assosieres. Men objektet som aggregerer har ingen innflytelse på aggregatets liv. Aggregatet kan samtidig gjerne aggregereres av andre objekter også, uten at de aggregerende objektene vet om hverandre. b) Komposisjon er en assosiasjon der objektetet som aggregerer har fullstendig kontroll over aggregatets liv. Det instansieres og dør som regel innenfor det aggregerende objektets liv. Dette kalles en transient. Oppgave 6 Forklar med enkle ord og vendinger hva neste diagram er og hva det viser:
Diagrammet er et aktivitetsdiagram som viser de to objektene klient og tjener og hvordan de har et samspill i en spørring-svar. Klienten logger inn og sender signal til tjeneren. Tjeneren forgrener reaksjonen sin langs to veier. Den ene veien er å akseptere klienten og å sette seg til å vente inntil 5 minutter. Har det ikke skjedd noe, logger den ut klienten igjen og går til symbolet A. Dette kalles en connector i aktivitetsdiagrammer. Den andre veien finner på noe å utføre, sannsynligvis fordi den fant et argument fra klienten som bestemte hva som skulle gjøres. Hvis denne veien følges, blir ikke klienten logget ut. Symbolet A sender aktivitetene tilbake til klienten som derfor er den som avslutter aktivitetsdiagrammet. slutt på dokumentet