Tarkvaraarenduse elutsükkel on protsess, mille käigus tehakse tarkvaratoode. Saab ka muuta juba olemasolevat tarkvaratoodet.
Tarkvara toode on midagi, mis saavutatakse tarkvaraarenduse elutsükli käigus. Seda saab klient või lõppkasutaja kasutada soovitud eesmärgi saavutamiseks või probleemi lahenduseks. Tarkvaratoode võib olla installeeritav programm, serveritarkvara, draiver või mõni muu rakendus, mis kasutaja jaoks midagi ära teeb.
Elutsükli eesmärk on tagada, et valmistatakse kvaliteetne toode, mis vastab kliendi ja kasutaja ootustele. Eesmärk on, et toode valmiks õigeaegselt, jääks eelarve piiridesse, töötaks efektiivselt, oleks võimeline integreeruma IT-taristuga, oleks kergesti hooldatav ning vajadusel täiendada võimalik.
Tarkvaraarenduse elutsüklid jagunevad etappideks. Üldiselt on igas mudelis olemas neli etappi: Analüüs, Projekteerimine, Teostus ja Hooldus.
Siin toimub tarkvaraprojektile vajalike nõuete selgitamine. Selgitatakse välja, mida klient ja lõppkasutaja soovivad ning millised on funktsionaalsed ja mittefunktsionaalsed nõuded. Näiteks kalorikalkulaatori nõuded:
| Funktsionaalsed nõuded | Mittefunktsionaalsed nõuded |
|---|---|
| Programm lubab kasutajal arvutada oma päevast tarbimist | Kasutajal on lihtne ja mugav programmis navigeerida |
| Programm laseb kasutajal valida olemasolevaid tooteid | Programm toetab vaegnägijatel programmi kasutust |
| Kasutaja saab arvutada kalorid tehtud söögi kohta | Programm ei hõiva ebaloogiliselt palju süsteemiresursse |
| Programmid saadab märguandeid eesmärkide saavutuste kohta | Programm ei salvesta kasutaja isiklikku infot serveris |
Siin määratakse süsteemi arhitektuur, osised, liidesed ja vajalikud andmed. Tulemusena tekib tarkvaraprojekti kavand, mis määrab, kuidas järgmises etapis arendustöö toimub. Mõnikord jaotatakse kavandamine kaheks alametapiks:
Arhitektuuri kavandmises keskendutakse kõrgema taseme struktuurile ja komponentidele. Detailse kavandamise etapis keskendutakse individuaalsetele komponentidele, funktsioonidele, objektidele ja algoritmidele.
Siin algab arendustöö vastavalt kavandile. Meeskond arendab eri osasid paralleelselt. Etapi lõpupoole toimub testimine, otsitakse vigu nii koodis kui kasutajavaates, tagades kvaliteetse toote.
Pärast üleandmist teostatakse hooldust: veaparandused, optimeerimine, monitooring. Klient võib esitada uusi nõudeid, et toode püsiks konkurentsivõimeline. Hooldusel on oluline, et arendaja mõistaks eelnevate meeskondade koodi, mis säästab aega ja kulusid.