De la definición de mantenimiento del estándar IEEE 1219 cabe distinguir tres causas fundamentales que
desencadenan las actividades de mantenimiento.
Las causas u origen de las actividades de mantenimiento del software pertenecen a tres grupos principales:
• Eliminación de defectos del producto software.
Las causas por tanto son todas ellas resultado de tener que modificar el software para que cumpla con los
requisitos del usuario ya establecidos.
• Adaptar eI producto software a.
Para que siga cumpliéndolos cuando cambia su entomo.
• Incluir mejoras en eI diseño-
Cuando se quiere mejorar la manera en que los cumple.
Por otro lado, la definición anterior implica que eI mantenimiento debido a los defectos es a posteriori, es
decir, se desencadena cuando el defecto tiene como resultado un fallo que se detecta.
En ocasiones, se realizan actividades de mantenimiento preventivo, que intentan detectar y corregir fallos
latentes (que se supone pueden existir, aunque aún no se han -manifestado').
Estas causas tienen su correlación directa con las denominadas -categorías de mantenimiento', que en el
estándar ISO/IEC 147641 incluye las siguientes categorías definidas por Lientz y Swanson 2(1978) que son:
• Mantenimiento correctivo: modificaciones reactivas a un producto software hechas después de la entrega
para corregir defectos descubiertos.
•Mantenimiento adaptativo : modificación de un producto software realizada después de la entrega para
permitir que un producto software siga pudiéndose utilizar en un entorno diferente.
• Mantenimiento perfectivo: modificación de un producto software después de la entrega para mejorar eI
rendimiento o la mantenibilidad.
Una consecuencia importante de las definiciones anteriores es que no se considera mantenimiento a los
cambios introducidos para incluir nuevos requisitos funcionales. No obstante, no hay un consenso unánime en
este sentido, y de hecho, eI concepto de evolución del software amplia eI espectro del mantenimiento a cambios
en un sentido amplio. De hecho, hay autores que consideran que el mantenimiento perfectivo sí incluye cambios
en la funcionalidad.
Las categorías adaptativa y perfectiva son ambas mejoras, en contraposición el mantenimiento correctivo.
Por último, un estándar de mantenimiento del IEEE (1998) define una categoría adicional, la de
mantenimiento de emergencia, cuando los cambios se deben hacer sin planificación previa, para mantener un
sistema en operación. Todas las anteriores definiciones son las que se encuentran habitualmente en los libros, No
obstante, la clasificación más exhaustiva se encuentra en el articulo de Chapin (2001).