Mantenimiento de Software
El mantenimiento de software es la modificación de un producto de software después de su entrega para corregir fallos, adaptarlo a un entorno cambiante y mejorar su función, rendimiento o mantenibilidad.
Definition
El mantenimiento de software es la totalidad de actividades requeridas para proporcionar un soporte rentable al software después de su entrega, incluyendo la corrección de defectos, la adaptación a nuevos entornos y la mejora de capacidades, preservando al mismo tiempo la integridad.
Scope
Este tema abarca las cuatro categorías de mantenimiento (correctivo, adaptativo, perfectivo, preventivo); el proceso de mantenimiento desde la solicitud de cambio hasta el análisis de impacto, la modificación, las pruebas y la liberación; la comprensión del programa y los desafíos de cambiar código desconocido; la mantenibilidad como atributo de calidad; y los estándares y métricas que rigen el trabajo de mantenimiento.
Core questions
- ¿Cómo se clasifican y priorizan los cambios de mantenimiento?
- ¿Qué pasos del proceso llevan una solicitud de cambio hasta una modificación liberada?
- ¿Cómo se analiza el impacto de un cambio propuesto antes de realizarlo?
- ¿Qué hace que el software sea mantenible y cómo se mide la mantenibilidad?
Key theories
- Categorías de mantenimiento
- El mantenimiento correctivo corrige fallos, el mantenimiento adaptativo se ajusta a los cambios ambientales, el mantenimiento perfectivo mejora o extiende la función y el rendimiento, y el mantenimiento preventivo mejora la mantenibilidad futura; las categorías no correctivas dominan el esfuerzo.
- Análisis de impacto
- Antes de implementar un cambio, el análisis de impacto identifica los componentes, interfaces y pruebas afectados, utilizando información de dependencia y trazabilidad para estimar el esfuerzo y los efectos en cascada, y para delimitar el riesgo.
Clinical relevance
Dado que el mantenimiento domina el costo total del software y la mayor parte de este es adaptativo y perfectivo en lugar de correctivo, el diseño para la mantenibilidad y el seguimiento de un proceso de mantenimiento disciplinado rigen directamente la economía a largo plazo de un sistema.
Evidence & guidelines
ISO/IEC 14764 define el proceso de mantenimiento y sus actividades, e ISO/IEC 25010 especifica subcaracterísticas de mantenibilidad como la modularidad, la modificabilidad y la capacidad de prueba.
History
Las encuestas de las décadas de 1970 y 1980 revelaron que el mantenimiento consume la mayor parte de los presupuestos de software y que el trabajo adaptativo y perfectivo supera a la corrección; esto redefinió el mantenimiento de una ocurrencia tardía a una fase central y gobernada por procesos, posteriormente estandarizada en ISO/IEC 14764.
Key figures
- Meir M. Lehman
- Bennet Lientz
- Ian Sommerville
Related topics
Seminal works
- iso14764
- swebok2014
- sommerville2015
Frequently asked questions
- ¿Qué tipo de mantenimiento consume la mayor parte del esfuerzo?
- Los estudios encuentran consistentemente que el mantenimiento adaptativo y perfectivo —adaptar el software a nuevos entornos y mejorarlo— juntos representan la mayor parte del esfuerzo de mantenimiento, muy por encima de la corrección de errores.
- ¿Por qué es tan difícil cambiar código antiguo?
- Los mantenedores deben primero comprender código que a menudo no escribieron, donde la justificación original y la documentación pueden faltar; comprender el sistema existente y los efectos en cascada de un cambio con frecuencia cuesta más que realizar el cambio en sí.