Tarkvararenduse elutsükkel on protsess, mille käigus tehakse mingisugune tarkvaratoode
Saab ka muuta juba olemasolevat tarkvaratoodet
Tarkvaratoode on midagi, mis saavutatakse tarkvaraelutsükli käigus selle tulemina
ning mida klient või lõppkasutaja saab kasutada 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.
Elutsükli eesmärk on tagada, et valmistatakse kvaliteente toode, mis vastab kliendi nõuetele ning
vastab kliendi vajadustele ja mõlemi ootustele. Olgu need ootused siis funktsionaalsed või mittsfunktsionaalsed
Ideaalis on eesmärk tagada ka seda, et toode valmiks õigeaegselt, jääb eelarve piiridesse, töötab kasutaja
jaoks efektiivselt, on võimeline integreeruma kasutaja IT-taristuga ja ei ole kulukas hooldada ning mida saab
vajadusel ka täiundada
Tarkvara elutsüklid on oma sisemuselt jaotatud etappideks. Olenevalt mudelist need erinevad
aga üldiselt on igas mudelis olemas need 4 üldist etapi mingi kujul, kui otsene analoog vastavalt mudelile
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õppkasutajal vaja on, mida nad sellest ootavad. Selgitatakse välja funktsionaalsed nõueded (ehk mida
päriselt toode tegema peaks) ja mittefunktsionaalsed nõuded (ehk kuidas välja näeb, palju korraga kasutada
saab, millel riistvara jooksma peaks)
Näiteks oleks kalorikalkulaatoril sellised nõuded:
| Funktsionaalsed nõuded | Mitteunktsionaalsed nõuded |
| Programm lubab kasutajal arvutada oma päevas tarbimist | Kasutajal on lihtne ja mugav programmiaknas navigeerida |
| Programm laseb kasutajal valida olemasolevaid tooteid | Programm toetab vaegnägijaile programmi kasutust |
| Kasutaja saab arvutada kaloreid kodus tehtud söögi kohta | Programm ei hõiva ebaloogiliselt palju kasutaja süsteemiressursse |
| Programm saadab telefonile märguandeid hoiatuste ja eesmärkide saavutatuse kohta | Programm ei salvesta kasutaja isiklikku infot serveris |
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õudeid ja kirjeldatakse selle abil struktuur. Projekti kavand ongi
aluseks kuidas järgmises etapis projekti teostama hakatakse
Mõnikord aga jaotatakse kavandamis etapp kaheks, kus üleüldine struktuur selegitatakse välja detailidest
eraldi. Need jaotatakse siis omakorda eraldi kaheks alametapiks:
Selles etapis, põhinedes eelnevalt paika pandud kavandile, algabki arendustöö mille käigus reaalselt nüüd
tarkvaratoode valmis saadakse. Kuna eelnevalt kirjeldati ka süsteemi pisidetailid, saab siin rakendada kogu
arendusmeeskonna saamaaegselt, kus iga liige või alamgrupp arendab ühte kirjeldatud detaili. Kogu projekt on eri
osade kaudu paralleelselt arendatud. Selle etapi lõpu poole toimub testimine, otsitakse vigu nii koodis kui ka
kasutaja vaatepunktis, ja tagatakse, et valmistatav tarkvaratoode on üleüldiselt veavaba ning omab kõrget
käitluskvaliteeti
Pärast lõpetatud teostusetapi antakse toode kliednile 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ätab tööd tõrgedeta.
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 arusaada eelnevate arendajate koodist.
See aitab kaasa projekti haldamise kulude kokkuhoiule ning lubab teostada hooldust kiiremini ja aitab lihtsamini
muuta.
Tarkvaraarenduse elutsüklis on kõik eeltoodud etapid mingi kujul olemas