Tietorakenteiden dokumentointi Pietu Pohjalainen
Dokumentointi yleensä Tarkoituksena välittää tietoa ohjelman toiminnasta lähdekoodia korkeammalla tasolla Yllättävän vaikea taiteen laji Lukijan esitiedot vaihtelevat Oikea tarkkuustaso vaihtelee
.. tässä harjoitustyössä Ohjelman toiminnan tulisi käydä ilmi lähdekoodista Dokumentoinnin kohteena Algoritmit lähdeviitteitä tarkemmalla tasolla Toteutuksen aikavaativuudet Luokkakaavio (esim. Fujaballa) Käyttöohje
Algoritmit lähteitä tarkemmin Esimerkiksi Kruskalin algoritmi: A <- 0 for each vertex v E V[G] do Make-Set(v) sort the edges of E by nondecreasing weight w for each edge (u, v) E E, in order by nondec.weight do if Find-Set(u) != Find-Set(v) then A <- A U {(u, v}) Union(u, v) return A
Sidotaan algoritmi toteutukseen Missä kohdassa annetaan toteutukset Make-Set, Find-Set, Union Muut pseudo-notaatiossa esiintyvät operaatiot, jotka ovat konkreettisesti toteutettu
Operaatioiden aikavaatimukset Selitys sille, miksi toteutetut operaatiot ovat niin tehokkaita kuin ovat Esim. linkitettyyn listaan lisääminen on O(1) Kuva selventää usein kovasti
Luokkakaavio Käytettyjen luokkien kaavion ei tarvitse olla mitenkään erityisen tarkka (mutta oikeellinen kylläkin!) Tarkoitus on antaa yleiskuva toteutuksesta löytyvistä osista Kätevä työkalu on esim. Fujaba –takaisinmallinnustyökalu http://www.fujaba.de
Käyttöohje Ohjeet sille, miten ohjelma saadaan käännettyä ja suoritettua laitoksen Linux-ympäristössä Lisäksi yksinkertainen kuvaus ohjelman syöte- ja tulostemuodoista Esimerkkiajo jollain syötteellä riittää
Lopullinen palautus Sisältää Sähköpostiin Lopullisen ohjelman lähdekoodit ja käännetyn paketin Edellisten ohjeiden mukaan tehdyn dokumentin Toteutetut yksikkötestit YHDESSÄ PAKETISSA (zip, tar.gz) Sähköpostiin pietu.pohjalainen@cs.helsinki.fi