-
Evolución y Mantenimiento del Software
- Qué es la evolución del software
- Importancia del mantenimiento
- Cuestiones asociadas al coste
- Predicción del mantenimiento
- Proceso Evolutivo
- Procesos de evolución
- Mantenimiento y su clasificación
- Sistemas socio-técnicos
- Estrategias de evolución de un sistema heredado
- Evaluación de los sistemas heredados
Evolución y Mantenimiento del Software
Qué es la evolución del software
Todas las actividades de programación que se orientan a generar una nueva versión de un software a partir de una versión anterior operativa. M.Lehman
La aplicación de las actividades y procesos de mantenimiento del software que generan una nueva versión operativa de un software, con una funcionalidad de usuario o propiedades cambiadas, a partir de una versión anterior junto con los procesos y actividades de garantía de calidad y con la gestión de esos procesos. Chapin
- Mantenimiento: mejora, optimización, corrección y prevención
- Evolución: generación de una nueva versión
- Conservación: mantener operativo un sistema viejo
Importancia del mantenimiento
En empresas 95% de los recursos está dedicados al mantenimiento, los sistemas granders y complejos tienen un largo período de vida. Hay que realizar cambios en el software para corregir errores y para implementar nuevos requisitos que surgen. Se conoce como Barrera de Mantenimiento.
Cuestiones asociadas al coste
- Analizar los cambios desde la perspectiva técnica y de negocio
- Los subsistemas no son independientes
- No se registran las decisiones de diseño original
- La estructura original se va corrimpiendo por el cambio.
Predicción del mantenimiento
- La relación entre el sistema y su entorno
- El número y la complejidad de las interfaces del sistema
Proceso Evolutivo
En la actualidad, la diferencia entre desarrollo y mantenimiento es irrelevante. La tendencia actual es ver el desarrollo y el mantenimiento dentro de un proceso único continuo y evolutivo. Se conoce al ciclo de vida del software de forma completa y continua.
Procesos de evolución
Procesos de volución surge de distintas peticiones de cambio:
- Requisitos ya existentes no integrados aún
- Peticiones de nuevos requisitos
- Reparaciones de errores
- Ideas nuevas y mejoras indicadas por el equipo de desarrollo
Los procesos de identificación de cambios y evolución del sistema son cíclicos y continúan durante toda la vida del sistema.
Gestión de Configuraciones
Seguimiento para asegurar de versinoes correctas en cada entrega
Mantenimiento y su clasificación
Actuaciones comunes
- Corrección de defectos
- Creación de nuevas funcinoalidades
- Mejora de la funcinoalidad y del rendimiento
Tipos de mantenimiento
Mantenimiento perfectivo
mejorar o añadir nuevas funcinoalidades
Mantenimiento adaptativo
mejorar o añadir nuevas funcinoalidadesadaptar el sistema a los cambios
Mantenimiento correctivo
corregir defectos en el hardware o en el software
Mantenimiento preventivo
facilitar el mantenimiento futuro
Métricas de predicción del mantenimiento
- El número de peticiones de mantenimiento correctivo
- Tiempo medio requerido para el análisis de impacto
- Tiempo medio empleado en implementar una petición de cambio
- El número de peticiones de cambio pendientes
Sistemas socio-técnicos
Las sistemas que incluyen software son de dos tipos:
- Sistemas técnico-informáticos
- Sistemas socio-técnicos
Características de los sistemas socio
- Propiedades emergentes
- No deterministas
- Grado de apoyo a los objetivos organizacionales
Estrategias de evolución de un sistema heredado
- Desechar completamente el sistema
- Dejar el sistema sin cambios y continuar con un mantenimiento regular
- Reemplazar todo o parte del sistema con un nuevo sistema
- Hacer reingeniería del sistema para mejorar su mantenibilidad
Evaluación de los sistemas heredados
Perspectiva técnica y de negocio
Según la calildad y el valor decidimos la acción que hacemos
Evaluar el valor de negocio
- Uso del sistema
- Proocesos de negocio soportados
- Confiabilidad del sistema
- Salidas del sistema
Evaluar la perspectiva técnica
Tanto la aplicación en si mismo y el entorno del mismo
Factores utilizados en la evaluación de la Aplicación
Compresión, Documentación, Rendimiento, Lenguaje de programación, Gestión de configuración, Datos de prueba, Habilidades del personal
Factores utilizados en la evaluación del Entorno
Estabilidad de proveedor, Tasas de fallos de ejecución, Edad, Rendimiento de sistema, Coste de mantenimiento, Interporabilidad