09.08.2013 Views

inf1050_uke10_losnin.. - IfI

inf1050_uke10_losnin.. - IfI

inf1050_uke10_losnin.. - IfI

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Oppgaver til kap. 9 med løsningsforslag<br />

Oppgave 1. Et bilutleiefirma ønsker et informasjonssystem for utleie av biler. Vanligvis<br />

reserverer kunden en bil, henter den og returnerer den etter en tids bruk. Når bilen hentes,<br />

kan kunden velge om hun ønsker forsikring. Når bilen returneres, mottar kunden en<br />

regning. Regningen er avhengig av hvor langt kunden har kjørt, om det er skader på bilen<br />

og om det mangler bensin på tanken.<br />

a. Identifiser aktører (primære og sekundære) og beskriv disse aktørenes mål. Aktører<br />

og mål kan med fordel settes opp i en tabell.<br />

Legg merke til at denne beskrivelsen fungerer som en systemavgrensning: Hvem er<br />

brukere av dette systemet, og hvilke oppgaver ønsker de å få løst?<br />

b. Lag et bruksmønsterdiagram for systemet<br />

c. Spesifiser bruksmønsteret "returner bil" (el.l.) med normal hendelsesflyt og<br />

variasjoner. Diskuter om spesifikasjonen indikerer behov for endringer i<br />

bruksmønsterdiagrammet fra oppgave b).<br />

d. Spesifiser andre bruksmønstre med normal hendelsesflyt og variasjoner<br />

© Erik Arisholm


1a. Identifiser aktører (primære og sekundære) og beskriv disse aktørenes mål.<br />

Litt av poenget med oppgave 1 er å avgrense systemet ved å identifisere primære og<br />

sekundære aktører. Jeg har valgt en systemgrense hvor kun ”kundebehandler” er primær<br />

aktør. ”Kunde” anser jeg som sekundær aktør på alle bruksmønstrene.<br />

1b. Lag et bruksmønsterdiagram for systemet<br />

© Erik Arisholm


1c. Spesifiser bruksmønsteret "returner bil" (el.l.) med normal hendelsesflyt og<br />

variasjoner. Diskuter om spesifikasjonen indikerer behov for endringer i<br />

bruksmønsterdiagrammet fra oppgave b).<br />

Oppgaven ber om å spesifisere et bruksmønster som heter ”Returner bil”, som jeg med<br />

vilje har gitt et litt tvetydig navn i forhold til hvem som kan være primær aktør.<br />

Siden jeg har valgt kundebehandler som primær aktør synes jeg det var naturlig å døpe<br />

om ”returner bil” til ”behandle retur av bil”.<br />

Navn: ”Behandle retur av bil<br />

Aktør: Kundebehandler<br />

Trigger: Kunde ønsker å returnere bil<br />

Pre-betingelse: Ingen<br />

Post-betingelse: Bilen er levert tilbake og regningen er betalt<br />

Normal Hendelsesflyt:<br />

1. Kundebehandler oppgir reg.nr<br />

2. Systemet finner leiekontrakten<br />

3. Kundebehandler oppgir hvor langt bilen har kjørt<br />

4. Kundebehandler oppgir tanknivå<br />

5. Kundebehandler oppgir info om skader<br />

6. Kundebehandler ber om regning<br />

7. Systemet beregner betalingssum basert på kjørelengde, tanknivå, skader osv og skriver<br />

ut regning<br />

8. Kundebehandler sier fra at regningen er betalt<br />

Variasjoner:<br />

2a. Finner ikke kontrakten:<br />

1. Systemet opplyser at feil reg.nr. Prøv igjen<br />

3a. Bilen har overskredet avtalt gratis kjørelengde:<br />

1. Systemet beregner tilleggsavgift<br />

4a. Tanknivået er for lavt i forhold til når bilen ble leid ut:<br />

1. Systemet beregner en høy bensin literspris som legges til leieprisen<br />

5a. Bilen er skadet:<br />

1. Kundebehandler oppgir om (hvilke av) skadene (som) må utbedres<br />

2. Systemet registrerer skadene<br />

3. Systemet sjekker om kunden har tegnet forsikring<br />

3a. Kunden har tegnet forsikring som dekker skadene:<br />

1. Systemet legger til forsikring egenandel i leieprisen<br />

3b. Kunden har ikke tegnet forsikring som dekker skadene:<br />

(dette er et vanskelig spesialtilfelle som ikke er ferdigspesifisert her…)<br />

1. Systemet noterer seg at regning for skaden skal ettersendes<br />

kunden når skaden er utbedret og prisen er kjent<br />

© Erik Arisholm


1d. Spesifiser andre bruksmønstre med normal hendelsesflyt og variasjoner<br />

Navn: Reserver bil<br />

Aktør: Kundebehandler<br />

Trigger: Kunde ønsker å reservere bil<br />

Pre-betingelse: Ingen<br />

Post-betingelse: Bilen er reservert<br />

Normal Hendelsesflyt:<br />

1. Kundebehandler velger tidsintervall (hentedato og returdato)<br />

2. Systemet returnerer en liste over tilgjengelige biler innenfor de spesifiserte datoene<br />

3. Kundebehandler velger en av bilene.<br />

4. Systemet ber om kundenr og finner kunden i systemet<br />

5. Systemet bekrefter at bilen er reservert for den gitte perioden<br />

Variasjoner:<br />

2a. Det finnes ingen tilgjengelige biler i valgt tidsintervall:<br />

1. Systemet opplyser om at det ikke er tilgjengelige biler innenfor oppgitt<br />

tidsintervall.<br />

2. Kundebehandler oppgir et nytt tidsintervall (punkt 1) eller avslutter<br />

bruksmønsteret.<br />

4a. Kunden finnes ikke:<br />

1. Systemet oppretter ny kunde<br />

Relatert informasjon:<br />

Vi har gjort en rekke antagelser som bør avklares med oppdragsgiver:<br />

- Vi antar at man reserverer en bestemt bil. Det impliserer at man enten kunne lage<br />

et reservasjonsobjekt som assosieres med valgt bil, eller lage en ny leiekontrakt<br />

med status ”reservert” og oppgitt for bilen. Det siste medfører et i utgangspunktet<br />

enklere design, men ”leiekontrakt” får flere ansvarsområder.<br />

- Vi skiller ikke mellom forskjellige biltyper. Det vil være en mulig utvidelse, hvor<br />

”biltype” (for eksempel liten bil, mellomklasse bil, stor bil, flyttebil, buss) kan<br />

spesifiseres i punkt 1 i normal hendelsesflyt. Et slikt valg vil også medføre en<br />

mulig ny klasse: BilType som assosieres med Bil.<br />

- Vi kunne også skille mellom ”gode” og ”mindre gode” kunder, og gi fordeler til<br />

gode kunder…<br />

- Vi antar at forsikring og annen detaljert informasjon om leieforholdet ordnes når<br />

kunden henter bilen (bruksmønsteret ”Lei ut bil”)<br />

© Erik Arisholm

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!