Modul 5

Oppgave

Ta utgangspunkt i en beskrivelse av et system, sett fra brukerens perspektiv. Du kan bruke innledningen til et av eksemplene i læreboka, eller du kan lage noen brukerhistorier for et eksempel du velger selv

 

Bruk substantiv-verb-metoden til finne ut hvilke klasser og metoder du må ha for at systemet skal fungere. Ta med systembeskrivelsen og dokumentasjon av designet til foreleser eller hjelpelærer for godkjenning.

 

Kravspesifikasjon

Kassasystem for en butikk

Kassasystemet må ha mulighet for skanning av et ukjent antall varer, og må også håndtere retur av disse. Mulige betalingsmåter må være kort, kontant og faktura. Etter en endt transaksjon skal en kvittering skrives ut.

 

Kassen må ha mulighet for å avbryte en handel, og må også ha mulighet til å sjekke priser uten å avbryte hele handelen. Systemet må også kunne håndtere gavekort, opptil flere typer. Systemet skal også gi en tilbakemelding med prisen når varene blir skannet.

 

Brukerhistorier:

Pål har kommet inn i butikken og ønsker å reklamere på en vare, samtidig som han skal ha en ny.  Kim tar imot kunden og bruker kassasystemet for å gjøre dette.

 

Gøril ønsker å kjøpe en vare og legger denne på disken. Jon tar henne imot i kassen og bruker kassasystemet for å fullføre handelen.

 

Per skal kjøpe en vare til sin bedrift, og ønsker derfor å betale med en faktura. Tone mottar varen i kassen og bruker kassasystemet for å fullføre denne handelen.

 

Dokumentasjon:

Ved å bruke verb/substantiv metoden kommer vi frem til følgende klasser og metoder:

Substantiv (Klasser)

Kassasystem

Vare

Kort

Kontant

Faktura

Transaksjon

Kvittering

Tilbakemelding

 

Etter litt filtrering og endring av navn kom jeg frem til følgende:

Kasse

Korrterminal

Betaling

Skanner

Display

Metoder:
Her har jeg valgt å bruke CRC-kort som et eksempel på noen av klassene. 

(Trykk på bildet for å få det større) 

 

Etter implementasjon ble det funnet ut at objektet betaling trengte flere funksjoner. Vi kan da ordne dette med et kjent design pattern, nemlig en Decorator.

Decorator-objektet legges «rundt» det gamle objektet, og det er nå Decorator objektet vi må snakke til når vi ønsker å få tak i betaling-objektet. Ønsker vi å få tak i betaling-objektet nå er vi nødt til å gjøre det igjennom Decorator-objektet.