Tarkvaraarenduse elutsükkel on protsess, mille käigus tehakse mingisugune tarkvaratoode saab ka muuta juba olemasolevat tarkvaratoodet.
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.
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.
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.
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 |
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:
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.
alljärgnev nimekiri on näidetest erinevatest elutsüklimudelitest: