Demo 5 - 28.4.
Mallivastaus - Opiskelijoiden vastauksia
5. demoissa kerrataan luokka- ja sekvenssikaavioita ja
harjoitellaan arkkitehtuurin mallintamista. (luento 10).
Demojen tulee olla palautettuna verkossa viimeistään 3.5. klo
12.00. Demot palautetaan NettiDemoWWW:llä. Muista merkitä NettiDemoWWW:ssä
pistemäärä (ja tarvittaessa omia kommentteja). Pisteet voi jakaa
useammalle tiedostolle tai useita tehtäväkohtia voi yhdistää samaan
tiedostoon (suositeltavat formaatit: teksti, html, kuvaformaatit,
pdf).
StarUML-vinkkejä sekvenssikaavioiden piirtoon
wikissä. Ks. myös muiden ohjelmien ohjeita.
Piirtämisen sijaaan sekvenssikaavio on myös mahdollista
määrittää tekstimuodossa UMLetissa
(paletti Sequence-All in One) tai PlantUML:ssä (ks. esimerkki).
1. Kertaus
1). Käy läpi seuraava
toimintakuvaus:
Tutkimuslaitoksessa on kymmeniä projekteja. Kunkin projektin
rahoitus tulee useammasta lähteestä, jotka voivat olla yrityksiä
tai valtion yksiköitä. Projektissa työskentelee yksi tai useampi
henkilö. Kullakin projektilla on johtaja. Projektin työ liittyy
johonkin tai joihinkin tutkimusaiheisiin. Projekti tuottaa
tutkimusraportteja, joiden kansilehdellä tuodaan esille myös
raportin tekijät. Tutkimusraportti voi olla tutkimuslaitoksen
sisäinen (sisältää julkaisunumeron), konferenssiartikkeli (sisältää
konferenssin nimen ja vuoden. lisäksi yhden raportin kirjoittajista
tulee esittää artikkeli konferenssissa) tai tieteellisessä lehdessä
(sisältää vuoden ja lehden numeron) julkaistu artikkeli.
Laadi toimintakuvauksen perusteella tutkimuslaitoksen
kohdealuemalli. Esitä malli analyysivaiheen luokkakaaviona.
(2p)
2. Poliisirekisteri
Jatketaan demoissa 2 ja 3 kuvatun poliisijärjestelmän suunnittelua. CRC-korttien kirjoituskäytännöistä kannattaa kerrata myös demojen 4 malliratkaisut.2a). Kirjoita CRC-kortit rikosten kirjaukseen liittyvälle käyttöliittymäluokalle Käyttöliittymä, ohjausluokalle RikosOhjain sekä kohdealueluokille Rikos, Epäilty, ja Rikosrekisteri (huomaa, että avustajina voidaan käyttää myös muita kohdealuemallin luokkia. Voit käyttää esim. seuraavaa CRC-korttipohjaa (html, doc, odt). (2p)
2b). Muodosta Kirjaa rikos järjestelmään-käyttötapausta kuvaavan yhteistoimintakaavion ja CRC-korttien pohjalta sekvenssikaavio, joka kuvaa tarkasti käyttötapauksen kulun (sekä käyttöliittymän että järjestelmän sisäisen rakenteen kannalta). Jos yhteistoimintakaavio on piirretty ICONIX-tyylillä, huomioi ohjain"luokkien" yhdistely ja sijoittelu muiden luokkien metodeiksi. Muista myös poikkeustapausten käsittely. (3p)
3. Arkkitehtuurin suunnittelu
3a). Jatketaan demoissa
3 ja 4 kuvatun
rahaliikenteen seurantajärjestelmän suunnittelua.Hahmottele demojen 4 CRC-korttien ja kohdealuemallin pohjalta looginen arkkitehtuuri rahaliikenteen seurantajärjestelmälle: (3p)
- Esitä arkkitehtuuri UML-paketteina (package, StarUML:ssä mm.
luokkakaavion mallinnuselementeissä), joiden yleiset
riippuvuussuhteet on kuvattu dependency-nuolilla. Käytä
tarvittaessa myös alipaketteja.
- Pakettien sisälle ei tarvitse lisätä yksittäisiä
luokkasymboleja, mutta tiettyyn pakettiin kuuluvat luokat tulee
merkitä esim. listaamalla luokat UML-kommenteilla
(Annotation->Note).
- Perustele ja arvioi suunnittelemaasi arkkitehtuuria
lyhyesti.
- Arkkitehtuurin ja suunnittelun perusteita: luentojen 8 ja 10 Bennett-kalvot
(esim. Agaten alijärjestelmäjako Advert/Campaign Costs).
- Pakettien esittämisestä: Agate-Casen suunnitteludokumentit (huom. demovastauksessa ei tarvitse ottaa kantaa toteutusympäristön omiin paketteihin)
3b). Miten
arkkitehtuuriluennolla esitetty MVC
(Model-View-Controller)-arkkitehtuurityyli poikkeaa useimmissa
kurssin oliomallinnusesimerkeissä ja harjoituksissa käytetystä
kolmikerrosarkkitehtuurista
(Käyttöliittymäkerros-Ohjauskerros-Tiedonhallintakerros)? Anna
molempien käytöstä (=miten kutsumekanismi ja toimintojen jako eri
luokkiin eroaaa eri arkkitehtuurityyleissä) lyhyet esimerkit
sekvenssikaavioina, jossa käyttäjä suorittaa seuraavat
toiminnot:
- Käyttäjä käynnistää ohjelman
- Käyttäjä hakee tietoja.
- Ohjelma näyttää tiedot käyttäjälle
- Käyttäjä päivittää tietoja
- Käyttäjä sulkee ohjelman
Sovellusalueeseen tai käyttöliittymän yksityiskohtiin ei
tarvitse ottaa kantaa. (3p)
