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