La modificación de un producto software después de su entrega al cliente o usuario para corregir defectos, para mejorar el rendimiento u otras propiedades deseables.
ISO/IEC 14764
Conjunto de actividades destinadas a proporcionar soporte económicamente rentable para un determinado producto software.
Estas actividades se realizan tanto antes de la entrega del producto como después de la entrega del mismo.
Definiciones
Mantenibilidad
Capacidad de un producto software de ser modificado. Estas modificaciones incluyen correcciones, mejoras, o adaptaciones a cambios en el entorno, los requisitos o las especificaciones funcionales.
Efecto domino
Un determinado cambio en un producto software se dice que genera un efecto domino cuando a consecuencia del cambio debemos realizar cambios adicionales en el sistema.
Estabilidad de un diseño software
Capacidad de resistencia al efecto domino que tendrá un sistema software derivado de dicho diseño cuando es modificado.
Tipos de mantenimiento software
Perfectivo
Modificación para detectar y corregir fallos latentes antes de que se conviertan en carencias. Modificación para modificar o añadir nuevas funcionalidades
Preventivo
Modificación para detectar y corregir fallos latentes antes de que se conviertan en fallos operacionales. Mejorar las propiedades del software. (Ej. recodificar para aplicar patrones de diseño).
Correctivo
Adaptativo
Localiza y corrige defectos en un programa tras su entrega (ej. IVA al 15%, agujeros de seguridad). Puede ser urgente o no urgente.
Modificación para adaptarse un cambio en el entorno (ej. dolar, pantallas Táctiles).
Principales Retos Mantenimiento Software
El efecto iceberg.
No es lo mismo producir que mantener
Diferentes medidas de productividad entre desarrollo y mantenimiento
Código heredado (legacy code)
Desarrollado con tecnologías y técnicas "anticuadas".
No hay documentación.
Si la hay, esta en notación Benito & Manolo, que ya no trabajan en la empresa.
Reescribirlo entero no es factible.
El sistema no tiene porque estar bien diseñado, programado, ni haber sido desarrollado siguiendo un proceso de ingeniería.
Principales Problemas Mantenimiento Sw
Efectos domino y efecto iceberg.
Cambios ad-hoc, ausencia metodológica del cambio
Ausencia de documentación adecuada (decisiones de diseño).
Degradación calidad del producto
Solución para el mantenimiento software
Establecer procedimientos claramente definidos y estandarizados para el mantenimiento software.
Asignarle los recursos adecuados, tanto físicos y económicos como humanos.
Usar técnicas para control de calidad, tanto sobre el producto como sobre el proceso.
Soluciones técnicas para el problema de mantenimiento