Tarkvara viitab nii arvuti operatsioonisüsteemidele endile kui ka programmidele ja rakendustele, mis on loodud arvutites töötamiseks. Tarkvaraarendus on tarkvara kujundamine ja kirjutamine, sealhulgas programmi arhitektuuri ja kasutajaliidese arendamine ning lähtekoodi programmeerimine. Tarkvaraarenduse protsess on lähenemine tarkvaraarendusele ja selle protsessi jaoks on palju hästi välja töötatud mudeleid. Üldiselt sisaldavad need variatsioone nõuete analüüsi tegemise, toote spetsifikatsiooni, tarkvaraarhitektuuri loomise, koodi juurutamise, toote testimise ja dokumenteerimise, koolituse ja toe pakkumise ning väljalaske hooldamise ja täiustamise etappide kohta. Olenemata sellest, millist mudelit kasutatakse, võib tarkvara arendusprotsess mõnikord olla suunatud uue toote arendamisele, samas kui mõnikord on see keskendunud läbivaatamisele – näiteks kui luuakse vigade parandamiseks punktväljaanne – ja mõnikord võib see valmistuge olemasoleva tarkvara uueks versiooniks, lisades olulisi funktsioone ja pakkudes veaparandusi.
Tarkvaraarendusprotsessi Waterfall Model on varajane mudel, millel on ka omased piirangud. See näeb ette rangelt ühesuunalise lähenemise arendusele, liikudes ühesuunaliselt läbi tarkvaraarenduse etappide järjestuse, pöördumata kunagi tagasi eelmisele etapile või muutmata spetsifikatsiooni, kui arendus on alanud. Spiraalmudel seevastu kasutab iteratiivset protsessi, mille käigus nõuete jadale, millele järgneb projekteerimine, juurutamine ja lõpuks testimine, järgneb teine tsükkel, mille käigus lisatakse rohkem funktsioone ja komponente. Tarkvaraarendusprotsessi agiilsetes mudelites – mida on mitmeid – on arendusprojektid jagatud nädalast kuuni kestvateks alamhulkadeks, mida nimetatakse ajakastideks, millest igaüks läbib miniatuurse versiooni tervest tarkvaraarendusprotsessist, sealhulgas väljalaskest aadressil lõpp. Agile arenduse muud funktsioonid hõlmavad koostööd tegeva meeskonna lähedust ja klientide kasutamist tootele reageerimiseks kogu protsessi vältel.
Tarkvaraarendusprotsess võib suure ettevõtte ja üksiku programmeerija jaoks olla kardinaalselt erinev. Näiteks võib kommertstarkvara väljaandja, nagu Sibelius Software®, Avid Technology® osa, kulutada mitu aastat iga versiooni tarkvaraarenduse protsessile ja välja anda sadade MB suuruse tarkvararakenduse, mida kasutavad tuhanded inimesed. . Teisest küljest võib selline isik nagu Roman Molino Dunn, The Music Transcriber®, kes programmeerib pistikprogrammi vastuseks kellegi soovile, et ta saaks kommertstarkvaraga midagi teisiti teha, luua 4 kb suuruse tarkvara. äärmisel juhul tunni jooksul pärast idee tekkimist.