Ohjelmistotuotanto, syksy 2002, Harjoitus 6

 

Pullonpalautusjärjestelmä ottaa vastaan pulloja asiakkaalta, tunnistaa ne ja jakaa eri lokeroihin sekä laskee hyvityksen tunnistuksen perusteella. Kun asiakas on saanut pulloeränsä syötettyä automaattiin hän pyytää hyvitystä pulloista painamalla 'maksa hyvitys' nappia. Hyvityksen maksun yhteydessä automaatti antaa kuitin ja kirjaa hyvityksen ja tietoja pulloerästä sisäiseen rekisteriinsä. Automaatti ilmoittaa erilaisista virhetilanteista äänimerkillä, joka kuuluu kunnes hoitaja käy kytkemässä sen pois päältä. Asiakkaalle annetaan virhetoiminnoista lyhyt äänimerkki ja ilmoitus näytölle. Automaatin hoitaja voi syöttää automaattiin pullojen tunnistuskriteerejä ja pullotyyppejä. Hän voi myös määritellä pulloista saatavan hyvityksen suuruuden. Automaatin hoitaja täydentää ajoittain automaatin kassaa sekä ottaa automaatista tilastoja.

Automaatin osia ovat mm. hihna, tunnistinyksikkö, kuittikirjoitin, näyttö, kassa ja pullolokerot.

1-2 Laadi tietovirtakaavio kuvaamaan automaatin ohjelmiston toimintaa. Tarkenna korkeintaan tasolle 2.

3-4 Määrittele automaatin ohjelmisto olioperusteisesti (käyttötapaukset ja luokkakaavio). Kumpi määrittelytekniikka sopii mielestäsi paremmin tähän tilanteeseen?

5 Kerrosrakenteessa ylemmän kerroksen oliot (moduulit) normaalisti kutsuvat alemman kerroksen olioiden palveluja. Alempi kerros tehdään ennen ylempää. Joskus on kuitenkin välttämätöntä mahdollistaa se, että alemmasta kerroksesta kutsutaan ylemmässä kerroksessa määriteltyä toimintoa. Tästä käytetään nimitystä takaisinkutsu (callback). Selvitä miten tämä on tehtävissä Java-ohjelmointikielellä. Laadi pieni esimerkki.


Harri Laine, 16.10.2002