SOFTWARE
Ingeniería del Software II
CONTENIDO
●
Mantenimiento
●
Introducción
●
1.1 Ubicación dentro del ciclo de vida
●
1.2 Tipos de mantenimiento
●
1.3 Actividades de Mantenimiento
●
1.4 Tareas de Mantenimiento
●
2. Métricas yCalidad
●
2.1 Facilidad de Mantenimiento
●
2.2 Esfuerzo de Mantenimiento
●
3. Dificultades de Mantenimiento
●
4. Costo
●
5. Métodos de Mantenimiento
●
Reingeniería
●
Ingeniería Inversa
●
7. Herramientas de Mantenimiento
●
8. Caso práctico: Metodología MANTENA II
Introducción
Introducción
MANTENIMIENTO DEL SW ¿QUÉ ES?
Definición
de
requisitos
Diseño
Codificación
y pruebas
unitarias
Integración
y pruebas
Mantenimiento
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
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
diseño y codificación.
Actividades menos productivas. Interpretación y compresión.
Modificar el
código 19% Estudiar el
código 23%
Factores que afectan al esfuerzo del
mantenimiento
Mantenimiento preventivo: Reingeniería
“El objetivo de las ventajas existentes de la reingeniería es el ser más eficiente que
desarrollar totalmente el sistema” (Carnegie, 1995).
Reingeniería
Relaciones entre los términos asociados con la reingeniería:
Ciclo Reingeniería
El proceso de Reingeniería
Tecnología de la reingeniería
Reestructuración, redocumentación, anotaciones,
actualización de documentos.
Ingeniería para la reutilización, remodularización.
Mejora del Software Reingeniería de procesos de negocio.
Reingeniería de datos.
Análisis de facilidad de mantenimiento, análisis
económico.
Visualización.
Compresión del Software Análisis, mediciones.
Ingeniería inversa, recuperación del diseño.
Captura, conservación y Descomposición.
extensión del Ingeniería inversa y recuperación del diseño.
conocimiento sobre el Recuperación de objetos.
software Compensación de programas.
Mantenimiento preventivo: Reingeniería
¿Por qué es interesante?:
Reduce los riesgos de la evolución de la organización.
Ayuda a recuperar las inversiones realizadas en SW.
Cataliza la automatización del mantenimiento del SW.
¿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: