# Manteniment de programari

El manteniment de programari o manutenció de programari és una de les activitats més comunes en l'enginyeria de programari i és el procés de millora i optimització del programari després del seu lliurament a l'usuari final (és a dir; revisió del programa), i també correcció i prevenció dels defectes.
El manteniment de programari és també una de les fases en el cicle de vida de desenvolupament de sistemes (SDLC, sigla en anglès de System Development Life Cycle), que s'aplica al desenvolupament de programari. La fase de manteniment és la fase que ve després del desplegament (implementació) del programari al camp.

## Context

La fase de manteniment de programari involucra canvis al programari en ordre de corregir defectes i dependències trobades durant el seu ús així com l'addició d'una nova funcionalitat per a millorar la usabilitat i aplicabilitat del programari.
La fase de manteniment de programari és una part explícita del model en cascada del procés de desenvolupament de programari, el qual va ser desenvolupat durant el moviment de programació estructurada en ordinadors. Un altre gran model, el desenvolupament en espiral, desenvolupat durant el moviment de l'enginyeria de programari orientada a objectes, no fa una menció explícita de la fase de manteniment. Tot i així, aquesta activitat és notable, considerant el fet que dos terços del cost del temps de vida d'un sistema de programari involucren manteniment.
En un ambient formal de desenvolupament de programari, l'organització o equip de desenvolupament tindran algun mecanisme per a documentar i rastrejar defectes i deficiències. El programari, igual que la majoria d'altres productes, és típicament llançat al mercat amb un conjunt conegut de defectes i deficiències.
Les deficiències conegudes són normalment documentades en una carta de consideracions operacionals o notes de llançament (release notes) i, d'aquesta manera, els usuaris del programari seran capaços de treballar evitant les deficiències connegudes i conneixeran quan l'ús del programari seria inadequat per a tasques específiques.
Amb el llançament del programari (software release), altres defectes no documentats seran descoberts pels usuaris del programari. Tan aviat com aquests defectes siguin reportats a l'organització de desenvolupament, seran ingressats en el sistema de rastreig de defectes.

## Tipus de manteniment

A continuació s'assenyalen els tipus de manteniments existents, definits tal com s'especifiquen per la metodologia MÉTRICA:
* Perfectiu: Són les accions dutes a terme per millorar la qualitat interna dels sistemes en qualsevol dels seus aspectes: reestructuració del codi, definició més clara del sistema i optimització del rendiment i eficiència.
* Evolutiu: Són les incorporacions, modificacions i eliminacions necessàries en un producte software per cobrir l'expansió o canvi en les necessitats de l'usuari.
* Adaptatiu: Són les modificacions que afecten els entorns en què el sistema opera, per exemple, canvis de configuració del maquinari, programari de base, gestors de base de dades, comunicacions, etc.
* Correctiu: Són aquells canvis necessaris per corregir errors del producte de programari.
Cal assenyalar que, d'aquests 4 tipus de manteniment, només el correctiu i l'evolutiu entren en l'àmbit de MÈTRICA versió 3, ja que els altres dos requereixen activitats i perfils diferents als del procés de desenvolupament.

## Vegeu també

* Enginyeria de programari
* Gestió de projectes

## Referències

* ↑ Dhaduk, Hiren. «Software Maintenance - Confidently Manage a Cycle that Never Ends!» (en anglès americà), 01-02-2023. [Consulta: 25 juliol 2023].