Koskmudel (ka jada-, kaskaad- ja klassikaline mudel inglise keeles waterfall model) on üks enimteatud ja vanimaid tarkvaraarenduse meetodeid , mis on oma nimetuse saanud järjestikuse veekoskede analoogiast – vesi langeb ühelt astmelt järgmisse ega pöördu tagasi. Töös liigutakse samuti samm-sammult madalamale astmele ning kõik etapid peavad olema täielikult lõpetatud enne järgmise etapi alustamist
Koskmudelit kirjeldas esmakordselt Winston W. Royce 1970. aastal. Koskmudel on järjestikune mudel, mida kasutatakse erineva tarkvara loomiseks, kus projekt kulgeb pidevalt allapoole ega pöördu tagasi samamoodi nagu koskede puhul. Niisiis tähendab kose mudel, et järgmise etapi juurde peaks liikuma alles siis, kui eelmine etapp on lõpule viidud, kuigi mõne mudeli puhul võivad mõningad variatsioonid ja muutused olla.


Koskmudeli etapid
Nõuete analüüs ja kirjeldamine
- Süsteemianalüüs
- Tarkvaraanalüüs
Süsteemi ja tarkvara kavandamine
- Andmestruktuurid
- Tarkvara arhitektuur
- Liideste omadused
- Algoritmilised detailid
Realisatsioon ja moodulite testimine
- Luuakse programmiosad (funktsioonid, klassid)
- Luuakse moodulid (programmiosad ühendatakse)
- Kõike testitakse eraldi
Integratsioon ja süsteemi testimine
- Programmid ja moodulid ühendatakse
- Testitakse süsteemi loogikat ja osade liidestamist
- Testitakse vastavust nõuetele (valideerimine)
Kasutamine ja hooldus
- Tarkvara kasutatakse
- Tarkvara muudetakse/täiustatakse, sest:
- Kasutajad avastavad vigu
- Ümbrus ja töökeskkond muutuvad
- Klient tahab lisafunktsionaalsuseid
Koskmudeli plussid ja minussed
PLUSS
- Kergesti arusaadav ja kasutatav
- Lihtne hallata tänu selle jäikusele – igast faasist on spetsiifiline ülevaade
- Üks etapp lõpetatakse, enne kui alustatakse teisega
- Töötab hästi väikeste projektidega, kus nõudmised on kindlalt paigas
- Protsessi ja tulemused dokumentatsioon on korras
MIINUS
- Hiline testimisperiood – muudatusi on raske ellu viia, kui testimise käigus selgub, et midagi on valesti
- Tarkvara on kasutatav vaid arenduse lõpus, mitte varem
- Kõrge riskitase ja teadmatus
- Mudel ei sobi keeruliste projektide jaoks
- Kehv mudel pikkade ja jätkuvate projektide jaoks
- Ei sobi ka projektidele, kus nõuetel on suur risk muutuda
- Projekti paindumatu jaotus faasideks
- Klient näeb tulemust alles lõpus ja valesti mõistetud nõuded lõppevad katastroofiga
Koskmudeli skeem
Põhiidee kohaselt jagatakse tegevused nii, et iga tegevus toimub jadamisi eraldi etapina. Olulise tähelepanekuna tuleb märkida, et eri autoritel on erinev etappide nimekiri
Waterfall model vs Spiral model
Aspekt | Koskmudell | Spiraalmudel |
Keerukus | Koskmudell on lihtne ja kerge. | Spiraalmudel on palju keerulisem |
Arendusmeetod | Koskmudell töötab järjestikuse meetodi alusel. | Kuigi spiraalmudel töötab evolutsioonilisel meetodil. |
Riskijuhtimine | Koskmudelis tuvastatakse vead või riskid ja need kõrvaldatakse pärast etappide lõpuleviimist. | Spiraalmudelis tuvastatakse ja parandatakse vead või riskid varem. |
Vastuvõtmine | Kliendid võtavad vastu koskmudeli. | Samal ajal kui arendajad võtavad vastu spiraalmudeli. |
Projekti suuruse sobivus | kohaldatav väikeste projektide puhul. | Spiraalmudel kasutatakse suurte projektide puhul. |
Planeerimine | Koskmudelis on vaja nõudeid ja varajase faasi planeerimist. | Kuigi spiraalmudelis on vajadusel vaja nõudeid ja varajase faasi planeerimist. |
Paindlikkus muutuste suhtes | Paindlikkus muutuste suhtes on koskmudelis keeruline. | Muutuste paindlikkus spiraalmudelis ei ole raske. |
Riski tase | Koskmudelis on suur risk. | Spiraalmudelis on väike summarisk. |
Kulud | Koskmudel on suhteliselt odav. | Kuigi spiraalmudeli maksumus on väga kallis. |
Klientide kaasamine | Klientide kaasamine on minimaalne | Spiraalmudelis on klientide kaasatus kõrge. |
Hooldus | See nõuab kõige vähem hooldust. | See nõuab tüüpilist hooldust. |
Raamistiku tüüp | See põhineb lineaarsel raamtüübil. | See põhineb lineaarsel ja iteratiivsel raamtüübil. |
Testimine | Testimine toimub pärast arenduse elutsükli kodeerimisetappi. | Testimine toimub pärast arendustegevuse faasi. |
Taaskasutatavus | Taaskasutatavus on äärmiselt ebatõenäoline. | Teatud määral on korduvkasutatavus võimalik. |
Klientide kontroll | Kliendi kontroll administraatori üle on väga piiratud. | Klientidel on kontroll administraatori üle, võrreldes vesilöögimudeliga. |