Mis on tarkvaraarenduse elutsükkel (SLDC - Software Development Life Cycle)

tarkvaraarenduse elutsükkel on protsess mille käigus tehakse mingisugune tarkvaratoode
Saab ka muuta juba olemasolevat tarkvaratoodet.

Mis on tarkvaratoode?

Tarkvara toode on midagi, mis saavutatakse tarkvaraarenduse elutsükli käigus selle tulemina
ning mida klient või lõppkasutaja saab kasutada soovitud eesmärgi saavutamiseks või probleemi lahendamiseks.
Tarkvaratoode võib olla kas installeeritav programm, serveritarkvara, draiver, või ükskõik mis muu
rakendus mis kasutaja jaoks midagi ära teeb.

Mis on tarkvaraarenduse elutsükli eesmärk?

Elutsükli eesmärk on tagada, et valmitatakse kvaliteetne toode, mis vastab kliendi nõuetele, ning
kasutaja vajadusele ja mõlemi otsusele. Olgu need otsused siis funktsioonaalsed või mittefunktsionaalsed.
Ideaalis on eesmärk tagada ka seda, et toode valmiks õigeaegselt, jääb eelarve piiridesse, töötab kasutaja
jaoks efektiivseks, on võimeline integreerima kasutaja IT-taristuga ja ei ole kulukas hooldada ning mida
saab vajadusel ka täiendada.

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

Tarkvaraarenduse elutsüklid on oma sisemuselt jaotadud etappideks. Olenevalt mudelist need erinevad
aga üldiselt on igas mudelis olemas need 4 üldist etappi mingi kujul, kui otsene analoog vastavalt mudelile
puudub. On olemas Analüüs, Projekteerimine ja/või Kavandamine, Toestus ning Hoodlus.



Mida nendes etappides tehakse?


Analüüsi etapp

Siin toimub tarkvaraprojeltile vajalike nõuete selgitamine. Selgitatakse välja mida tahab klient, ning
mis lõppkasutajal vaja on, mida nad sellest ootavad. Selgitatakse välja funktsionaalsed nõuded (ehk mida
päriselt toode tegema peaks) ja mittefunktsionaalsed nõuded ( ehk kuidas välja näeb, palju korraga kasutad
saab, millisel riistvara jooksma peab)
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 navigeerida
Programm laseb kasutajal valida olemasolevaid tooteid. Programm toetab vaegnägijate programmi kasutust.
Kasutaja saab arvutada kaloreid kodus tehtud söögi kohta Programm ei hõiva ebaloogiliselt palju kasutada süsteemiressursse


Projekteerimise etapp:

Siin määratakse ära süsteemi sisemine arhitektuur, osised, liidesed ja muud vajalikud omadused.
Selle töö tulemusena tekib arendatavast tarkvaraprojektist kavand. Selles etapis analüüsitakse
eelnevas etapis paikapandud nõuded ja kirjeldatakse selle abil struktuur. Projekti kavand ongi
aluseks kuidas järgmises etapis projekti teostama hakatakse.
Mõnikord aga jaotatakse kavandamisetapp kaheks, kus üleüldine struktuur selgitatakse välja detailidest
eraldi. Need jaotatakse siis omakorda eraldi kaheks alametapiks:


Arhitektuuri kavandamises keskendutakse siis üleüldisele struktuurile: määratakse ära erinevaid kõrgema taseme
komponendid, seosed teiste tarkvara osade vahel, jms. Detailses kavandamisetappis aga keskendutakse juba
individuaalsetele komponendidele, funktsiooonidele, objekdidele, algoritmidele jms.


Teostusetapp

Selles etapis, põhinedes eelnevalt paika pandud kavandile, algabki arendustöö mille käigus reaalseslt nüüd
tarkvaratoode valmis saadetaksegi. Kuna eelnevalt kirjeldati ka süsteemi pisidtailid, saab siin rakendada kogu
arendusmeeskonda samaaegselt, kus iga liiga või iga alamgrupp arendab ühte kirjeldatud detaili. Kogu projekt on eri
osade kaudu parallelselt arenduses.


Hooldusetapp

Pärast lõpetatud teostisetappi antakse toode kliendile ja kasutajale üle, ning kõik mis toimub pärast üleandmist
on hooldus. Hoolduse all saab teostada edasisi parandusi, toote optimiseerimist ja monitooringut mille abil
tagatakse, et tarkvaratoode jätkab tööb tõrgeteta.
Hooldusetappi raames saab klient ka esitada uusi mõteid, mida projektile juurde arendada. See aitab tootel püsida
konkuretsivõimelisena.
Hooldusel on tähtis, et hooldav arendaja või meeskond osaks lugeda ja aru saada eelnevate arendajate koodist.
See aitab kaasa projekti haldamisel kulude kokkuhoiule ning lubab teostada hooldust kiiremini.


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



Erinevad Tarkvaraarenduse Elutsükli Mudelid