jueves, 17 de octubre de 2019

Mantenimiento de Software

Es el proceso general de cambiar un sistema después de que este ha sido entregado.
Estos cambios pueden ser por:

  • Errores de código.
  • Errores de diseño.
  • Errores de especificación.
  • Nuevos requerimientos.

Vamos a dividir el mantenimiento en tres tipos
  1. Mantenimiento para reparar defectos del software. (Ordenados de menor a mayor costo)
    • Errores de código.
    • Errores de diseño.
    • Errores de requerimiento.
  2. Mantenimiento para adaptar el software a diferentes entornos. Surge cuando cambia el entorno del sistema (hardware, sistema operativo, software de soporte...).
  3. Mantenimiento para añadir/modificar las funciones del sistema: surgen cuando cambian la organización o el negocio. En general el cambio requerido es mucho mayor que en los otros tipos de mantenimiento.
Los costos mas altos se dan en los casos de tipo 2 y 3.
La documentación y comentado del código es un trabajo realizado durante la etapa de desarrollo, para que el software sea mas fácil de entender y de cambiar, en general reduce los costos de mantenimiento.
Agregar funcionalidad luego del desarrollo es costoso por:
  1. Estabilidad del equipo de desarrollo. En general los equipos se disuelven.
  2. Responsabilidad contractual. Contratos separados de desarrollo y mantenimiento.
  3. Habilidades del personal. Personal no familiarizado con el dominio de la aplicación.
  4. Edad y estructura del programa. Mas difícil de comprender y modificar.

Predicción del mantenimiento

Es adecuado predecir los posibles cambios .....
  1. Un cambio se realiza evaluando que componentes del sistema se verán afectados sin perder mantenibilidad.
  2. Los cambios tienden a degradar la estructura del sistema por los que reduce la mantenibilidad.
  3. El costo del mantenimiento depende del numero de cambios y los costos de implementacion.
En los sistemas con una relación compleja con su entorno se debe considerar:
  1. El numero y la complejidad de las interfaces del sistema.
  2. El numero de requerimientos del sistema intrínsecamente volátiles. -> Que cambian.
  3. Los procesos de negocio donde se utiliza el sistema.
Cuanto mas complejo es un sistema mas caro es de mantener. Es recomendable identificar los componentes complejos, y, en lo posible, cambiarlos por otros mas simples y, así, hacerlo mas mantenible.

Los datos obtenidos del proceso nos ayudan a predecir la mantenibilidad. Ej. métricas.
  1. Numero de peticiones de mantenimiento correctivo.
  2. El tiempo medio requerido para el análisis del impacto.
  3. El tiempo medio empleado para implementar una petición de cambio.
  4. El numero de peticiones de cambio pendientes.

El proceso de evolución

Las propuestas de cambio del sistema son los conductores de la evolución de los sistemas.
Cambios: requerimientos, reparación de errores, nuevas ideas stakeholdors, propuestas para mejorar el software por los desarrolladores.

Los cambios

Son cíclicos y continúan durante toda la vida del sistema.

Proceso de evolución del sistema 
Pueden surgir implicaciones de los cambios, es decir los cambios propuestos pueden modificarse.
En casos urgentes puede saltearse la etapa de análisis formal del cambio.
Surge el problema de querer documentar el cambio y requerir mas cambios, perdiendo la concordancia entre el sistema y la documentación.
 Se envejece el software por soluciones funcionales rápidas pero no las mas apropiadas.

Estos problemas se resuelven con una solicitud de cambio persistente a la solución de urgencia.



No hay comentarios.:

Publicar un comentario

Listado de cases de Bases de datos y sus temas

 Listado de clases de Sistemas de Bases de Datos Clase Clases de 02/04 Clase Clase Temas: Claves foráneas. Clase Clas...