Tarkvaraarenduse elutsükkel on protsess mille käigus tehakse mingisugune tarkvaratoode
Saab ka muuta juba olemasolevat tarkvaratoodet.
Tarkvara toode on midagi, mis saavutakse Tarkvaraarenduse elutsükli käigus selle tulemina
ning mida klient või lõppkasutaja saab kasutada millegi tegemiseks. Tarkvaratoode võib olla kas
intalleeritav 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õutele
ning kasutaja vajadustele ning ootustele. Olgu need ootused siis funktsionaalsed või mittefunktsionaalsed.
Eesmärk on ka tagada, et toode valmis õ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 etaapi 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õppkasutajadel 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 lubab kasutajal arvutada oma päevast tarbimist | Kasutajal on lihtne ja mugav programmiaknas navigeerida |
| Programm laseb kasutajal valida valida olemasolevaid tooteid | Programm toetab vaegnägijale programmi kasutust |
| Kasutaja saab arvutada kaloreid kodus tehtud söögi kohta | Programm ei hõiva ebaloogiliselt palju kasutaja süsteemiressursse |
| Programm saadab märgundeid telefonile hoiatuste ja eesmärkide saavutuse kohta | Programm ei salvesta kasutaja isiklikku infot serveris |
Siin määratakse ära, süsteemi sisemine arhitektuur, osised, liidesed ja muud omadused.
Selle töö tulemusena tekib arendatavast tarkvaraprojektile 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 kavandamisetapp kaheks, kus Üleüldine struktuur selgitatakse välja
detailidest eraldi. Need jaotatakse siis omakorda eraldi kaheks alametapiks:
Selles etapis, põhimedes 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 kodus kui ka
kasutaja vaatepunktist, ja tagatakse et valmistatav tarkvaratoode on üleüldiselt vigade vaba.
Pärast lõpetatud teostuseetappi antakse toode kliendile ja kastajaile ü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 ussi 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 aendajate
koodist. See aitab kaasa projekti haldamisel kulude kokkuhoiule, lubab tostada hooldust kiiremini ja
aitab lihtsamini muuta.
Tarkvaraarenduse elutsüklis on küik eeltoodud etapid mingil kujul olemas.
Alljärgnev nimekiri on näidetest erinevatest elutsüklimudelitest: