Spiraalmudel


Spiraalmudel on alamliik iteratiivsest arendusmudelist mida kirjeldas Barry Boehm 80ndate
keskel. Tootearenduse elutsükkel kujutatakse spiraalina, kus iga spiraalikeeru sees (mida
nimetatakse ka korduseks) teostatakse midagi projektiga seotut. Näiteks võib olla korduse
eesmärk teostada kavandatava rakenduse turu-uuringuga mille abil selgitatakse välja turu
vajadus kavandatava toote jaoks, ning otsustatakse kas arendustöö on üldse teostamist
väärt. Teine kordus on näiteks tarkvaratoote enda teostatavuse uuring, kas vajalikud tehno-
loogiad selle arenduseks eksisteerivad või mitte, või kas annab tehnoloogiat ise välja
töötada. Kordused võivad olla ka seotud nõuete väljaselgitamisega, kavandamisega, jne jne.
Mitu kordust on tavaliselt seotud ka siis selle tarkvaratoote enda arendusega (programmeerimisega)



Kordused?


Kordus on spiraalmudeli üks "ring" ja korduste läbi toimub iteratiivne tarkvaratoote
arendusprotsess. Aga võrreldes tavalise arendusprotsessiga, ei saa arvestada et üks kordus
on üks etapp. Igas korduses on eraldi oma sektorid mis on ühe korduse "etapid"/sektorid (keerud).
Töömaht kordusest-kordusesse võib muutuda. Kuigi kordused ise ei ole kindlad etapid, on neid
tarkvara arenduse elutsüklis niipalju kuni projekti nõuded täidetakse, mistõttu on nad oma
astmelt *asenduslikud* etappidega, isegi kui nad ei ole samad.



Millised sektorid ühes korduses olla võivad?


Iga kordus, olenevalt siis täpsest mudelist sisaldab 3 kuni 6 sektorit, kuid Boehmi algses
mudelis on neid neli:

  1. Eesmärkide seadmine

    - Pannakse paika, mis on käimasoleva korduse eesmärk,
    tuvastatakse võimalikud kitsaskohad, pannakse paika mis selle korduse lõpul valmima peab,
    korduse juhtplaan, kitsaskohtade alusel tuletatakse riskid ja üritatakse nende jaoks paika
    panna tagavaruplaanid või alternatiivsed lahendusvõimalused. See keerd valmistab ette
    ülejäänud korduse.

  2. Riskide hindamine ja maandamine

    - Iga riski jaoks, mis ettevalmistavas keerus
    leiti, teostatakse vastav riskianalüüs. Riskianalüüsi eesmärk on uurida kas piisab
    tagavaruplaanist, kui plaani pole, milline see olla võiks, ning siis ka uute tegevuste,
    mis peaks seda riski praktiliselt ka siis maandama, ära määratlemine. Siin näide:
    Tuvastatud risk: Tõenäosus Võimalik intsident Maandav tegevus
    Serverid ei pea mängijate
    koormusele uue versiooni
    väljalaskel vastu.
    Suur Serverid käivad maha,
    Mängijad ei saa osta uusi
    digitaalobjekte.
    Äri kannatab kasumikahju.
    Mängijad ei saa mängida
    Ajutiselt suurendame
    serveriparki uue versiooni
    kahe esimese nädala raames.
    Teeme stresstestimist et näha
    kas ennustatav kasutajatehulk
    mahub olemasolevale süsteemile
    korraga peale.
  3. Toote väljaarendus ning valideerimine

    - Siin valitakse keeru teostamiseks eesmärgi-
    põhiselt ja riskipõhiselt arendusmudel, ning selle abil arendatakse keerus vastav iteratisoon.
    Tarkvara valideerimine toimub läbi tootel teostatava testimise.
  4. Planeerimine

    - Peale arendustööd on planeerimiskeerd, kus valmissaadud osa, koos
    ülejäänud valminud tootega vaadatakse üle, ning langetatakse otsus järgmise korduse
    teostuseks. Jätkamist pooldava otsuse puhul tehakse ka järgmise korduse/"etapi" plaan



Riskihaldus spiraalmudelis


Spiraalmudeli kõige unikaalsem omadus ongi, et siin on riskihaldus kogu protsessi juures esmatähtis.
Risk on mingisugune võimalik süsteemiauk, kus võib tekkida puudulik, või mittesoovitud olukord mis
kliendile kahju toob, või arendusprotsessile negatiivset mõju omab. Seetõttu ongi spiraalmudel iga
iteratsiooni, või korra juures keskendunudki riskide haldamisele.



Arendusmudeli joonis




Allikas (eucip)