Johdatus sovellussuunnitteluun, HY/Avoin yliopisto, kesä 2003, harjoitus 3 (19.6.)

1.

Kirjaston kokoelma koostuu kirjoista ja lehdistä. Samasta kirjasta voi olla kirjastossa useita kappaleita; kutsutaan näitä niteiksi. Lehdet on niputettu kansioihin vuosikerroittain. Kirjaston asiakkaat voivat hakea teoksia eri hakusanoilla (kirjoittaja, otsikko, lehden nimi ja numero). Lisäksi he voivat lainata kirjoja. Lainasta talletetaan lainaaja, lainattu nide, lainauspäivämäärä ja palautuspäivämäärä. Asiakkaat voivat myös varata kirjan, jota ei ole sillä hetkellä saatavissa. Varaustiedot koostuvat varaajasta, varauksen kohteesta ja varauspäivämäärästä. Lehtiä ei saa lainata, ainoastaan lukea kirjastossa.

Laadi mainitunlaisen kirjastojärjestelmän tietosisältöä kuvaava UML-luokkakaavio. Mieti erityisesti, liittyykö luokkien välisiin yhteyksiin olemassaoloriippuvuuksia. Esitä mahdolliset olemassaoloriippuvuudet kompositioilla. Merkitse olioiden yksikäsitteisen identifioinnin kannalta välttämättömät attribuutit luennoilla esitetyillä {id} ja {+id} -määreillä.


2.

Laadi tehtävän (1) luokkakaaviota vastaava ilmentymäkaavio, joka kuvaa seuraavia asioita: Matti Meikäläinen (tunnus 99999) on lainannut 30.3.2000 kaksi kirjaa: Dostojevskin "Rikoksen ja rangaistuksen" (niteen tunniste 12345) sekä Carl von Linnen "Kasvioppaan" (67890). Samalla hän on varannut "Savon luonto"-kirjan, jonka on toimittanut Kaura Pelto. Maija Muukalainen on lainannut 2.4.2000 Herman Hessen "Arosuden" (54321) sekä toisen niteen Dostojevskin "Rikosta ja rangaistusta" (12344). Lisäksi hän on varannut Dostojevskin "Karamazovin veljekset".


3.

Matkatoimisto Kaukokaipuu haluaa järjestelmän, jolla se voi esitellä matkakohteitaan WWW:ssä. Järjestelmän pitäisi mahdollistaa myös matkojen varaukset sekä matkailijoiden kommenttien kokoaminen. Kustakin matkakohteesta laaditaan esite, jossa on esitelty matkakohde ja majoitusvaihtoehdot. Kohteen yleisesittely sisältää esittelytekstiä ja kuvia kohteesta sekä lentojen aikataulun ja lähtöpäivät. Majoitusvaihtoehdon esittelyssä kerrotaan hotellin tai huoneistohotellin nimi ja osoite, kuvaus tarjolla olevista huonetyypeistä sekä tyypin huoneiden lukumäärä ja matkan perushinta viikolta, kun huoneeseen majoittuu tietty huonetyyppikohtainen perusmäärä henkilöitä. Lisäksi ilmoitetaan lisäviikon hinta ja lisävuodepaikan hinta sekä näiden enimmäismäärä. Järjestelmä pitää kirjaa lähtöihin liittyvistä varauksista huonetyyppikohtaisesti. Varaukset tunnistetaan varausnumerolla. Muita varaukseen liittyviä tietoja ovat tilaajan nimi ja osoitetiedot, matkan kesto viikkoina, matkustajien nimet ja syntymäajat sekä tieto varauksen käsittelyn tilasta.

Alleviivaa yllä olevasta tekstistä luokkaehdokkaat ja karsi luokkia luennolla esitettyjen kriteerien perusteella. Kirjaa perustelut luokan valinnalle tai karsimiselle.


4.

Täydennä tehtävän (3) luokkamallia määrittelemällä luokille attribuutit sekä kartoittamalla luokkien väliset yhteydet. Esitä lopputulos UML-luokkakaaviona.


5.

Pesulapalvelu Puksun Puhdon henkilöasiakkailleen tarjoamaan peruspalveluvalikoimaan kuuluvat kilohintaiset pesut, kuten valko-, kirjo- ja mattopyykin vesipesu sekä kemialliset pesut, joiden hinta määräytyy erillisen kappalehinnaston mukaan. Kuhunkin palveluun voi lisäksi liittää yhden tai useampia lisäpalveluja, esimerkiksi silityksen tai mankeloinnin. Puksun palveluhinnastossa esitellään kunkin palvelun sisältö, siihen liitettävissä olevat lisäpalvelut, hinnoitteluperuste ja yksikköhinta. Kullakin palvelulla on myös tietty toimitusaika, joka riippuu tilausmäärästä.

Asiakas tilaa palveluja palvelutoimeksiannon avulla. Samalla toimeksiannolla voi tilata kerralla useita palveluja. Lisäpalveluja ei voi tilata yksinään. Koko toimeksiantoon liittyväksi toimitusajaksi annetaan suurin yksittäisten palvelujen toimitusajoista. Kokonaishinnaksi tulee yksittäisten palvelujen hintojen summa. Kanta-asiakkaille myönnettään alennusta tietty prosentti loppusummasta.

Pesulapalvelun tietojärjestelmän tulisi huolehtia palvelukuvausten ja hinnaston ylläpidosta, toimeksiantojen hallinnasta sekä asiakasrekisteristä. Laadi järjestelmän tietosisältöä kuvaava UML-kaavio. Täydennä tarvittaessa kuvausta puuttuvillä yksityiskohdilla.