Kosemudel (ehk waterfall) on üks esimesi tarkvaraarenduse elutsükli mudelid. Ta põhineb tavalise
tootmisprotsessi eeskujulm kus iga etapp eelneb järgmisele. Tagasipöördumine eelmisesse etappi on
keeruline ninh kui eelnevas etapis avastatakse viga, tähendab see seda, et vea juurde saab Tagasi
tulla alles siis kui tarkvara on kasutusse läinud
Kosemudel koosneb viiest etapist, mis rahuldab kõik üldise tarkvaraarenduse elutsükli etappe.
Nendeks on: Nõuete määratlemine, Süsteemi ja Tarkvara kavandamine, Teostus ning moodulite testimine,
Integratsioon ja süsteemi testimine ning kasutamine ja hooldus.
Siin etapis dokumenteeritakse arendatava toote või süsteemi nõuded, käitumine, sihtriistvcara jms.
Vahest jaotatakse see etapp kaheks - Süsteemi analüüs ja nõuete analüüs.
Teises etapis kavandatakse arendusele mineva tarkvaratoote süsteem ja struktuur, keskenduses selle
funktsionaalsetele omadustele. Need võivad olla erinevad Andmestruktuurid, toote enda arhitektuur, erinevad
liidesed, nende liideste omadused ja muud algorütmilised detailid. Kavandamise tulemused dokumenteeritakse,
ning mille järgi hiljem teostuses hinnatakse projekti kvaliteeti - Mida rohkem kavandist on tehtud, seda
rohkem on projektist valminud.
Eelnevalt valminud kavandi järgi toimub selles etapis toote arendus. Arendustöö käigus arendatakse
programm moodulhaaval või moodulite kogumikuna. Peale arendustööd testitakse valmissanud moduleid ja
moodulikogumikke. Olenevalt eelnevalt dokumenteeritud kavandi detailsusest tuleneb nüüd selles etapis
projekti arenduslihtsus. Mida rohkem on detaile kavandatud, seda lihtsam on arendustööd.
Toimub kogu valmissaadud tarkvarasüsteemi testimine. Peale testimist tarnitakse toode kliendile ja/või
sihtrühmale. Testitakse seelest vaatepunktist, kas süsteem teeb seda mis eelnevalt dokumenteeritud ning
testitatakse ka et süsteem olevad erinevad detailid on loogilised.
Tegu on kõige pikema tarkvara elutsüklis oleva etapiga. Siin toimub vigade parandus, funktsionaalsuse
muutmine (kas siis kliendi, turu, keskkonna või sihtrühma sisendi tagajärjel või vajadusena) ja koodi
enda refaktoreerimine. Arendustööd teostamiseks korratakse kõiki eelmiseid etappe kuid siis ainult
süsteemi muutmise tarbeks mitte enam nullist millegi uue arendamise jaoks.
Iga etapi tulemusena tekib dokument või dokumentatsioon (üks või mitu) mis kirjeldab vastavas etapis
saavutatud tulemit. Kõik dokumendid kinnitatakse. Järgmine etapp ei tohi olla samaaegselt töös kui
eelmine pole lõpetatud. Kuigi ülekate mingisugune siiski on, ning info edastatakse ühest etapist järgmisesse
edasi.
| Mis on HEAD | Mis on VEAD |
|---|---|
| Selge struktuur ja protsess | Kui nõuded muutuvad, on hiljem keeruline tagasi minna |
| Lihtne planeerida ja hallata | Tagasiside tuleb hilja |
| Hea dokumentatsioon | Vead avastatakse hilises etapis |