Tehtävä 3 arvosteluperusteet ---------------------------- a) Ohjelmiston määrittely: Asiakkaan ohjelmistolle asettamien vaatimusten kartoitus ja dokumentointi. Vastaus kysymykseen "mitä ollaan tekemässä?" b) Yksikkötestaus: Testauksen vaihe jossa varmistetaan että ykisttäisten metodit ja luokat toimivat halutulla tavalla. c) Single responsibility -periaate: Oliosuunnittelun periaate jonka mukaan ohjelma kannattaa koostaa pienistä yhden vastuun omaavista yhteistoiminnassa olevista olioista. Vastakohta SRP:lle ovat "jumala-oliot" jotka tekevät monta toisistaan riippumatonta asiaa. SRP:n motiivi on ohjelmien ylläpidettävyyden ja laajennettavuuden lisääminen. d) Code smell eli koodihaju: Koodin tasolla ilmenevä "epäpuhtaus", esim. toisteinen koodi (copy paste). Syy koodihajulle voi olla laiska ohjelmoija mutta joskus syy voi olla huonossa oliosuunnittelussa (esim. SRP:n rikkomisessa). e) Refaktorointi: Koodin rakenteeseen tehtävä muutos joka kuitenkin pitää koodin ulospäin näkyvän toiminnan ennallaan. Koodihajua "lääkitään" refaktoroinnilla. f) TDD eli Test driven development: Ohjelmointi/suunnittelutekniikka jossa yksikkötestejä kirjoitetaan ennen ohjelmoinnin aloittamista. "puhtaassa" TDD:ssä kaikkia testejä ei kirjoiteta kerralla, vaan testien ja koodin kirjoittaminen lomituu "TDD-syklinä": (1) tehdään yksi testitapaus – testitapaus testaa ainoastaan yhden ”pienen” asian (2) Tehdään koodi joka läpäisee testitapauksen (3) refaktoroidaan koodia, eli parannellaan koodin laatua ja struktuuria – Testit varmistavat koko ajan ettei mitään mene rikki Kun koodin rakenne on kunnossa, palataan vaiheeseen (1) Jokaisesta kohdasta oli jaossa 1 piste. e- ja f-kohtien arvostelussa oltiin melko armollisia. e:ssä ei vaadittu eksplisiittistä mainintaa siitä että koodin ulospäin näkyvä toiminta säilyy muuttumattomana. f:ssä ei vaadittu puhdasverisen TDD:n selittämistä.