Demo 4 - 18.4.

Mallivastaus - Opiskelijoiden vastauksia

4. demoissa keskitytään uudelleenkäyttötekniikoihin ja tilakaavioihin.

Demojen tulee olla palautettuna verkossa viimeistään 24.4. klo 12.00. Demot palautetaan NettiDemoWWW:llä. Muista merkitä NettiDemoWWW:n molempien tehtävien kohdalle pistemäärä (ja tarvittaessa kommentteja). Pisteet voi jakaa useammalle tiedostolle tai useita tehtäväkohtia voi yhdistää samaan tiedostoon (suositeltavat formaatit: teksti, html, kuvaformaatit, pdf).

1. Käsitteitä

1a). Tutustu seuraavaan kohdealuekuvaukseen:

Komppanianpäälliköllä on alaisina upseereita, joilla on alaisena joukkueenjohtajina toimivia upseerikokelaita. Upseerikokelailla on alaisina ryhmänjohtajina toimivina alikersantteja, joiden alaisina on sotamiehiä. Kokelaat, alikersantit ja sotamiehet ovat varusmiehiä, muut kuuluvat kantahenkilökuntaan. Ylennyksiä varten kaikkien sotilashenkilöiden palvelusaikaa seurataan (ilmoitetaan päivissä).

Suunnittele luokkarakenne (kuvaus luokkakaaviona, assosiaatioiden toteutukseen ei tarvitse ottaa kantaa), joka mahdollistaa käskytyksen komppanianpäälliköstä alkaen niin, että eri tasoilla olevat johtajat välittävät käskyt alaisilleen (jotka välittävät käskyn edelleen tai suorittavat, jos ovat sotamiehiä (=miehistöä)). Lisäksi millä tahansa tasolla olevan johtajan tulee pystyä luettelemaan kaikkien (suorien ja epäsuorien) alaistensa nimet. (2p)

Vihje: Composite-suunnittelumalli.

1b)
. UML:ssä sekä tila- että aktiviteettikaaviossa perusmallinnuselementtejä kutsutaan tiloiksi (state). Mikä merkitysero tilakaavion tilalla on aktiviteettikaavion tilaan (aktiviteettiin) verrattuna? (1p)

2. Kirjastojärjestelmä

2a). Muodosta "Hae aineistoa"-yhteistoimintakaavion ja kohdealuemallin pohjalta suunnitteluvaiheen luokkakaavio, jossa attribuutit, metodit ja assosiaatioiden toteutustapa on kuvattu tarkasti. Voit käyttää pohjana malliharjoitustyön StarUML-projektia (sekä kohdealuemallin että lainaus/palautus-käyttötapauksiin liittyvän suunnitteluvaiheen luokkakaavion osalta). (2p)

2b). Muodosta "Hae aineistoa"-yhteistoimintakaavion ja suunnitteluvaiheen luokkakaavion pohjalta sekvenssikaavio, joka kuvaa käyttötapauksen toteutusta. Assosiaatioiden toteutuksen tulee näkyä metodikutsuissa. (2p)

3. Rahaliikenteen seurantajärjestelmä

Jatketaan aiemmissa demoissa kuvatun rahaliikenteen seurantajärjestelmän yksityiskohtaista suunnittelua.

3a). Suunnittele RaportinLuonti-luokalle tilakaavio (käytä apunasi ainakin luokkakaaviota, käyttötapauksia, CRC-kortteja ja muita suunnitteluvaiheen kuvauksia). (2p)

3b). Suunnittele seurantajärjestelmälle fyysinen arkkitehtuuri (laitteet ja yhteydet, joissa järjestelmä toimii). Esitä sijoituskaaviona, jonka solmuissa myös komponentit (tai komponenttien määrittämät artefaktit) on merkitty. Komponenttien pohjana voi olla 3. demojen  looginen arkkitehtuuri ja 3. osapuolen tai toteutusympäristön komponentteja (tutki/mieti, millaisia komponentteja voitaisiin tarvita). (3p)

4. Bonus

4a). Yleistä 1a-tehtävän luokkakaavio tilanteeseen, jossa kantahenkilökunnan (komppanianpäälliköt ja upseerit) palvelusaikaa lasketaan vuosissa, kun taas varusmiehet (kokelaat, alikersantit ja ryhmänjohtajat) laskevat TJ (tänään jäljellä) -indeksiä, joka vähenee päivittäin yhdellä.  Kun TJ on 0, varusmies kotiutetaan. (1p)

4b). Tutustu jonkin oliokielen (esim. Java, C++, C#, Python) standardikirjaston keskeisimpiin kokoelmaluokkiin ja niiden käyttöön. Listaa tärkeimmät luokat (luokkakaaviolla perintähierarkiaa havainnollistaen), ja kuvaa tiiviisti tietorakenteiden perusteita ja tärkeimpiä toimintoja (joko luokkien omia metodeja tai muita apuluokkia, joita suunniteltu tietorakenteiden käsittelyyn). Muista mainita käyttämäsi lähteet. (3p)

Materiaalia esim.
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/2012/kevat/oas/demot/demo4.html
© Miika Nurminen (minurmin@jyu.fi)
Julkaisujärjestelmä: © Antti Ekonoja, Tommi Lahtonen ja Jukka Mäntylä.
2012-04-19 14:17:56
Informaatioteknologia - Jyväskylän yliopiston IT-tiedekunta ja avoin yliopisto