1.2.2.1 Koskmudel

Koskmudel (ka klassikaline mudel) on esimene kirjeldatud tarkvarasüsteemi elutsükli mudel, mis lähtus tavalistest tootmisprotsessidest ehituses, mehhaanikas vms. Mudeli kirjeldas Winston W. Royce 1970. aastal. Koskmudel on kõige vanem ja kõige rohkem kritiseeritud protsessimudel
Põhiidee kohaselt jagatakse tegevused nii, et iga tegevus toimub jadamisi eraldi etapina. Royce jagas protsessi järgmisteks põhietappideks (tasub tähele panna, et etappide nimekiri varieerub erinevate autorite esituses):
1. Nõuete määratlemine. See etapp võib olla ka jaotatud kaheks - süsteemi analüüs (kõik see, mis konkreetset tarkvara ümbritseb) ja nõuete analüüs. Dokumenteeritakse süsteemi käitumine, jõudlus, liides jne
2. Süsteemi ja tarkvara kavandamine. Keskendub põhilistele programmi omadustele nagu andmestruktuurid, tarkvara arhitektuur, liideste omadused ja protseduurilised ning algoritmilised detailid. Projekti kvaliteeti on võimalik hinnata. Tulemus dokumenteeritakse.
3. Teostus ja moodulite testimine. Projektis kirjeldatud süsteem programmeeritakse moodulite ja programmide kogumina ja need testitakse eraldi. Mida detailsem on projekt, seda lihtsam ja mehhaanilisem saab olla teostuse etapp.
4. Integratsioon ja süsteemi testimine. - programmid ja moodulid integreeritakse ning testitakse kogu süsteemi, peale testimist antakse toode kliendile. Testimisel keskendutakse nii loogilistele detailidele kui ka sellele, kas süsteem oma funktsionaalsuse osas nõudeid täidab (valideerimine).
5. Kasutamine ja hooldus - on tavaliselt kõige pikem faas. Süsteemi muudetakse, kui kasutajad avastavad vigu, ümbrus ja töökeskkond muutuvad või klient vajab uut funktsionaalsust. Faas kordab kõiki eelnevaid faase olemasoleva süsteemi muutmise raames.
Iga faasi tulemiks on üks või mitu dokumenti, mis kinnitatakse. Järgmine faas ei tohiks alata enne, kui eelmine on lõpetatud. Faasidel on teatav ülekate ja info edastamine ühest teise. Vt ka joonist 1.
Joonis 1-1. Koskmudel
Kommentaariks joonis 1 juurde - tihti joonistatakse
koskmudeli loogikat nii, et on vaid ülalt allapoole (eelmisest faasist
järgmisesse) suunduvad nooled. Eelnevate sammude juurde tagasi ei pöörduta,
samuti nagu majaehitusel ei pöörduta tagasi vundamendi juurde peale katuse
paigaldamist. Sel juhul oleks mudeli kohaselt üldse võimatu midagi süsteemis
hiljem muuta. Sellist varianti pidas ka Royce oma artiklis võimatuks. Royce
lisas tegelikult juba alguses iga etapi kohta tagasisidet kujutava noole.
Siiski ei ole tagasipöördumine igast etapist eelmisesse võimalik. Kui
testimise käigus avastatakse viga, mille juured on arhitektuuris, siis
koskmudeli kohaselt saab pöörduda tagasi arhitektuuri muutmise juurde alles
siis, kui tarkvara on kasutusse läinud (vt noolte suundi joonisel).
Kokkuvõte:
- Otsused süsteemi kohta tehakse varajases faasis ja süsteem ei pruugi lõpuks teha seda, mida kasutaja tahab (nõuded on varakult külmutatud) Samas ei tea ka klient alguses, mida ta tahab ja tema ebakindlus on täiesti loomulik.
- Projekti range jaotus faasideks ei luba kliendi muutunud nõuetele kergelt vastu tulla. Seega on mudel kasutatav siis, kui nõuded on selged ja nad muutuvad vähe.