Johdatus sovellussuunnitteluun, 15.12.1999.

Tarkastellaan seuraavaa Joulupukin toimintaympäristön osaa mallintavaa luokkakaaviota. Oletamme Joulupukin käytävän tehokasta ja resursseja, esimerkiksi säkkejä, säästävää jakelujärjestelmää. Vaikka tehtävät 1-3 liittyvät samaan aihepiiriin ne on ratkaistavissa toisistaan riippumattomasti.

    1. Piirrä oliokaavio (ilmentymätasolla), joka kuvaa seuraavan tilanteen: Pekka, Liisa ja Pia Virtanen asuvat Espoossa samassa huoneistossa. Pekka antaa yhden lahjan Liisalle ja kaksi Pialle, Liisa puolestaan antaa kaksi lahjaa Pialle ja yhden Pekalle. Matti asuu Helsingissä. Hän antaa yhden lahjan Pialle ja saa yhden lahjan Pekalta ja yhden Liisalta. Pia saa lisäksi yhden lahjan tuntemattomalta ihailijalta. Kaikki lahjat ovat pieniä. Täydennä itse puuttuvat tiedot. (6)

      Vastaus

    2. Matti haluaisi antaa Pekalle ja Liisalle yhteisen lahjan. Onko tämä kaavion mukaan mahdollista? J os on piirrä tilanne ilmentymätasolla. Ellei ole, mitä muutoksia kaavioon pitäisi tehdä, jotta se olisi mahdollinen. Esitä tilanne ilmentymätasolla muutosten jälkeen. (6)

      Ei ole mahdollista koska saajaan liittyvä rajoite on "1". Rajoite pitää muuttaa muotoon "1..*" (yksi tai useampia). Tilanne ilmentymäkaaviona.

    3. Tulipalo tuhoaa Virtasen perheen huoneiston Espoossa. Mitä tapahtuu ilmentymätasolla kun järjestelmälle tulee tieto, ettei huoneistoa ole olemassa? Oletetaan, ettei lahjoja ole vielä jaettu.(6)

      Kaikki kyseiseen huoneistoon liittyvät kytkennät katoavat. Säkki on määritelty olemassaoloriippuvaksi huoneistosta, joten, jos kyseiseistä huoneistoa varten on jo perustettu säkki, se katoaa myös (säkki puretaan). Lahjat sensijaan eivät katoa.

  1. Tarkastellaan lahjavälitystä hieman tarkemmin. Henkilö voi jättää lahjan mihin tahansa vastaanottopisteeseen, jossa se kirjataan vastaanotetuksi (vastaanottoaika). Jossain vaiheessa myöhemmin lahja sijoitetaan vastaanottopisteestä aluevarastoon lahjoja vievään kuljetuserään. Aluevarastoissa lahjat säkitetään. Huoneistokohtaiset säkit ovat avoinna lisäyksille kunnes huoneiston vastuutonttu noutaa ne. Tonttuja on paljon. Tontulle on määritelty vastuualueeksi joukko huoneistoja. Kaikilla tontuilla ei ole vastuuhuoneistoja. Aluevarastosta noudetusta säkistä on kirjattava noutaja, noutoaika ja aika, jolloin lahjat toimitettiin saajille. Muutenkin on tärkeää tietää missä lahjat milloinkin ovat. Täydennä luokkakaaviota (anna luokat, attribuutit, yhteydet ja niihin liittyvät rajoitteet) ottamaan mukaan tässä esitetyt asiat. Jos lisäät attribuutteja johonkin yllä olevan kaavion luokkaan, niin riittää että esität kaaviossa vain uudet attribuutit. (14)

    Eräs mahdollinen ratkaisu

  2. Tontun tehtävänä on noutaa säkit aluevarastosta ja toimittaa lahjat perille. Noutamista varten hän tilaa aluevarastolta tietylle jakoalueelle tarkoitetun säkkierän valmiiksi odottamaan hänen saapumistaan varastolle. Säkkirobotit kokoavat tilatut säkit yhteen ja varastovirkailija luovuttaa ne tontulle sekä kirjaa luovutusajan. Vaikka tontuilla onkin hyvä muisti heidän on usein tarpeen ennen saapumistaan jakokohteeseen virkistää taustatietojaan kohdeperheestä. Kun tonttu on jakanut lahjat on toimitus hoidettu ja hän voi matkalla seuraavaan kohteeseen kirjata edellinen toimituksen hoidetuksi. Tontulla on tietojenkäsittelyä varten mukanaan kannettava langattomalla tietoliikenneyhteydellä varustettu tietokone. Aluevarastossakin on laitteistoa. Määrittele tässä tehtävässä kuvattuun toimintaan liittyvät käyttötapaukset (use case) sekä tyyppitasolla että esimerkkitapausten avulla. (12)

  3. Oheisessa kuvassa käyttäjä on heittämässä pois Internet Explorer -selaimensa suosikkien (favorites) joukosta Dilbertin kotisivua. Hän on valinnut Dilbertin sivun (Dilbert Zone) ja painanut Delete-painiketta, minkä jälkeen ohjelma on pullauttanut näkyviin kuvassa näkyvän varmistusikkunan.

    Mitä ongelmia ja haittoja em. varmistuskysymysten (confirmation boxes) käytössä on? Esitä kaksi selvästi erilaista haittaa. (8)

  4. Kaverisi sanoo suunnittelevansa työpaikallaan erään sovelluksen graafista käyttöliittymää Windows-ympäristöön ja kysyy Sinulta jonkinlaista yleistä neuvoa siitä, miten virheilmoitukset kannattaisi suunnitella. Piirrä häntä varten yksi esimerkki huonosti esitetystä ja yksi esimerkki hyvin suunnitellusta virheilmoituksesta. Selitä lyhyesti mutta ymmärrettävästi, mitä kaverisi kannattaa virheilmoitusten suunnittelussa ensisijaisesti tavoitella. Vetoa piirtämiisi kuviin. (8)