Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SOFTWARE
MANTENIMIENTO DEL SOFTWARE
Introducción
Introducción
MANTENIMIENTO DEL SW ¿QUÉ ES?
Definició
n de
requisito
s
Diseño
Codificació
ny
pruebas
unitarias
Integració
ny
pruebas
Mantenimien
to
Tipos de mantenimiento
1. Correctivo: cambios precisos para corregir
errores del software.
2. Adaptativo: modificaciones para adaptar el
software a los entornos en los que el sistema
opera.
3. Perfectivo: mejorar o añadir nuevas
funcionalidades debido a un cambio en los
requisitos.
4. Preventivo o evolutivo: mejora la calidad del
software sin modificar los requisitos
fundamentales. Se aplica Ingeniería Inversa y
Reingeniería
Tipos de Mantenimiento y Proceso
Actividades de
Mantenimiento
Tareas de mantenimiento
Establecer una organización de mantenimiento
Prescribir procedimientos de evaluación y de información
Definir una secuencia estandarizada de sucesos para cada petición
Establecer un sistema de registro de información de las actividades
Definir criterios de revisión y de evaluación de las tareas de mantenimiento
Mantenimiento de código
ajeno
Estudiar el programa antes de entrar en modo emergencia
Estudiar el flujo de control general
Evaluar la documentación existente
Hacer uso de los listados de referencias cruzadas
Hacer cambios con el mayor cuidado
No eliminar código hasta estar totalmente seguro
Insertar variables propias para evitar problemas
Mantener un registro de las actividades de mantenimiento
Evitar la necesidad de tener que tirar el programa y
volverlo a escribir
(Yourdon, 1975)
Dificultades de
mantenimiento
Gran parte del software actual es antiguo y está
limitado por restricciones de tamaño y espacio de
almacenamiento
Problemas por migraciones a nuevas plataformas.
re
Facilidad de Mantenimiento
Factores que afectan a la facilidad de mantenimiento
Factores asociados con el método de desarrollo aplicado.
Factores relacionados con el entorno de desarrollo. (Kopetz,
H.)
Evaluación de la facilidad de mantenimiento
Se puede evaluar indirectamente considerando los atributos de la
actividad de mantenimiento que se pueden medir.
Gilb (1979) proporciona un conjunto de métricas
relacionadas con el esfuerzo empleado durante el
mantenimiento:
Tiempo de reconocimiento del problema, de retraso
administrativo, de recolección de Herramientas de
mantenimiento, de análisis del problema, de especificación de
los cambios, tiempo activo de corrección o modificación, de
prueba local, de prueba global, de revisión del mantenimiento y
tiempo total de recuperación.
Calidad y Facilidad de mantenimiento
Métrica: facilidad de cambio
Métrica: Esfuerzo de mantenimiento
Se distribuye entre...
Actividades productivas. Análisis, evaluación, modificación del
diseño y codificación.
Actividades menos productivas. Interpretación y compresión.
(% tiempo)
Modificar el
código 19% Estudiar el
código 23%
Factores que afectan al
esfuerzo del mantenimiento
Mantenimiento preventivo: Reingeniería
Proceso de recuperación de la información de diseño de un software existente
para alterarlo o reconstruirlo en un esfuerzo de mejorar la calidad general
El software resultante implementa la función del sistema existente
El desarrollador añade nuevas funciones y/o mejora el rendimiento general
Se aplica en el mantenimiento preventivo. Los programas que sean susceptibles
de cambiar en un futuro cercano serán preparados para ese cambio
Se usa el análsis del sistema existente, técnicas de Ingeniería Inversa y, para la
etapa de reconstrucción, herramientas de Ingeniería Directa, de tal manera que
se oriente este cambio hacia mayores niveles de facilidad en cuanto a
mantenimiento, reutilización, comprensión o evolución.
¿Lo utilizamos?
Durante el mantenimiento puede llegar un momento en el que la complejidad del proceso nos haga
cuestionarnos la viabilidad de hacer reingeniería, entonces se nos plantea la siguiente pregunta…
¿Reingeniería o desarrollo?
Las aplicaciones que merecen el esfuerzo de la reingeniería son aquellas en la que se producen algunas
de las siguientes situaciones:
Alternativas:
Dejar el software como está
Comprar la aplicación
Desarrollar de nuevo
Aplicar reingeniería
Solución: realizar un análisis de costes y quedarse con lo que sea más beneficioso.
Mantenimiento Preventivo: Ingeniería
Inversa
Objetivos: