- TIE-0240x
- 3. Rajapinnat: sopimus rajapinnasta
- 3.4 Harjoitus: Ohjelman dokumentointi
Harjoitus: Ohjelman dokumentointi¶
Edellisessä tehtävässä sait luokat fraction.hh/.cc, string.hh/.cc, vector.hh/.cc, joilta puuttuu rajapintadokumentaatio.
Sopimussuunnittelu¶
Mieti annettujen luokkien Murtoluku, String ja VectorInt annetuille operaatioille:
esiehto (rajapintadokumentaatio + testi)
jälkiehto (rajapintadokumentaatio + testi)
luokkainvariantti (dokumentaatio + testi, tämä siis luokille, ei yksittäisille operaatioille)
Kirjoita dokumentaatio kooditiedostojen kommentteihin Doxygen-muodossa. QtCreator tuottaa pohjan automaattisesti, kun aloitat kommentin merkeillä
/*!
ja painat rivinvaihtoa.
Kun esi- ja jälkiehtoja alkaa olla valmiina, voit jatkaa niiden testaamiseen. Tuota tätä varten koodissa jokaiselle jäsenfunktion esittelylle toteutuspohja QtCreatorin operaatiolla oikea nappi > Refactor > Add definition in… ja kirjoita testit sinne. Vastaavasti voit esimerkkiä mukaellen kirjoittaan invariantin testauksen omaan private-jäsenfunktioonsa.
Voit tuottaa dokumentaation ajamalla komennon doxygen komentorivillä tai suorittamalla sen doxywizard-ohjelmasta. Dokumentaatiota pääset lukemaan, kun nettiselaimella avaat sivun (Open File / Ctrl-o) <tehtävän-hakemisto>/html/index.html.
Tee mielellään kaikki tehtävän osia jäsenfunktio kerrallaan, jotta ehdit kokeilla kaikkia asioita. Ei haittaa, vaikket ehdikään saada kaikkea valmiiksi.
Millaisia esi- ja jälkiehtoja tarvitsit? Oliko sopivan vaatimustason löytäminen sopimukselle haastavaa?
A+ esittää tässä kohdassa tehtävän palautuslomakkeen.