En enxeñaría de software, o **mantemento de software** é o proceso de melloría e optimización dun software xa desenvolvido (versión de produción), como tamén a reparación de defectos. O mantemento do software é unha das fases do proceso de desenvolvemento de software, e ocorre inmediatamente despois da entrada do software en produción. 
Esta fase inclúe:

* mudanzas no software para corrixir defectos e deficiencias que se atoparon durante a utilización polo usuario
* novas funcionalidades para mellorar a aplicabilidade e usabilidade do software.

O mantemento do software inclúe innúmeras técnicas específicas; unha delas é a separación estática, a cal se usa para identificar todos os códigos do programa afectados por algunha variábel. Isto acostuma a ser útil en programas de refactoración de código.

A fase de mantemento de software é unha parte explícita do modelo en fervenza do proceso de desenvolvemento de software que se creou durante a fase de programación estruturada da ciencia da computación. O outro modelo principal, o modelo en espiral, foi desenvolvido durante a fase de orientación ao obxecto da enxeñaría de software, non fai ningunha mención explícita a fase de mantemento. Independentemente disto, esta actividade é importante, considerando o feito que dous terzos do custo do tempo de vida do sistema de software está relacionado co mantemento.

No ambiente de desenvolvemento de software formal, o equipo de desenvolvemento deberá ter algún mecanismo para documentar e depurar/rastrear os defectos e deficiencias. O software ponse operativo, incluso con algúns problemas, cando a organización o decide, sopesando o impacto das deficiencias e incluso dos posibeis defectos descoñecidos.

Os problemas coñecidos son normalmente rexistrados nun documento de consideracións operacionais ou notas de implantación de forma que os usuarios do software sexan capaces de evitar os problemas coñecidos e que se reproducirán cando o uso do software imposibilite certas funcións específicas.

Coa implantación do software, os usuarios do software descubrirán outros defectos e deficiencias non documentadas, unha vez que tales problemas sexan reportados á organización de desenvolvemento, pasaron a ser depurados.

As persoas envolvidas na fase de mantemento de software traballarán no problemas coñecidos, localizaranos, e prepararán novas versións do software, coñecidas como versións de mantemento, as cales actualizarán a documentación de problemas.

Véxase tamén
------------

### Ligazóns externas

* Paper on Software Maintenance as Part of the Software Life Cycle (da Universidade de Tufts) *(en inglés)*
* Journal of Software: Evolution and Process  (ISSN 2047-7481) *(en inglés)*
* Software entropy *(en inglés)*

| * v
* c
* e
Desenvolvemento e enxeñaría de software |
| --- |
| Fases | 
* Requisitos
* Arquitectura
* Programación
* Probas
* Implantación
* Mantemento

 |
| Modelos | 
* Áxil
* Cleanroom
* Iterativo
* RAD
* RUP
* Espiral
* Fervenza

 |
| Disciplinas de apoio | 
* Xestión de configuración
* Documentación
* Calidade (SQA)
* Planificación de proxectos
* Xestión de proxectos

 |

|  |  |
| --- | --- |
| Control de autoridades | 
* Wd: Q940053
* BNF: 12122565g
* GND: 4197460-8
* LCCN: sh85124299
* MAG: 101317890

 |