Tarkvaraarenduse elutsükkel on protsess mille käigus tehakse mingisugune tarkvaratoode
Saab ka muuta juba olemasolevat tarkvaratoodet.
Tarkvara toode on midagi, mis saavutatakse Tarkvaraarenduse elutsükli käigus selle tulemine
ning mida klient või lõppkasutaja saab kasutada millegi tegemiseks. Tarkvaratoode võib olla kas
installeeritav programm, serveritarkvara, driver, või ükskõik muu rakendus, mis kasutaja jaoks
midagi teeb.
Elutsükli eesmärk on tagada, et valmistatakse kvaliteetne toode, mis vastab kliendi nõuetele
ning kasutaja vajadustele ning ootustele. Olgu need ootused siis funktsionaalsed või mittefunktsionaalsed.
Ideaalis on eesmärk ka tagada seda, et toode valmiks õigeaegselt, jääb oma eelarve piiridesse, töötab
kasutaja jaoks efektiivselt, on võimeline integreeruma kasutaja IT taristuga ja ei ole kulukas hooldada,
ega vajadusel täiendada.
Tarkvaraarenduse elutsükkel on oma sisemuselt jaotatud etappideks. Olenevalt mudelist need erinevad
aga üldiselt on igas mudelis olemas need 4 üldist etappi mingil kujul, kui otsene analoog olenevalt mudelist
puudub. On olemas Analüüs, Projekteerimine ja/või kavandamine, teostus ning hooldus.
Siin toimub tarkvaraprojektile vajalike nõuete selgitamine. Selgitatakse välja mida tahab klient, ning
mis lõppkasutajatel vaja on, mida nad sellest ootavad. Selgitatakse välja funktsionaalsed nõuded ja ka
mittefunktsionaalsed nõuded. Näiteks oleks kalorikalkulaatoril sellised nõuded:
| Funktsionaalsed nõuded | Mittefunktsionaalsed nõuded |
|---|---|
| Programm peab käima minema | Kasutajal on lihtne ja mugav programmiaknas navigeerida |
| Programm lubab kasutajal arvutada oma päevast tarbimist | Programm ei salvesta kasutaja isiklikku infot serveris |
| Programm laseb kasutajal valida olemasolevaid tooteid | Programm ei hõiva ebaloogiliselt palju kasutaja süsteemiressursse |
| Kasutaja saab arvutada kaloreid kodus tehtud söögi kohta | Kasutajal on lihtne ja mugav programmiaknas navigeerida |
Siin määratakse ära, süsteemi sisemine arhitektuur, osised, liidesed ja muud omadused.
Selle töö tulemusena tekib arendatavast tarkvara projektile kavand. Selles etapis analüüsitakse
Eelnevas etapis paika pandud nõudeid 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:
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 vigade vaba.
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ätkab tööd tõrgeteta.
Hooldusetapi raames saab klient ka esitada uusi nõudeid, mida projektile juurde arendada. See aitab
tootel püsida konkurentsivõimelisena.
Hooldusel on tähtis, et hooldav arendaja või meeskond oskaks lugeda ja aru saada eelnevate arendajate
koodist. See aitab kaasa projekti haldamisel kulude kokkuhoiule, lubab teostada hooldust kiiremini ja
aitab lihtsamini muuta.
Tarkvaraarenduse elütsüklis on kõik eeltoodud etapid mingil kujul olemas.
Alljärgnev nimekiri on näidetest erinevatest elutsüklimudelitest: