Tämä kurssi on jo päättynyt.

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.

Palautusta lähetetään...