Koskmudel (ehk waterfall) on üks esimesi tarkvaraarenduse elutsükli mudeleid. See põhineb tavalise
tootmisprotsessi eeskujul, kus iga etapp eelneb järgmisele.
Tagasipöördumine eelmisesse etappi on keeruline ning kui eelnevas etapis avastatakse viga, tähendab see, et vea juurde saab tagasi tulla alles siis, kui tarkvara on kasutusele läinud.
Koskmudel koosneb viiest etapist, mis rahuldab kõik üldise tarkvaraarenduse elutsükli etapid.
Nendeks on: Nõuete määratlemine, Süsteemi ja Tarkvara kavandamine, Teostus ning moodulite testimine, Integratsioon ja süsteemi teostamine ning Kasutamine ja hooldus.
Siin etapis dokumenteeritakse arendatava toote või süsteemi nõuded, käitumine, riistvara jms.
Vahest jaotatakse see etapp kaheks: Süsteemi analüüs ja nõuete analüüs.
Teises etapis kavandatakse arendusele mineva tarkvaratoote süsteemi struktuur, keskendudes selle
funktsionaalsetele omadustele. Need võivad olla erinevad (nt Andmestruktuur, toote enda arhitektuur), erinevad
liidesed, nende liideste omadused ja muud algoritmilised 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 valmissaanud mooduleid ja
moodulikogumikke. Olenevalt eelnevalt dokumenteeritud kavandi detailsusest tuleb nüüd selles etapis
projekti arenduslihtsus. Mida rohkem on detaile kavandatud, seda lihtsam on arendustöö.
Toimub kogu valmis saadud tarkvara süsteemi testimine. Peale testimist tarnitakse toode kliendile ja/või sihtrühmale. Testitakse selle vaatepunktist, kas süsteem teeb seda, mis eelnevalt dokumenteeritud, ning
testitakse ka, et süsteemis olevad 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öö 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õppenud. Kuigi ülekate mingisugune siiski on ning info edastatakse ühest etapist järgmisele
edasi.
| Head | Vead |
| Lihtne ja arusaadav | Jäik ja paindumatu |
|---|---|
| Põhjalik dokumentatsioon | Vajab väga detailseid nõudeid alguses |
| Lihtne ajastada | Kõrge risk |
Viited infole: eopearhiiv