Vzdrževanje programske opreme je postopek, s katerim se računalniški program spremeni ali posodobi po izdaji. Medtem ko izraz »vzdrževanje« lahko pomeni popravila in popravke napak, je le del tega postopka namenjen temu namenu, ki se imenuje »popravek«. Veliko vzdrževanja programske opreme se uporablja za »prilagodljivo« delo, ki zagotavlja, da je program še naprej učinkovit in uporaben v spreminjajočih se okoljih, pa tudi za »popolne« postopke, ki izboljšajo funkcionalnost. »Preventivno« vzdrževanje se uporablja za olajšanje procesa v prihodnosti z zagotavljanjem dodatne dokumentacije in orodij za lažji razvoj kasnejših posodobitev.
Velik del vzdrževanja programske opreme se izvaja s pomočjo popravkov, ki jih ustvari razvijalec in nato objavijo javnosti. Te datoteke namesti uporabnik računalnika in spreminjajo funkcionalnost in zasnovo osnovnega programa v sistemu. To se naredi po izdaji programa, čeprav bi moral zgodnji razvoj programske opreme upoštevati vzdrževanje.
Korektivno vzdrževanje programske opreme je proces razvoja sprememb programa, ki popravljajo napake ali odpravljajo težave. To ne dodaja nobenih novih funkcij, razen če že obstajajo, vendar jih ni mogoče uporabiti zaradi napake v programiranju. Le približno ena četrtina vsega vzdrževanja programske opreme se uporablja za odpravo težav, vendar se uporabniki programa pogosto vidijo kot najpomembnejši element.
Veliko vzdrževanja programske opreme se imenuje »prilagodljivo«, ki se uporablja za prilagajanje programa za delovanje v novem okolju. Programi so običajno zasnovani in razviti za delovanje v določenem operacijskem sistemu (OS). Čeprav lahko neka programska oprema deluje v novejših različicah, obstaja veliko programov, ki tega ne morejo storiti. Prilagodljivi popravek programa bi lahko spremenil kodo, da bi ji omogočil pravilno delovanje v novem sistemu, s čimer bi bil aktualen in uporaben.
Popolno vzdrževanje programske opreme se uporablja za dodajanje novih funkcij izdelku in za spremembe, ki lahko neposredno vplivajo na uporabnika. Podjetje lahko izda program za obdelavo besedil, na primer, ki vključuje nekaj funkcij za preverjanje črkovanja. Če izdajo popravek, ki posodablja slovar v programu in ustvarja dodatne možnosti za odpravljanje napak, bi to veljalo za popolno vzdrževanje. Te nadgradnje so običajno precej manjše, saj večje prenove običajno zahtevajo izdajo nove različice ali programske opreme “odjemalca”.
Razvijalci lahko delajo tudi na preventivnem vzdrževanju programske opreme, ki se uporablja za še enostavnejše prihodnje spremembe. Po razvoju lahko podjetje ugotovi, da obstaja možnost za hrošče, ki se še ni razvilo. Morda izdajo popravek, ki odpravlja to težavo, preden dejansko postane težava. Dodatno dokumentacijo in čiščenje kode lahko izvedete tudi za lažje ali nepotrebno prihodnje vzdrževanje.