Skip to content

Tentin mallivastaukset

Lassi Vapaakallio edited this page Aug 3, 2015 · 3 revisions

Tehtävä 1

Ohjelmiston vaatimusmäärittely 1p

Kartoitetaan mitä asiakas haluaa.

Vaatimukset jakautuvat toiminnallisiin vaatimuksiin (toiminnot) ja toimintaympäristön asettamiin rajoitteisiin (mm. suorituskyky, ohjelmointiympäristö, käytettävyys). Ei vielä oteta kantaa toteutukseen.

Vesiputousmalli 1p

Ohjelmistoprosessin vaiheet (vaatimukset, suunnittelu, toteutus, testaus) suoritetaan vaihe vaiheelta dokumentoiden jokainen vaihe huolellisesti. Perustuu oletukseen, että vaatimukset on mahdollista kartoittaa ja dokumentoida kattavasti alussa.

Ketterä menetelmä 1.5p

Ohjelmaa rakennetaan iteratiivisesti. Jokainen iteraatio tuottaa laajentuvan version ohjelman toiminnallisuutta. Asiakas on mukana prosessissa antaen tuotteesta palautetta iteraatioden jälkeen ja valitsee seuraavan iteraation tavoitteen. Mahdollistaa vaatimusten muuttumisen.

Kerrosarkkitehtuuri 1p

Ohjelmiston korkean tason suunnitteluperiaate, jossa ohjelma jaetaan kerroksiin, eli loogisiin komponentteihin (eli kokonaisuuksiin) siten, että kullakin kerroksella on oma selkeä tehtävänsä. Periaatteena jaotella kerrokset siten, että kerros riippuu ainoastaan alempana olevista kerroksista. Kerrokset tyypillisesti: käyttöliittymä, sovelluslogiikka, tietokanta. Motiivina muokattavuus, laajennettavuus ja uusiokäyttö sekä abstraktioiden luominen: ei ole pakko ymmärtää kaikkea kaikesta, esim. tietokanta on abstrahoitu sovelluslogiikalta.

Single responsibility -periaate 0.5p

Jokaisella oliolla tulee olla vain yksi vastuu eli “tehtävä”, josta olio huolehtii. Monimutkainen toiminnalisuus saadaan aikaan yhdistelemällä yhden vastuun olioita. Motivaationa testattavuus ja ylläpidettävyys.

Tehtävä 2

a)

Luokkakaavio (Max. 4p)

  • Komposition puuttuminen lehden ja sivun välistä ei oleellista, myös ilman kompositiota ok
  • Kompositio looginen myös toimittajan ja artikkelin väliin – “ei artikkeleita ilman toimittajaa”
  • Toimittaja – Päätoimittaja suhde on voitu ilmaista myös joko
    • Perimällä abstrakti luokka toimittaja päätoimittajalla ja perustoimittajalla, ja yhdistämällä perityt
    • Luokan toimittaja suhteella itseensä sopivin selittein
  • Jos tehty kuten kuvassa, 0..1 sillä päätoimittaja ei ole itsensä alainen. Pieni miinus, jos tilalla 1
  • Lehdestä yhteydet muihin kuin sivuihin ovat turhia ja miinusta, sillä…
    • sivujen kautta saa tietää lehteen liittyvät mainokset
    • ja artikkelit, joiden kautta lehteen liittyvät kuvat, toimittajat ja päätoimittajan
  • Puuttuvat osallistumisrajoitukset aina miinusta
  • Monilla myös mennyt sekaisin tähden merkitys. * = 0-n kpl. 1..* = 1-n kpl. Pieni virhe

b)

Luokkakaavio (Max. 2p)

  • Komposition puute heti -0,5p
  • Nuolenpäistä oltiin tarkkoja, mutta jos ainoa vika kompositiosta puuttuva nuolenpää, täydet pisteet
  • Koneet voivat koodin mukaan olla kuinka monessa tehtaassa vaan. Hyväksyttiin myös 0..1
  • Kaaviossa Main on ok, jos se on riippuvainen (katkoviiva, luo koneet, käyttää/luo tehtaan) koneista/tehtaasta

Sekvenssikaavio (Max. 4p)

  • Olioiden luomiset ja koneiden lisäämiset 1p
  • Vuorokauden kulutus 1p
  • Raporttien teko 1p
  • Varaston tyhjennys 1p
  • Muutama huomautti, ettei saldoa ole alustettu, mutta jätti “bugin” huomioimatta. Java alustaa integerit automaattisesti nollaksi, joten bugia ei ole.

Tehtävä 3

Käyttötapauskaavio (max 4.p)


Pisteitä menetti seuraavista:

  • -½ p: Facebook puuttuu käyttäjistä
  • -½ p: ylläpitäjä puuttuu
  • -½ p: kansainvälinen olutliitto puuttuu
  • -½ p: rekisteröityminen/kirjautuminen puuttuu
  • -½ p ylläpitäjä ja olutliitto liittyvät suoraan rekisteröitymistapaukseen eivätkä “hyväksy rekisteröityminen” tapaukseen
  • -½-2 p: käyttötapauksia puuttuu
  • -½-2 p: selvästi ei UML-mukaisia merkintöjä
  • -½ p: liika yleistäminen (esim. oluiden lisääminen/tarjonnan muokkaaminen/oluiden poistaminen ja panimon tietojen muuttaminen jätetty “tietojen muokkaus”-käyttötapauksen alle ilman mitään selitystä)

Yhden käyttötapauksen tarkempi kuvaus (max. 1p)

  • -1/4 epämääräinen tapauksen kulku tai muuta hämärää
  • -½ jälkiehdon/esiehdon väärinkäyttö
  • käyttäjät, esiehto, jälkiehto ja tapauksen kulku vaadittu täysiin pisteisiin

Tehtävä 4

Pisteitä vähennettiin seuraavista virheistä:

  • Puuttuva luokka tai yhteys -½
  • Puuttuva tai virheellinen osallistumisrajoite -½
  • Toiminnallisten tai kuulumattomien luokkien olemassaolo -½
  • Jos arvio puuttuu täysin -1
  • Jos arvio liittyy sekä oluisiin että ravintoloihin -1
  • Jos osallistumisrajoitteet puuttuvat täysin kaaviosta -2