Tampereen teknillinen yliopisto Ohjelmistotekniikan laitos OHJ-1151 Ohjelmointi IIe Harjoitustyö Tomaattisota Välipalautus / Loppudokumentaatio Assistentin nimi Välipalautusaika (päivä ja kellonaika) ja -paikka Tekijän nimi Opiskelijanumero Proffan käyttäjätunnus tut.fi-loppuinen sähköpostiosoite
1 OHJELMAN RAKENNE 1.1 Ohjelman tietorakenteet Tässä kohdassa selvitetään mitä tietorakenteita ohjelma käyttää, mitä niissä säilötään ja miten tiedot on rakenteeseen talletettu. Jos pystyt piirtämään tietorakenteestasi havainnollisen kuvan, aina vain parempi. Kuva saa olla käsin piiretty. (Liian) yksinkertainen puhelinluettelon sisältöä kuvavaa tietorakenne voisi näyttää esimerkisi seuraavalta: struct Kentta { string sukunimi; string etunimi; string numero; }; vector<kentta> luettelo; 1.2 Ohjelman suoritus Miten ohjelman osat suhtautuvat toisiinsa. Mitä toteutetaan funktioissa, mitä luokissa ja mitä muissa moduuleissa. Kaavion on tarkoitus selventää erityisesti ohjelman olioiden/luokkien suhteita. Piirrä aiheesta selkeyttävä kuva. Kuva saa olla käsin piirretty.
2 MODUULIT 2.1 Moduuli X Tässä luvussa kuvataan ohjelman moduulit, eli siis luokat ja mahdolliset muut moduulit. Aivan triviaaleja (apu)funktioita / metodeja ei tässä tarvitse kuvata. Tällaisia ovat mm. merkkijonojen suuriksi ja pieneksi muuttaminen, kahden arvon paikan vaihtaminen vectorissa, luku-merkkijono-muunnokset jne. 2.1.1 Moduulin kuvaus Tässä kohdassa selvitetään: Mitä moduuli toteuttaa Miksi se on olemassa Moduulin vastuualue Miten ohjelma hyötyy sen olemassaolosta Onko moduulilla sisäisiä tietotyyppejä Käyttääkö moduuli jotain toista moduulia/luokkaa jne.. 2.1.2 Rajapinta Tässä luvussa käydään läpi moduulin rajapinta, eli sen sisältämät tyypit, vakiot, funktiot jne. Tärkeimmät funktiot dokumentoidaan kuten alla olevassa esimerkissä. ESIMERKKI: (Alla kuvattu funktio on täysin älyvapaa eikä sellaista kannata ikinä mihinkään kirjoittaa, se on vain esimerkki miten funktion voi dokumentoida) Funktio: summaa Esittely: string summaa(string& eka, string& toka); Parametrit: string& eka: Ensimmäinen yhteenlaskettava luku merkkijonona string& toka: Toinen yhteenlaskettava luku merkkijonona Paluuarvo: Parametreina annettujen lukujen summa merkkijonona. Toiminta: Laskee parametrinaan saamansa luvut yhteen ja palauttaa summan merkkijonona. Funktio myös tyhjentää parametrinaan saamansa merkkijonot (sivuvaikutus). Kutsuu funktioita str2int() ja int2str(). Käyttö: Käytetään ohjelmassa lukujen yhteenlaskuun. Kutsutaan kun käyttäjä käyttää summaa nollaten -operaattoria.
2.2 Luokka Y 2.2.1 Luokan kuvaus Tässä kohdassa selvitetään: Mitä luokka Y mallintaa Luokan vastuualue(et) Miksi se on olemassa Miten ohjelma hyötyy sen olemassaolosta Mitä dataa luokka sisältää Onko luokassa merkittäviä tietorakenteita Käyttääkö luokka jonkin toisen luokan palveluita jne.. 2.2.2 Rajapinta Tässä luvussa käydään läpi luokan rajapinta eli kaikki rajapinnasta löytyvät tyypit, metodit ja muuttujat, eli siis myös private-puoli. Tärkeimmät metodit dokumentoidaan kuten kohdassa 2.1.2.1. Metodit kuvattu kuten moduulien funktiot lisäksi tieto ovatko ne vakiometodeita 2.3 Ohjelman jokainen moduuli / luokka omana alilukunaan
3 KYSYMYKSIÄ / ONGELMIA Tämä luku tarvittaessa. Loppudokumentaatiossa tätä lukua ei enää luonnollisesti tarvitse. Tässä luvussa voit: Esittää kysymyksiä assistentille. Kirjata epäselvyyksiä tehtävänannosta.
4 LOPPUDOKUMENTAATIO Tämä luku vain harjoitustyön loppudokumentaatiossa. Välipalautusta tehdessäsi voit poistaa tämän luvun. 4.1 Muutokset aluperäiseen suunnitelmaan. Tässä kohdassa kuvataan muutokset joita jouduttiin tekemään alkuperäiseen välipalautuksessa esitettyyn suunnitelmaan. (Tässä dokumentissa siis esitetään ohjelman nykytila) 4.2 Kuvaus harjoitustyön tekemisestä Lyhyt kuvaus siitä miten harjoitustyön tekeminen sujui, mihin ongelmiin toteutettaessa törmättiin ja miten ne ratkaistiin. Arvio harjoitustyöhön käytetystä ajasta. Oma arvio harjoitustyön onnistumisesta. 4.3 Palautetta Kaikkea mahdollista palautetta erityisesti kurssin harjoitustöistä, muitakin kurssiin liittyviä asioita saa kommentoida. Kuten esimerkiksi: harjoitustyö harjoitustyön tehtävänanto ja aihe harjoitustyön käytännön järjestelyt dokumenttipohjan käyttökelpoisuus olisitko tehnyt välipalautusdokumentin mieluummin ilman dokumenttipohjaa luennot harjoitukset loputon palautteen kerääminen :-) jne.