Tarkvara Arendusprotsess Programmeerimine Multimeedia

Tagasi

Tarkvaraarenduse Metoodikad

Waterfall V-shape
Inkrementaalne Spiraalmudel Prototüüpimine Big Bang
Agile DevOps Extreme Programming

Mis on Tarkvaraarenduse Elutsükkel (SDLC - Software Development Life Cycle)?


Tarkvaraarenduse elutsükkel on protsess, mille käigus tehakse mingi tarkvaratoode. Sellega saab ka muuta juba olemasolevat tarkvaratoodet.

Mis on tarkvara toode?

Tarkvara toode 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 rakendus või teenus.

Mis on tarkvara elutsükli eesmärk?


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, et toode valmiks õigeaegselt, jääks oma eelarve piiridesse, töötaks
kasutaja jaoks efektiivselt, on võimeline integreeruma kasutaja IT taristuga ja ei ole kulukas hooldada
ega vajadusel täiendada.

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


Tarkvaraarenduse elutsükkel on oma sisemuselt jaotatud etappideks. Olenevalt mudelist need erinevad,
aga üldiselt on igas mudelis olemas need 4 üldist etappi mingil kujul, kuigi otsene analoog olenevalt mudelist
puudub. On olemas Analüüs, Projekteerimine ja/või Kavandamine, Teostus ning Hooldus.



Mida nendes etappides tehakse?


Analüüsi etapp

Siin toimub tarkvaraprojekti 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 lubab kasutajal arvutada oma päevast tarbimist Kasutajal on lihtne ja mugav programmiaknas navigeerida
Programm laseb kasutajal valida olemasolevaid tooteid Programm toetab vaegnägijatele programmi kasutust
Kasutaja saab arvutada kaloreid kodus tehtud söögi kohta Programm ei halva ebaloogiliselt palju kasutaja süsteemiressursse
Programm saadab meeldetuletusi telefonile hoiatuse ja eesmärkide saavutuse kohta Programm ei salvesta kasutaja isiklikku infot serveris


Projekteerimise etapp


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


Arhitektuuri kavandamisel keskendutakse siis üldisele struktuurile: määratakse ära erinevad kõrgema
taseme komponendid, seosed teiste tarkvara osade vahel jms. Detailses kavandamise etapis aga keskendutakse
juba individuaalsetele komponentidele, funktsioonidele, objektidele, algoritmidele jms.


Teostuse etapp


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
terve arendusmeeskonna, 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 valmiv tarkvaratoode on üldiselt vigadevaba.


Hoolduse etapp


Pärast lõpetatud teostuse etappi 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.
Hoolduse etapi 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.