Waterfall ehk kosemudel

Waterfall on üks esimesi tarkvara arendus mudeleid tavaliste
tootmisprotsesside eeskujul, kus iga etapp eelneb järgmisele. Tagasipöördumine eelmisesse
on keeruline. Eelnevas etapis vea avastamine, tähendab seda, et vea juurde saab tagasi
pöörduda alles siis, kui tarkvara on kasutusse läinud.

  1. Etapp - Nõuete määrtlemine:
    Selles etapis dokumenteeritakse arendatava toote/tarkvara/süsteemi nõuded, käitumine,
    sihyriistvara jms. mis on arendatava tarkvara taatlusliku funksioneerimine tarbeks vajalikud
    Vahest jaotatakse see etapp ka omakorda kaheks - Süsteemianalüüs ja Nõuete analüüs.

  2. Etapp - Süsteemi ja tarkvara kavandamine:
    Teises etapis kavandatakse arendusel olev süsteem ja tarkvara keskenduses nende põhilistele
    omadustele. Põhiomaduseks võivad olla: Andmestruktuurid, tarkvara arhitektuur, liidesed,
    liideste omadused ning protseduurilised ja algoritmilised detailid. kavandamise tulemused
    dokumenteeritakse mille abil hinnatakse teostuse käigus projekti kvaliteet

  3. Etapp - Teostus ning moodulite testimine:
    Eelnevalt dokumenteeritud kavandi järgi toimub kolmandas etapis tarkvara/süsteemi arendus.
    Arendustöö käigus arendatakse programm moodulhaaval või moodulite kogumina. Peale
    programmeerimist teostatakse moodulite ja kogumite teistimised. Olenevalt eelnevalt
    dokumenteeritud kavandi detailsusest tuleneb sellest etapis projekti arenduslihtsus.
    Mida rohkem detailse on kavandatud, seda lihtsam on arendustöö

  4. Etapp - Integratioon ja süsteemi testimine:
    Toimub kogu takvarasüsteemi testimine. Peale tesitmist tarnitakse toode kliendile või
    kasutajate sihtrühmale. Tesitakse sellest vaatepunktist kas süsteem teeb seda mis
    eelnevalt dokumenteeritud ning testiakse ka seda et süsteemis esinevad detailid on
    loogilised.

  5. Etapp - kasutamine ja hooldus
    Kõige pikem tarkvara elutsüklis olev etapp. Siin toimub vigade parandus, funktsionaalsuse
    muutmine, (kas siis kliendi, turu, keskkonna, või sihtrühma sisendi/vajadusena). Arendustöö
    teostamiseks korratakse kõiki eelmisi etappe, kuid siis ainult süsteemi muutmise eesmärgil.
    mitte enam nullist millegi uue arendamise jaoks.

Iga etapi etapi tulemusena tekib dokument (kas siis üks või mitu) mis etapis saavutatud tulemit.
Kõik dokumendid kinnitatakse. Järgmine etapp ei tohi olla samaaegselt töös kui eelmine pole lõpetatud.
Kuigi mingi ülekate siis on, ning infot on võimalik edastada ühtest etapist edasi teise.

Head Vead
kindlad nõuded Mitte paindlik
lihtne hallata Mis sa tahad alguses, on mis sa lõpus saad