| Ajankohtaista Kurssiesite Suorittaminen Ilmoittautuminen Luennot Laskuharjoitukset Tentti Suunnittelutehtävä Henkilökunta Oppimateriaalia Pistari Pelaa Käyttöohjeet parhaat 20 Palaute Aiemmat kurssit In English |
Ratkaisuvaiheessa esitetään tekninen periaateratkaisu asetetulle
ongelmalle. Periaateratkaisu ymmärretään tässä siten, että
ratkaisun lukija pystyy sen perusteella selkeästi ymmärtämään
ratkaisun perusideat, eri toiminnoissa käytettävät tietorakenteet ja
algoritmit sekä niiden perustelut. Periaateratkaisu pyritään
esittämään sillä yksityiskohtaisuuden tasolla, että sitä voitaisiin
varsin suoraviivaisesti täsmentää edelleen implementaatiotasolle
saakka. Ratkaisussa ei edellytetä ohjelmakoodin
kirjoittamista.Ohjelmakoodi voi jopa vaikeuttaa yleiskuvan saamista, koska
kuvauksessa on silloin mukana niin runsaasti yksityiskohtia.
Ratkaisuesityksen rakenne
Ratkaisun esittämisessä pyritään noudattamaan seuraavaa jakoa.
Ohjetta voi soveltaa, jos se tuntuu perustellulta. Alkuosan tekstissä
voi käyttää hyväksi määrittelyvaiheen tuottamaa osuutta. Sellainen ei
kuitenkaan käy, että tekstissä vain viitataan, että asiaa on käsitelty
määrittelyosuudessa. Ratkaisudokumentin lukijalla tulee olla helposti
saatavilla kaikki olennainen materiaali palautetun dokumentin mukana.
Ohjenuorana tässä on ratkaisuesityksen selkeys ja helppo luettavuus,
joten voi olla kannattavaa editoida määrittelyn tekstiä ja tiivistää
tai täydentää se suoraan mukaan ratkaisudokumenttiin.
-
Yleiskuvaus
-
Järjestelmän tavoitteet
-
Suunnitellun järjestelmän osan tavoitteet
-
Toiminnallisuus
-
Kuvataan kaikki suunnitellun järjestelmän osan keskeiset toiminnot. Mitä
järjestelmä niissä tekee?
-
Mitä se tuottaa toimintojen tuloksena ja missä muodossa tulostieto
esitetään?
-
Tiedon siirto
-
Esitetään suunnitellun järjestelmän osan ja muun järjestelmän välisten rajapintojen kautta kulkeva
tieto.
-
Mitä tietoja siirretään suunnitellun osan ja muun järjestelmän välillä
ja missä muodossa ne esitetään?
-
Rajapinnoista ei tarvitse esittää funktio- tai metodikutsuja
-
Ohjelman tarvitsemat tietorakenteet
-
Mitä keskeisiä tietorakenteita toteutettava osa käyttää
toiminnassaan?
-
Eri tietorakenteiden määrittelyt (tietosisältö, tiedon
esitystapa)
-
Eri toimintojen toteutus
-
Kustakin eri toiminnosta esitetään seuraavat asiat:
-
Algoritmi(e)n yleiskuvaus sanallisesti. Sitä voi täydentää
esittämällä algoritmi(t) pseudokoodilla ellei sanallinen kuvaus
itsessään jo ole riittävän tarkka ja täsmällinen. Pseudokoodin
kirjoittaminen ei siis ole itsetarkoitus vaan se yksi mahdollinen
kuvaustapa. Pseudokoodista voi katsoa ohjeita täältä.
- Koodiakin voi kirjoittaa, mutta silloin helposti mennään liian
detaljitasolle, mikä lisää työmäärää. Missään nimessä tarkoitus ei ole,
että koodi käännetään ja testataan huolellisesti. Koodi ei myöskään
korvaa sanallista kuvausta.
-
Jos jokin ratkaisun osa perustuu siihen, että käytetään suoraan
jotain kurssilla käsiteltyä perustietorakennetta tai algoritmia, tämän
toimintaa ei tarvitse selittää erikseen. Esimerkki: "Asiaan XXX
liittyvät tiedot talletetaan hakurakenteeseen, joka toteutetaan
AVL-puuna". AVL-puun käsittelyalgoritmeja ei tarvitse tällöin kuvata.
Sen sijaan, jos AVL-puuta muokataan (vaikka duplikaattien käsittelyn
vuoksi) perusratkaisusta, toiminnan erot standardialgoritmiin nähden
tulee kuvata.
Lisäksi, jos käytetään tietorakenteita, joita kurssilla ei käsitellä,
tulee dokumenttiin laittaa viitteet lähteisiin.
-
Ratkaisun perustelut ja analyysi
-
Analysoidaan esitettyä ratkaisua.
-
Miksi tehtävään esitetään tällaista ratkaisua?
-
Miten voidaan perustella, että ratkaisu toimii?
-
Mitkä ovat ratkaisun hyvät puolet?
-
Mitkä ovat ratkaisun ongelmat?
-
Mikä on ratkaisualgoritmien tehokkuus esim. O()-notaatiossa? Perustelut?
-
Mikä on käytettävien tietorakenteiden koko? Perustelut?
-
Voidaanko ratkaisua tai sen osia parantaa? Jos, niin miten?
Ratkaisun esittämisessä selkeys, ymmärrettävyys ja
perustelut ovat tärkeitä asioita. Luonnollisesti ratkaisun
oikea toiminnallisuus on pohjalla. Esityksen tavoiteltua pituutta
ei voi oikein ilmaista sivumääränä. Jonkinlaista
suuntaa antaa sanamäärä, esim. 1500-2000 sanaa (tällä
sivulla on karkeasti n. 400 sanaa). Pituus ei sinällään
ole ansio eikä tekstiä pidä tarpeettomasti venyttää.
Pseudokoodista voi katsoa ohjeita täältä.
|