Mis on tarkvaraarenduse elutsükkel ehk SDLC - Software Development Life Cycle


Tarkvaraarenduse elutsükkel on protsess, mille käigus tehakse mingisugune tarkvaratoode saab ka muuta juba olemasolevat tarkvaratoodet.

Mis on tarkvaratoode?

Tarkvaratoode on midagi, mis saavutatakse tarkvaraarenduse elutsükli käigus selle tulemina ning mida klient või lõppkasutaja saab kasutada millegi tegemiseks. tarkvaratoode võib olla kas installeeritav programm, serveritarkvara, driver või ükskõik milline muu rakendus, mis kasutaja jaoks midagi teeb.

Mis on tarkvaraarenduse elutsükli eesmärk?

Elutsükli eesmärk on tagada, et valmistatakse kvaliteetne toode, mis vastab kliendi nõuetele ning kasutaja vajadustele ning ootustele- olgu need siis funktsionaalsed või mittefunktsionaalsed. ideaalis on eesmärk tagada seda, et toode valmib õigeaegselt, jääb om,a eelarve piiridesse, töötab kasutaja jaoks efektiivselt, on võimeline integreeruma kasutaja IT taristuga ning ei ole kulukas hooldada või vajadusel täiendada.


milline näeb välja tüüpiline tarkvaraarenduse elutsükkel?

tarkvaraarenduse elutsükkel on oma sisemuselt jaotatud etteppideks. olenevalt mudelist need erinevad, aga üldiselt on igas mudelis olemas need 4 etappi mingil kujul, kui otsene analoog olenevalt mudelist puudub. on olemas analüüs, projekteerimine ja /või kavandamine, teostus ning hooldus.


mida nendes etappides tehakse?


analüüsi etapp

siin toimub tarkvaraprojektile vajalike nõuete selgitamine. selgitatakse välja, mida tahab klient ning mis lõppkasutajatele vaja on, mida nad sellest ootavad. selgitatakse välja funtsioonaalsed nõuded
ja ka mittefuntsionaalsed nõuded. näiteks oleks kalorikalkulaatoril sellised nõuded:

>
funktsionaalsed nõuded mittefunktsionaalsed nõuded
programm lubab kasutajal arvutada oma päevast tarbimist kasutajal on lihtne ja mugav programmiaknas navgeerida
programm kaseb kasutajal valida omelasolevaid tooteid programm toetab vaegnägijate programmi kasutamist
kasutaja saab arvutada kaloreid kodus tehtud söögi kohta programm ei hõiva ebaloogiliselt palju kasutaja süsteemiressursse
programm saadab märguandeid telefonile hoiatuste ja eesmärkide saavutamise kohta programm ei salvesta kasutaja isiklikku infot serveris


projekteerimisetapp


siin määratakse ära süsteemi sisemine arhitektuur, osised, liidesed ja muud omadused. selle töö tulemusena tekib arendatavale tarkvaraprojektile kavand. selles etapis analüüsitaks
eelnevas etapis paikapandud nõudeid ja kirjeldatakse selle abil struktuur. projekti kavand ngi aluseks kuidas järgmises etapis projekti teostama hakatakse.
mõnikord aga jaotakase kavandamise etapp kaheks, kus üleüldine struktuur selgitatakse välja detailidest eraldi. need jaotatakse siis omakorda kaheks eraldi alametapiks:

arhitektuuri kavandamises keskendutakse siis üleüldisele struktuurile: määratakse ära erinevad kõrgema taseme komponendis, seosed teiste tarkvaraosade vahel jms. detailses kavandamisetapis aga keskendutakse juba
individuaalsetele komponentidele, funktsioonidele, objektidele, algoritmidele jms.


teostusetapp

selles etapis, põhinedes eelnevalt saadud kavandile, algabki arendustöö, mille käigus reaalselt nüüd tarkvaratoode valmis saadaksegi. kuna eelnevalt kirjeldati ka süsteemi pisidetailid, saab siin rakendada
tervet arendusmeeskonda, kus iga liige või iga alamgrupp arendab ühte kirjeldatud detaili. kogu projekt on eri osade kaudu paralleelselt arenduses, siin toimub ka testimine, otsitakse vigu nii koodis kui ka kasutaja
vaatepunktist ja tagatakse, et valmistatav tarkvaratoode on üleüldiselt vigadevaba.


hooldusetapp


pärast lõpetatud teostusetappi antakse toode kliendile ja kasutajale üle ning kõik, mis toimub pärast üleandmist, on hooldus. hoolduse all saab teostada edasisi parandusi, toote optimeerimist ja monitooringut,
mille abil tagatakse, et tarkvaratoode jätjab töös tõrgeteta.
hooldusetapi raames saab klient esitada uusi nõudeid, mida projektile juurde arendada. see aitab tootel püsida konkurentsivõimeline.
hooldusel on tähtis, et hooldav arendaja või meeskond oskaks lugeda ja aru saada eelnevate arendajate koodist. See aitab projekti haldamisel kulude kokkuhoiule, lubab teostada hooldust kiiremini ja aitab lihtsamini muuta.


tarkvaraarenduse elutsüklis on kõik eeltoodud etapid mingil kujul olemas.



erinevad tarkvaraarenduse elutsüklid:

alljärgnev nimekiri on näidetest erinevatest elutsüklimudelitest: