Inkrementaalne arendusmudel
Inkrementaalne arendusmudel on üks viis kuidas lahendada kosemudeli jäike tsüklit. See aitab
Arendusmeeskonnale toime tulla muudatustega paremini. Muudatused võivad tulla kas äritegevusest,
kliendi soovidest, turu olukorra muutmisest, tehnologiate muutmisest, saduse muutmsisest või
lõppkasutaja tagasisidest. Kuna kosemudelis keset arendustööd on muudatustega toimetulek
keeruline, on kosemudeli kasutamise puhul muudatuste sisseviimine üsna kulukas, siinkohal tulebki
appi inkrementaale arendusmudel. Mudel ise on siis ajagraafikupõhine ja ei tugine erinevalt
kosemudelist täielikult valmiskirjelduatud kavandile. Selles mudelis saab arendada erinevaid
programmiosi samaaegselt või erinevatel aegadel.
Inkrementaalsesa arendusmudelis aitab samaegset arendustööd teha kindlad tegevused mida
kosemudelis ei ole. Nende tegevuste abuil on võimalik kliendile kuvada programmile keskse
tähtsustega osi, enne kui neid täielikult arendama hakatakse. Tehakse näiteks, kas mingisugune
kasutajaliidese prototüüp, või programmeeritakse vähese testimise läbinud MVP
mis omab ainult programmi nõetes kirjeldatud keskest funktsiooni. Näitaks kui
tegemist on failikonverterteriga, siis ei oma ta suurt kasutajaliidese kujundust, ega isegi
kõiki formaate mis lõpp-programm teisendama peab, vaid ainult demonstreerib seda
funktsionaalsust osaliselt.
Kuidas on inkrementaalses arenduses tegevuste käik?
Nõuete Kirjelsdus
Kirjeldatakse ära üldjoontes mida valminud tarkvaratoode tegema peab. Nõuded jaotatakse ka
ära tähtsamataks ja vähemtähtsamataks. Tähtsamad nõuded on tavaliselt need, mis kliendile
rohkem väärtust toob. Siin määratakse ära ka kuidas arendustöö toimima hakkab, ehk millistest
inkrementides klient oma toodet saama hakkab ehk kui pika aja tagant.
Iga inkrement peab tarnima kliendile mingisuguse toimiva toote osakese.
Süsteemi arendus
Kui nõuded on olemas, ning ära jaotatud prioriteedi järgi hakatakse toodet tarnima peale nüüd
teostatavat arendusprotsessi. Siin arendataksegi välja vastavlt nõuetele programmiosa.
Iga inkrementi saab arendada kasutades erinevaid eksisteerivaid arendusmudeleid.
Näiteks kui on programmi osa, mis väga palju muutmist ei vaja näiteks faili arvutist
lugemist, või sinna kirjutamist siis on seda programmiosa (või funktsiooni) võimalik
arendada ka näiteks jäiga mudeli (kosemudeliga) või agiilse mudeliga. See milline arendus-
mudel kõige paremini sobib, on arendusmeeskonna otsustada, vastavlt sellele milline
programmiosa parasjagu arendusel on.
Arendusega samaaegne nõuete täiendus
Kui arendatava programmiosa nõuded on külmutatud (ehk neid ei saa hetkel muuta), siis muude
mittearendusesolevate osade nõudeid on võimalik muuta, ning nüüd kui mingisugune programmiosa
äbib parasjagu arendustsüklit on võimalik muuta muid nõudeid, mille vastav inkrement kas
hetkel arenduses enam ei ole või veel ei ole. Kõik muud nõuded on lahtised. See tähendab
ka ühtlasi seda, et üks programmi osa on nõuete väljaselgitamise lõpetanud, saab seda
arendama asuda, enne kui nõuded täielikult valmis on.
Tarne ja integratsioon
Nõuetele vastava programmiosa valmimisel tarnitakse programmiosa ehk inkrement kliendile
Klient saab siis selle koheselt kasutusse võtta või omapoolselt läbi testida ja
täpsustada edasis projekti nõudeid ja anda tagasisidet valminud programmi osa kohta
Selle põhjal võidakse tuletada juba valminud osale uusi nõudeid. Klient saab siis ka
valminud osa koheselt integreerida muu olemasoleva keskkonna või eelnevalt arendatud toote
üsteemidega.
Inkrementaalse arenduse head ning halvad küljed
| Head küljed |
Halvad küljed |
Kulutused on väiksemad - Kuna kasutaja nõuded on muutuvad, aga muudutasi
saab sisse viia arendustsükli käigus, on nende muudatuste kulud väiksemad
kuna arendustsükkel ise ei ole vaja lõpuni viia, enne muudatuste sisse-
viimist. |
Progressi jälgimine on keerukas - Arendustöö progressi ei jälgita enam
arendatud nõuete järgi, kuna need ei ole arendustöö alguses valmis, vaid
progressi jälgitakse arenduskiirusepõhiselt kui palju igas ajavahemikus
nõuetest arendada on võimalik. See tekitab siis halduritele nõude, et nad
vajavad pidevalt dokumentatsiooni arendustöö hetke kulgemise kohta. Kui
arendustöö on ka kiire, siis vahest on ka selle dokumentatsiooni hankimine
keeruline, kuna iga väikese versiooni kohta ei ole mõtet seda lihtsalt
tekitadagi. |
Kliendi tagasiside on kohene - olevmasolevale arendustööle saab meeskond
keset arendust tagasiside, et vajadusel muuta oma nõudeid, ja seega arenduse
suunda. Klient näeb ka kui palju on tehtud.
|
Süsteemi struktuur aja jooksul degredeerub - Kuna arendatakse juurde
pidevalt uusi osi, ning ka selliseid osi mida alguses planeeritud ei olnud
siis kipub arendatava toote sisemine süsteem spagetistuma. Selle vältimiseks
kulutatakse lisaressursse koodi refaktoreerimisele, et sisemine struktuur
korras hoida. Kui korrashoidu ei teostata, on hilisem muudatuste ja uute
valmisosade integratsioon tunduvalt keerulisem |
Tarne on kiirem - klient saab juba funktsioneerivad osad kohe pärast
arendustöö lõppu kasutusele võtta, ning klient saab sellest varem kasu
kui näiteks tarkvaratootega, mida arendatakse jäiga arendusmudeliga |
|
Arendusmudeli joonis
![]()
Mis vahe on inkrementaalsel SDLCl ja interatiivsel SDLCl?
Kuna inkrementaalne arendus ja interatiivne arendus on lihtsalt sarnased sõnad
kipuvad nad inimestel sassi minema, aga nad siiski tähendavad erinevaid asju
Inkrementaalne arendus
- on tarkvaratoote arendus kus iga inkremendik
raames valmib toimiv tarkvara osa. Valmissaadud tarkvaraosake integreeritakse
muu süsteemiga mis eelnevalt arendatud.
Iteratiivne arendus
- on muutmisstrateegia kus parandatakse või
tehakse ringi juba olemasolev süsteem, et seda siis täiustada, ehk olemasolev
susteem saab uue ja parema variandi - ehk iteratsiooni.
Allikas (eucip)