El mantenimiento del sistema

Sus estandares

IEEE 1219
La modificación de un producto software
después de su entrega al cliente o usuario para corregir defectos

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.

Se tiene las siguientes
definiciones

Mantenibilidad
Capacidad de un producto software de ser modificado. Estas modificaciones incluyen correcciones, mejoras, o adaptaciones a cambios en el entorno.

Efecto domino (ripple effect)
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

Correctivo
Localiza y corrige defectos en
un programa tras su
entrega.

Adaptativo
Modificación para adaptarse a un
cambio en el entorno (ej. dolar,
pantallas Táctiles).

Perfectivo
Modificación para detectar y
corregir fallos latentes antes
de que se conviertan en carencias.

Preventivo
Modificación para detectar y
corregir fallos latentes antes de
que se conviertan en fallos
operacionales.

Principales Retos Mantenimiento
Software

El efecto iceberg
No es lo mismo producir que mantener

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

Soluciones técnicas para el
problema de mantenimiento

Ingeniería Inversa
Reconstruir el proceso de ingeniería de un producto a partir de ciertos artefactos de dicho producto.

Reingeniería
Examen y modificación de un sistema para reconstruirlo en una nueva forma.

Reestructuración
Modificación del software para hacerlo mas
fácil de entender y cambiar o menos
susceptible de incluir errores en cambios posteriores.

Transformaciones
Manipulación, por medio de transformaciones automáticas ejecutadas por un computador, del código o modelo de un sistema para añadirle/modificarle/eliminarle elementos.