El software no se degrada ni necesita de un mantenimiento físico periódico, como otras
obras de ingeniería civil o electrónica, sin embargo, el software está en continua evolución y el proceso de su mantenimiento puede ser muy difícil.
Aquí se presentan las principales técnicas actuales apara abordar el mantenimiento correcto de un sistema software complejo en sus cuatro facetas más importantes: las funciones diarias del sistema, las modificaciones del sistema, perfeccionamiento de su funcionalidad y
conservación de los niveles de desempeño. Además se introducen algunas medidas basadas en modelos (Belady--Lehman, Pfleeger, COCOMO,...) para evaluar lo efectivo que puede ser el proceso de mantenimiento.
1. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y Evolución del Software
M.I. Capel
ETS Ingenierías Informática
y Telecommunicación
Universidad de Granada
Email: manuelcapel@ugr.es
Desarrollo de Software
Ingeniería de Software (3er curso de Grado)
M.I.Capel Tema 5 1/83
2. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Índice
1 Introducción
Tipos de sistemas y su mantenimiento
Mantenimiento de los sistemas software
Importancia de la gestión correcta en el tiempo
2 El Proceso de Cambio de un Sistema
Comportamiento evolutivo de los sistemas
Plan de Gestión de los cambios
Gerencia de los cambios
3 Actividades de Mantenimiento
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
4 Gestión de la Configuración
Conceptos fundamentales y estándares actuales
Marcos de trabajo y herramientas gestión de la configuración
M.I.Capel Tema 5 2/83
3. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Índice
1 Introducción
Tipos de sistemas y su mantenimiento
Mantenimiento de los sistemas software
Importancia de la gestión correcta en el tiempo
2 El Proceso de Cambio de un Sistema
Comportamiento evolutivo de los sistemas
Plan de Gestión de los cambios
Gerencia de los cambios
3 Actividades de Mantenimiento
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
4 Gestión de la Configuración
Conceptos fundamentales y estándares actuales
Marcos de trabajo y herramientas gestión de la configuración
M.I.Capel Tema 5 2/83
4. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Índice
1 Introducción
Tipos de sistemas y su mantenimiento
Mantenimiento de los sistemas software
Importancia de la gestión correcta en el tiempo
2 El Proceso de Cambio de un Sistema
Comportamiento evolutivo de los sistemas
Plan de Gestión de los cambios
Gerencia de los cambios
3 Actividades de Mantenimiento
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
4 Gestión de la Configuración
Conceptos fundamentales y estándares actuales
Marcos de trabajo y herramientas gestión de la configuración
M.I.Capel Tema 5 2/83
5. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Índice
1 Introducción
Tipos de sistemas y su mantenimiento
Mantenimiento de los sistemas software
Importancia de la gestión correcta en el tiempo
2 El Proceso de Cambio de un Sistema
Comportamiento evolutivo de los sistemas
Plan de Gestión de los cambios
Gerencia de los cambios
3 Actividades de Mantenimiento
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
4 Gestión de la Configuración
Conceptos fundamentales y estándares actuales
Marcos de trabajo y herramientas gestión de la configuración
M.I.Capel Tema 5 2/83
6. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas y su mantenimiento
Mantenimiento de los sistemas software
Importancia de la gestión correcta en el tiempo
Mantenimiento
Definición
“Cualquier trabajo hecho para cambiar el sistema después de
ponerlo en operación"
El software no se degrada ni necesita de un mantenimiento
“‘físico" periódico, como otras obras de ingeniería
Sin embargo, el software está en continua evolución y el
proceso de su mantenimiento puede ser muy difícil
M.I.Capel Tema 5 3/83
7. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas y su mantenimiento
Mantenimiento de los sistemas software
Importancia de la gestión correcta en el tiempo
Mantenimiento
Definición
“Cualquier trabajo hecho para cambiar el sistema después de
ponerlo en operación"
El software no se degrada ni necesita de un mantenimiento
“‘físico" periódico, como otras obras de ingeniería
Sin embargo, el software está en continua evolución y el
proceso de su mantenimiento puede ser muy difícil
M.I.Capel Tema 5 3/83
8. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas y su mantenimiento
Mantenimiento de los sistemas software
Importancia de la gestión correcta en el tiempo
Evolución de un sistema software
Aspectos a tratar
Las funciones diarias del sistema
Las modificaciones del sistema
Perfeccionamiento de su funcionalidad
Conservación de los niveles de desempeño del sistema
M.I.Capel Tema 5 4/83
9. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas y su mantenimiento
Mantenimiento de los sistemas software
Importancia de la gestión correcta en el tiempo
Mantenimiento de sistemas hard y soft
Sistemas Software
Se diseñan e implementan para que se incorporen cambios a
lo largo de todo su ciclo de vida, a diferencia de los sistemas
hardware–exclusivos
Mutabilidad de los sistemas
Alta si los requerimientos del sistema son muy
dependientes del contexto de ejecución del sistema
Dependencia con el tipo de sistema: S, P, o E
M.I.Capel Tema 5 5/83
10. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas y su mantenimiento
Mantenimiento de los sistemas software
Importancia de la gestión correcta en el tiempo
Diferencias entre mantenimiento y desarrollo de
software
Control de los Cambios
Los cambios afectan a etapas del ciclo anteriores y
posteriores a la actual
Modularización de componentes de código
Trazabilidad de los requerimientos hacia/desde las
pruebas
Aplicación de los principios de la IS
El costo del ciclo de vida de un sistema se incrementa con
el paso del tiempo
Comportamiento evolutivo de los sistemas software
M.I.Capel Tema 5 6/83
11. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas y su mantenimiento
Mantenimiento de los sistemas software
Importancia de la gestión correcta en el tiempo
Características del mantenimiento del software
Dificultades
Un difícil mantenimiento tiene un impacto importante en
los costes reales del software
Novedad del software
Plazo de vida del sistema
Dependencia de entornos de ejecución cambiantes
Calidad del diseño y del código
El esfuerzo de mantenimiento de un sistema software se puede
modelar empíricamente
M.I.Capel Tema 5 7/83
12. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas y su mantenimiento
Mantenimiento de los sistemas software
Importancia de la gestión correcta en el tiempo
Características del mantenimiento del software
Dificultades
Un difícil mantenimiento tiene un impacto importante en
los costes reales del software
Novedad del software
Plazo de vida del sistema
Dependencia de entornos de ejecución cambiantes
Calidad del diseño y del código
El esfuerzo de mantenimiento de un sistema software se puede
modelar empíricamente
M.I.Capel Tema 5 7/83
13. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas y su mantenimiento
Mantenimiento de los sistemas software
Importancia de la gestión correcta en el tiempo
Medida y estimación del esfuerzo de mantenimiento
Facilidad de mantenimiento del software
Se trata de un atributo externo del software
Resultado de varios factores: calidad del código,
especificación, diseño, documentación y plan de pruebas
Medidas
Predicen la probabilidad de que un sistema sea fácil de
mantener
Se deberían proporcionar al cliente junto con el software
M.I.Capel Tema 5 8/83
14. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas y su mantenimiento
Mantenimiento de los sistemas software
Importancia de la gestión correcta en el tiempo
Medida y estimación del esfuerzo de mantenimiento
Facilidad de mantenimiento del software
Se trata de un atributo externo del software
Resultado de varios factores: calidad del código,
especificación, diseño, documentación y plan de pruebas
Medidas
Predicen la probabilidad de que un sistema sea fácil de
mantener
Se deberían proporcionar al cliente junto con el software
M.I.Capel Tema 5 8/83
15. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas y su mantenimiento
Mantenimiento de los sistemas software
Importancia de la gestión correcta en el tiempo
Gestión de Configuración del Sistema
Seguimiento de los cambios
Cuanto más complejo es un sistema, los cambios
producen mayor impacto en más componentes
La gestión de la configuración (GC) de un sistema se
convierte en una actividad crítica del mantenimiento del
software
M.I.Capel Tema 5 9/83
16. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas y su mantenimiento
Mantenimiento de los sistemas software
Importancia de la gestión correcta en el tiempo
Técnicas y herramientas de mantenimiento software
Técnicas específicas:
Control de versiones
Análisis de impacto
Uso de herramientas–software
M.I.Capel Tema 5 10/83
17. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas y su mantenimiento
Mantenimiento de los sistemas software
Importancia de la gestión correcta en el tiempo
Costes del Mantenimiento de Sistemas Software
Periodo Desarrollo Mantenimiento
años setenta 60% 40%
años ochenta 40% 60%
actualidad 20% 80%
M.I.Capel Tema 5 11/83
18. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evolutivo de los sistemas
Plan de Gestión de los cambios
Gerencia de los cambios
Tipos de Sistemas I
M.I.Capel Tema 5 12/83
19. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evolutivo de los sistemas
Plan de Gestión de los cambios
Gerencia de los cambios
Tipos de Sistemas II
Predisposición a los cambios de los sistemas
Sistemas-S:
Improbabilidad de cambios en todas las fases del ciclo
-Manipulación de matrices
Sistemas-P:
Solución aproximada al problema que pretende resolver el
sistema
-Programa para jugar al ajedrez
Sistemas-E:
Naturaleza altamente mutable, que cambia con rapidez
Se han de incluir las mutaciones en el propio sistema para
acomodar los frecuentes cambios
-Software que predice cómo funciona la Economía
M.I.Capel Tema 5 13/83
20. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evolutivo de los sistemas
Plan de Gestión de los cambios
Gerencia de los cambios
Cambio en las actividades del proceso de desarrollo
Actividad que inicia cambios Artefactos a cambiar
Análisis de requerimientos Especificación de requerimientos
Diseño de sistemas Especificación de diseño arquitectónico
Especificación de diseño técnico
Diseño de programas Especificación del diseño de programa
Implementación de programas Código de programas
Documentación de programas
Pruebas unitarias Planificación de las pruebas
Scripts con las pruebas(casos,suites,etc.)
Entrega del sistema Documentación del usuario
Documentación del operador
Guía del usuario
Guía del programador
Clases de entrenamiento
Table: Actividades y artefactos que cambian
M.I.Capel Tema 5 14/83
21. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evolutivo de los sistemas
Plan de Gestión de los cambios
Gerencia de los cambios
Control de costos asociados a los cambios
Costos del ciclo de vida:
Tamaño del sistema
Recursos que gestiona el sistema
Complejidad del sistema
Comprensión del código
Fácil instrumentación de los cambios si se siguen los
principios de la IS
M.I.Capel Tema 5 15/83
22. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evolutivo de los sistemas
Plan de Gestión de los cambios
Gerencia de los cambios
Leyes de comportamiento evolutivo
Observación
Los sistemas software no evolucionan caóticamente, sino que
siguen un comportamiento previsible
Leyes de Lehman de evolución del software
Comportamiento evolutivo de los sistemas software
Ley de Continuidad del Cambio
Ley de Complejidad Creciente
Ley Fundamental de la Evolución de un Programa
Ley de Conservación de la Estabilidad Orgánica
Ley de Conservación de la Familiaridad
M.I.Capel Tema 5 16/83
23. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evolutivo de los sistemas
Plan de Gestión de los cambios
Gerencia de los cambios
Procedimiento para decidir los cambios
Para decidir llevar a cambio un cambio en el sistema se ha de
seguir un procedimiento sistemático de toma de decisiones
Figure: Determinación de la oportunidad de los cambios y cómo afectan a los
requerimientos M.I.Capel Tema 5 17/83
24. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evolutivo de los sistemas
Plan de Gestión de los cambios
Gerencia de los cambios
El Plan de Control de Cambios
Clase de elementos que componen el plan de control
Quién toma la responsabilidad de los procedimientos y la
creación de la Línea Base
Políticas de control de cambios y versiones
Almacenamiento de la información relevante
Las herramientas que deberían ser usadas
Proceso de uso de la herramienta.
Base de datos de gestión de los cambios
Información adicional
M.I.Capel Tema 5 18/83
25. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evolutivo de los sistemas
Plan de Gestión de los cambios
Gerencia de los cambios
Línea Base I
Antecedentes
Es un concepto que nos ayuda a controlar modificaciones
en el sistema sin impedir que se lleven a cabo ningún
cambio justificado
El estándar IEEE 610.12-1990 define una línea base
como:
Especificación o producto que se ha revisado formalmente
Existe acuerdo sobre el producto
Soporte para un desarrollo posterior de otro sistema
Puede cambiarse solamente a través de procedimientos
establecidos
M.I.Capel Tema 5 19/83
26. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evolutivo de los sistemas
Plan de Gestión de los cambios
Gerencia de los cambios
Línea Base II
M.I.Capel Tema 5 20/83
27. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evolutivo de los sistemas
Plan de Gestión de los cambios
Gerencia de los cambios
La Base de Datos de Configuración
Mantiene toda la información relevante para gestionar la
configuración de un sistema software
Debería permitir consultas sobre las configuraciones:
¿Quién tiene una versión particular del sistema?
¿Qué plataforma es requerida para una versión particular?
¿Qué versiones se ven afectadas por un cambio en el
componente X?
¿Cuántas fallas fueron informadas desde la distribución de
la versión T?
Debería estar unida indisociablemente al software que
está siendo gestionado
M.I.Capel Tema 5 21/83
28. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evolutivo de los sistemas
Plan de Gestión de los cambios
Gerencia de los cambios
Gerencia de los cambios en una organización
Tareas de mantenimiento
La aceptación de nuevos requisitos para el software
implica a varios niveles de la organización
El equipo de mantenimiento finalmente decide si el cambio
puede ser asumido a un coste razonable
Figure: Movimiento de los requisitos de mantenimiento a través de la organización
M.I.Capel Tema 5 22/83
29. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evolutivo de los sistemas
Plan de Gestión de los cambios
Gerencia de los cambios
Comité de Gestión de Cambios
1 Registra los síntomas en un formulario de solicitud de cambio.
2 El cambio propuesto se informa al comité.
3 Discutir el problema y determinar el motivo del cambio
4 Cuando se trata de un fallo del sistema, discute el origen probable del problema
5 El CCG asigna una prioridad o nivel de severidad a la solicitud
6 El analista o programador designado localiza el origen del problema o los
componentes involucrados
7 El responsable de los cambios trabaja en colaboración con el administrador del
sistema
8 El programador o analista archiva un informe de cambio
M.I.Capel Tema 5 23/83
30. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evolutivo de los sistemas
Plan de Gestión de los cambios
Gerencia de los cambios
Formulario de Solicitud de Cambios
Proyecto Número
Solicitante Fecha
Cambio Solicitado Urgencia, motivación
Analizador del cambio Fecha de análisis
Componentes asociados
Evaluación del cambio Costos
Prioridad del cambio
Implementación del cambio
Esfuerzo estimado
Fecha entrega Fecha de decisión
al comité del comité
Decisión del comité
Implementador del cambio Fecha del cambio
Fecha envío al QA Decisión del QA
Fecha de envío a CM
Comentarios
Table: Formato de Solicitud de Cambio
M.I.Capel Tema 5 24/83
31. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Evolución del Ciclo de Mantenimiento
Figure: Primera versión de un sistema de software
M.I.Capel Tema 5 25/83
32. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Impacto del mantenimiento en la evolución de los
sistemas software
Características mantenimiento vs. desarrollo de software
A diferencia de la actividad de desarrollo, en el mantenimiento
de hay tener en cuenta etapas anteriores, actual y futura del
ciclo del software
Actividades para controlar
Funciones diarias
Modificaciones
Perfeccionar la funcionalidad
Impedir la degradación en el desempeño
M.I.Capel Tema 5 26/83
33. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Actividades del mantenimiento
Características
Tiene relación con todas las fases del ciclo de vida:
Productos anteriores de desarrollo (anteriores)
Relación activa con usuarios, programadores y operadores
(presente)
Anticiparse a fallos (futuro)
Valoración del importante papel que juegan los
programadores en el mantenimiento del sistema
M.I.Capel Tema 5 27/83
34. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Evolución del Ciclo de Mantenimiento II
Figure: Extensión simple de un sistema de software
Condiciones
Ninguno de los nuevos requerimientos afecta a la
arquitectura software
Fase de Elaboración reducida
M.I.Capel Tema 5 28/83
35. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Clasificación de los tipos de mantenimiento
Clasificación para sistemas software
Mantenimiento correctivo
Mantenimiento adaptativo
Mantenimiento perfectivo
Mantenimiento preventivo
M.I.Capel Tema 5 29/83
36. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Mantenimiento Correctivo
Características
Objetivos
Frecuencia
Afectan a los requerimientos, diseño, código, pruebas y
documentación
Durabilidad de los cambios y reparaciones
M.I.Capel Tema 5 30/83
37. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Mantenimiento Adaptativo
Características
Objetivos
Frecuencia
Durabilidad de los cambios y reparaciones
M.I.Capel Tema 5 31/83
38. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Mantenimiento Perfectivo
Características
Se buscan oportunidades de mejora del sistema
No tiene por qué estar dirigido por la detección de fallos
Puede afectar a la documentación del sistema, a las
pruebas, al diseño y a la codificación
M.I.Capel Tema 5 32/83
39. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Evolución del Ciclo de Mantenimiento III
Figure: Mantenimiento perfectivo con cambios mínimos entre
iteraciones
M.I.Capel Tema 5 33/83
40. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Mantenimiento Preventivo
Características
Similar al preventivo, ha de involucrar también la
modificación para prevenir fallos
Frecuencia
Anticipación
M.I.Capel Tema 5 34/83
41. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Evolución del Ciclo de Mantenimiento IV
Figure: Versión del mantenimiento con ciclos concurrentes
Condiciones
Componentes altamente cohesivos y sin acoplamiento
Reduce los tiempos de puesta en servicio
M.I.Capel Tema 5 35/83
42. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Temporización de los tipos de mantenimiento
Antecedentes
Varía mucho dependiendo del tipo de sistema y equipos
implicados
Lienz y Swanson (1981) realizaron un estudio de 487
organizaciones de proceso de datos
Tipo Porcentaje
Correctivo 21 %
Adaptativo 25%
Perfectivo 50%
Preventivo 4%
Table: Distribución del esfuerzo de mantenimiento
M.I.Capel Tema 5 36/83
43. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Mantenimiento de Sistemas Muy Grandes
Estándar ISO/IEC-IEEE 12207
1 Obtención de los requerimientos de mantenimiento
2 Análisis del problema y de la modificación necesaria
3 Transformación de los requisitos detectados en cambios
4 Diseño de los cambios
5 Implementación de los cambios
6 Revisión y aceptación del mantenimiento
7 Migración
M.I.Capel Tema 5 37/83
44. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Ciclo de Mantenimiento de RUP
Rational Unified Process
1 Implementación
2 Pruebas
3 Despliegue del Sistema
4 Configuración y Gerencia de Cambios (CGC)
5 Gestión del Proyecto
6 Entorno de ejecución
M.I.Capel Tema 5 38/83
45. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
RUP (Rational Unified Process)
Marco de trabajo para el proceso iterativo de desarrollo de
software creado por “Rational Software Corporation" (IBM,
2003)
Se trata de un marco de trabajo adaptable, por
organizaciones que se dedican al desarrollo de software,
según sus necesidades
RUP es una implementación del Proceso Unificado
(1251_bestpractices_TP026B)
M.I.Capel Tema 5 39/83
46. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Ciclo de Mantenimiento de RUP II
M.I.Capel Tema 5 40/83
47. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Factores determinantes del costo del mantenimiento
Impactan en el coste del mantenimiento:
Tipo de aplicación
Novedad del sistema
Plazo de vida del Sistema
Dependencia de un ambiente cambiante y del tipo de
sistema
Características del hardware
Calidad del Diseño
Calidad del Código
Calidad de la Documentación
Calidad de las Pruebas
Los costes de mantenimiento pueden haberse
incrementado actualmente hasta el 80% del ciclo de vida
M.I.Capel Tema 5 41/83
48. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Predicción del coste de mantenimiento
El esfuerzo de mantenimiento se puede modelar para predecir
su magnitud y el coste de llevarlo a cabo completamente
Modelo Predictivo de Belady-Lehman
Deterioro de un sistema con el tiempo por las reparaciones
y perfeccionamiento de su arquitectura y código
Cuando se corrige, el sistema se vuelve más complejo:
M = p + K × c − d (0)
Si un sistema se desarrolla sin los principios de la IS (alta
complejidad) y el código es difícil de comprender (baja
“‘d"), los costes de mantenimiento aumentarán
exponencialmente
M.I.Capel Tema 5 42/83
49. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Predicción del coste de mantenimiento II
COCOMO II
Tamano = ASLOC(AA+SU+0.4DM+0.3CM+0.3IM)/100
ASLOC: número de líneas de código fuente que han de adaptarse
AA: esfuerzo de valoración y asimilación
SU: cantidad de código que ha ser comprendido necesariamente
DM: porcentaje del diseño que ha de ser modificado
CM: porcentaje de código que ha de ser modificado
IM: porcentaje de código externo que ha de ser integrado
M.I.Capel Tema 5 43/83
50. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Esfuerzo de comprensión del software (COCOMO)
Muy bajo Bajo Normal Alto Muy Alto
Estructura Cohesión muy baja Cohesión moderada Bien estructurado Alta cohesión Alta modularidad
Alto acoplamiento Alto acoplamiento Con áreas débiles Bajo acoplamiento ocultación inform.
Claridad Falta correlación Alguna Moderada Buena Coinciden
aplicación- programa y correlación correlación correlación aplicación
-programa aplicación con programa con programa con programa -programa
Autocontenido Código poco Algún comentario Moderada Buena, Código
claro, sin y cabeceras calidad útil docum. y razón del
documentación documentación áreas débiles diseño
Incremento SU 50 40 30 20 10
Table: Valoración de la comprensión del código
M.I.Capel Tema 5 44/83
51. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Esfuerzo de evaluación y asimilación (COCOMO)
Incremento de Nivel del esfuerzo
Evaluación y de Evaluación y
Asimilación (AA) Asimilación (AA)
0 Ninguno
2 Búsqueda componentes
y evaluación documentación
6 Bastante prueba de componentes y
y evaluación de documentación
8 Prueba extendida de componentes y
y evaluación de documentación
Table: Valoración del esfuerzo de asimilación de un software
M.I.Capel Tema 5 45/83
52. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Medida de la facilidad de mantenimiento
Facilidad de mantenimiento
Definición: “Tiempo medio para realizar la reparación de
un software"
Factores necesarios externos a evaluar:
Momento en que se dá parte del problema
Retrasos administrativos
Tiempo de análisis del problema
Tiempo para especificar los cambios
Tiempo necesario para hacer los cambios
Tiempo para probar los cambios
Tiempo para documentar los cambios
Visión externa, deja cosas fuera
M.I.Capel Tema 5 46/83
53. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Medida de la facilidad de mantenimiento II
Medidas aconsejadas después de los cambios
Relación entre el tiempo total de implementación del
cambio y la cantidad total de cambios realizados
Número de problemas no resueltos
Tiempo gastado en problemas no resueltos
El porcentaje de cambios que introducen nuevos defectos
El número de componentes modificados para implementar
un cambio
Son dependientes del entorno
M.I.Capel Tema 5 47/83
54. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Medida del Mantenimiento III
Figure: Tiempo medio para reparar varios subsistemas de un
software
M.I.Capel Tema 5 48/83
55. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Medidas dependientes de la complejidad del software
Número de McCabe o Número ciclomático
Se trata fe un atributo interno, muy importante para
determinar la facilidad de mantenimiento del software:
E − N + 2 (1)
Captura la complejidad estructural de un código fuente
midiendo el número de caminos linealmente
independientes del flujo de control
E: Número de arcos (edges) del grafo
N: Número de nodos del grafo
M.I.Capel Tema 5 49/83
56. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Ejemplo medida número ciclomático
1 Scoreboard : : drawscore ( int n )
2 { while ( numdigits−− > 0} {
3 score [ numdigits]−>erase ( ) ; }
4 // build new score in loop, each time update position
5 numdigits = 0;
6 // if score is 0, just display ’’0’’
7 i f ( n == 0) { delete score [ numdigits ] ;
8 score [ numdigits ] = new Displayable ( d i g i t s [ 0 ] ) ;
9 score [ numdigits]−>move( Point ((700− numdigits ∗18) ,40));
10 score [ numdigits]−>draw ( ) ;
11 numdigits ++;}
12 while ( n ) { int rem = n % 10;
13 delete score [ numdigits ] ;
14 score [ numdigits ] = new Displayable ( d i g i t s [ rem ] ) ;
15 score [ numdigits]−>move( Point(700−numdigits ∗18) ,40));
16 score [ numdigits]−>draw ( ) ;
17 n /= 10;
18 numdigits ++;
19 } }
M.I.Capel Tema 5 50/83
57. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Ejemplo de cálculo del número ciclomático II
M.I.Capel Tema 5 51/83
58. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Otros factores internos que dificultan el mantenimiento
Jerarquía de herencia entre entidades sintácticas de los
lenguajes de programación
ligadura dinámica entre referencias y código actual de los
métodos que se ejecutan
relaciones de uso, delegación
inclusión de clases y paquetes
M.I.Capel Tema 5 52/83
59. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Análisis de Impacto
Antecedentes
El mantenimiento de software comienza con la definición
de los requerimientos del software
Definición: “Evaluación de los riesgos asociados con el
cambio de un sistema software: estimación de efectos,
esfuerzo de desarrollo y cronograma"
Ayuda a mantener bajo control el costo del mantenimiento
del software
Para el mantenimiento se han de aplicar los mismos
principios de IS que para desarrollar buen software
M.I.Capel Tema 5 53/83
60. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Modelo de mantenimiento del software
Debido a Pfleeger y Bohner, permite medir el impacto de
un cambio y determinar los riesgos de llevarlo a cabo:
Incluye realimentación de subactividades
Medidas que proporcionan información a los gerentes
Determina: cuándo y cómo realizar un cambio
Flechas etiquetadas en la parte inferior del diagrama
proporcionan medidas del impacto de los cambios
Los requerimientos, componentes de diseño, código,
casos de prueba y documentación son subproductos del
proceso de desarrollo del software
M.I.Capel Tema 5 54/83
61. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Modelo de Pfleeger del Mantenimiento
Figure: Actividades realizadas cuando se solicita un cambio del
software M.I.Capel Tema 5 55/83
62. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Análisis de Impacto II
Calidad del software
Las calidad de los productos software (requerimientos,
código, pruebas, documentación) pueda afectar a la
calidad de los otros
Se necesitan facilidades de rastreo (tracing) para
comprender el juego completo de relaciones que se
evalúan entre productos software durante el análisis
Ambos tipos de rastreos son necesarios para comprender
el juego completo de relaciones que se evalúan durante el
análisis de impacto de los cambios
M.I.Capel Tema 5 56/83
63. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Tipos de rastreos entre subproductos
Subproducto (workproduct): cualquier artefacto de
desarrollo cuyo cambio sea significativo
Trazabilidad horizontal: relaciones de componentes a
través de colecciones de subproductos
Trazabilidad vertical: relaciones entre partes de un
subproducto
M.I.Capel Tema 5 57/83
64. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Gráfica de los rastreos entre subproductos
Figure: Trazabilidad Horizontal
M.I.Capel Tema 5 58/83
65. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Gráfica de los rastreos en subproductos
Figure: Trazabilidad Vertical
M.I.Capel Tema 5 59/83
66. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Herramientas de mantenimiento de software
Clasificación de los tipos más comunes
Editores de texto
Comparadores de archivos
Compiladores y encuadernadores (linkers)
Herramientas de depuración
Generadores de referencias cruzadas
Analizadores de código estático
Repositorios de gestión de la configuración
M.I.Capel Tema 5 60/83
67. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Herramienta “tipo"
Características
Incorpora el código fuente, código objeto , lenguaje de
control, y archivos de datos necesarios para hacer
funcionar un sistema
Controla más de una versión de un sistema:
Se designa una única versión como la de producción y no
se permite que ninguna la altere
Sitúa el número de versión y la fecha del último cámbio en
el listado del compilador y en el objeto producido en la
compilación
Posee facilidades de reporting, backup y recuperación,
además de tres niveles de seguridad de accesos
M.I.Capel Tema 5 61/83
68. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Rejuvenecimiento del software
Tipos:
Redocumentación: el análisis estático añade más
información
Restructuración: transformar para mejorar la estructura del
código
Ingeniería Reversa: recrear el diseño y la información de
la especificación desde el código
Re–ingeniería: Ingeniería Reversa+ cambios en la
especificación y el diseño para completar el modelo lógico;
después generar un nuevo sistema a partir de la
especificación revisada y del diseño
M.I.Capel Tema 5 62/83
69. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Taxonomía del rejuvenecimiento del software
Figure: Relación gráfica entre los 4 tipos de rejuvenecimiento del
software
M.I.Capel Tema 5 63/83
70. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Redocumentación de software
Comienza enviando el código a una herramienta de
análisis
No está basada en métodos software
La salida puede incluir:
relaciones de llamadas entre componentes
tablas de interfaces de datos
información del diccionario de datos
tablas de flujo de datos o diagramas
tablas de control de datos o diagramas
pseudocódigo
caminos de prueba
referencias cruzadas entre componentes y variables
M.I.Capel Tema 5 64/83
71. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Redocumentación de software II
Figure: Proceso de redocumentación
M.I.Capel Tema 5 65/83
72. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Restructuración de código
Interpretación del código fuente y representación interna
del mismo
Simplificación de la representación interna
Regeneración del código estructurado
M.I.Capel Tema 5 66/83
73. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Actividades de restructuración
Figure: Proceso de restructuración: (1) análisis estático, (2)
simplificación de la representación, (3) refinamiento para generar una
versión estructurada
M.I.Capel Tema 5 67/83
74. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Ingeniería Reversa
Se basa en métodos software aceptados
Gestiona la representación
Intentar recuperar información de ingeniería basándose en
métodos de especificación y diseño de software
Persisten obstáculos por superar antes de que la
ingeniería se pueda utilizar en cualquier caso
Problema del Sistema de Tiempo Real
Sistema extremadamente complejo
M.I.Capel Tema 5 68/83
75. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Ingeniería Reversa II
Figure: Proceso de ingeniería reversa
M.I.Capel Tema 5 69/83
76. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Reingeniería
Se trata de una extensión de la ingeniería reversa
produce nuevo código–software sin cambiar la función del
sistema completo
completa y modifica la representación
Pasos de Reingeniería:
Al sistema se le aplica ingeniería reversa
El sistema software es corregido o completado
Se genera el nuevo sistema
M.I.Capel Tema 5 70/83
77. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y evolución
Tipos de mantenimiento
Planificación del mantenimiento
Predicción y evaluación del coste de mantenimiento
Evolución y calidad del software
Herramientas automáticas
Rejuvenecimiento del software
Reingeniería II
Figure: Proceso de reingeniería
M.I.Capel Tema 5 71/83
78. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamentales y estándares actuales
Marcos de trabajo y herramientas gestión de la configuración
Gerencia de la Configuración de Software
Definición de IEEE (2004)
Es un soporte al proceso del ciclo de vida del software que
beneficia a la gestión del proyecto, el desarrollo del producto y
las actividades de mantenimiento, además de estar
íntimamente ligado a las actividades de aseguramiento de la
calidad del software.
IEEE (Institute of Electrical and Electronic Engineers) han
desarrollado varios estándares para seguir en el proceso de
desarrollo, prueba y evolución del software
M.I.Capel Tema 5 72/83
79. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamentales y estándares actuales
Marcos de trabajo y herramientas gestión de la configuración
Gerencia de la Configuración de Software
Definición de IEEE (2004)
Es un soporte al proceso del ciclo de vida del software que
beneficia a la gestión del proyecto, el desarrollo del producto y
las actividades de mantenimiento, además de estar
íntimamente ligado a las actividades de aseguramiento de la
calidad del software.
IEEE (Institute of Electrical and Electronic Engineers) han
desarrollado varios estándares para seguir en el proceso de
desarrollo, prueba y evolución del software
M.I.Capel Tema 5 72/83
80. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamentales y estándares actuales
Marcos de trabajo y herramientas gestión de la configuración
Gerencia de Configuración II
Basada en estándares
La GC siempre debería estar basada en un conjunto de
estándares que son aplicados dentro de la organización
Los citados estándares deberían definir:
Cómo se identifican los elementos,
Cómo se controlan los cambios y
Cómo se manejan las nuevas versiones del sistema
M.I.Capel Tema 5 73/83
81. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamentales y estándares actuales
Marcos de trabajo y herramientas gestión de la configuración
Estándares relacionados con la GC
Estándar Descripción
1042–1987 Guía IEEE para Gestión de Configuración de Software
828–2005 Planes de Gestión de Configuración de Software
1008–1987 Unidad de Prueba de Software
1012–2004 Planes para Validación y Verificación de Software
1028–2008 Revisión y Auditoría de Software
1004–1993 Clasificación de Anomalías de Software
1059–1993 Guía de Planes de Verificación y Validación de Software
829–1998 Documentación de Pruebas de Software
Table: Estándares de IEEE
M.I.Capel Tema 5 74/83
82. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamentales y estándares actuales
Marcos de trabajo y herramientas gestión de la configuración
Estándares relacionados con la GC II
Estándar Descripción
10007–2003 Gestión de calidad de sistemas (Guías de GC)
15846–1998
Tecnología de la Información–
Proceso de Ciclo de Vida (GC)
Table: Estándares ISO Software Engineering
M.I.Capel Tema 5 75/83
83. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamentales y estándares actuales
Marcos de trabajo y herramientas gestión de la configuración
Estandarización de las prácticas para gestión de
servicios en IT
ITIL
“Information Technology Infrastructure Library" , conjunto
de prácticas estandarizadas que alinean servicios–IT con
la necesidades de un negocio
Publicaciones ITIL (2011)(ver
http://www.itil-officialsite.com), cada una
cubre una etapa del ciclo de vida de gestión de servicios
Conforme con estándar ISO/IEC 20000, internacional de
referencia para servicios–IT
M.I.Capel Tema 5 76/83
84. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamentales y estándares actuales
Marcos de trabajo y herramientas gestión de la configuración
Estandarización de las prácticas para gestión de
servicios en IT (2)
CMM
“Capability Maturity Model", modelo de desarrollo de
software creado a partir de datos de organizaciones que
mantienen contratos con el DoD (USA)
El modelo es la base de la actividades desarrolladas por
Software Engineering Institute (SEI), creado por
Carnegie–Mellon University
Madurez es el grado de formalización y optimización de
procesos implicados en el desarrollo de software
Métricas de gestión de los resultados para conseguir la
optimización de los procesos aludidos
M.I.Capel Tema 5 77/83
85. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamentales y estándares actuales
Marcos de trabajo y herramientas gestión de la configuración
Marcos de trabajo I
Áreas de proceso Actividades ITIL RUP CMM IEEE
Gerencia y
1.1.Entender el contexto X X X X
organizacional
Planificación 1.2.Preparar el plan de GCS X X X X
1.2.1.Definir restricciones X X X X
Guías y organizacional
1.2.2.Establecer procedimientos X X X X
y políticas
1.2.3.Establecer roles X X X X
y responsabilidades
1.2.4.Establecer tiempos X X X X
y cronogramas
1.2.5.Selección de X X X X
herramientas
1.2.6.Control de X X — X
proveedores
1.3.Revisar resultados X X X X
de auditorias
1.4.Realizar mediciones X X X X
para mejorar
M.I.Capel Tema 5 78/83
86. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamentales y estándares actuales
Marcos de trabajo y herramientas gestión de la configuración
Marcos de trabajo II
Áreas de proceso Actividades ITIL RUP CMM IEEE
Identificación y
2.1.Seleccionar elementos X X X X
a ser controlados
Almacenamiento 2.2.Identificar versiones X X X X
2.3.Establ. líneas base X X X X
2.4.Definir Almacenamiento X X X X
Control de
3.1.Requisitos de cambios X X X X
Cambios, versiones 3.2.Aprobar cambios X X X X
3.3.Implementar cambios X X X —
Estados
4.1.Informe del estado X X X X
4.2 Reportes diversos X X — X
Auditoría
5.1.Verificar si se cumplen X X X X
procedimientos y políticas
5.2.Verificar el X X X —
Almacenamiento
5.3.Verificación X X X X
líneas base
5.4.Revisión X X X X
funcionamiento herramientas
M.I.Capel Tema 5 79/83
87. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamentales y estándares actuales
Marcos de trabajo y herramientas gestión de la configuración
Gestión de Versiones
Antecedentes
El administrador del sistema ha de poder identificar
siempre la versión operativa actual del sistema y el
número de revisión de cada componente en uso
Garantizar que todos los procedimientos que afectan a los
cambios se aplican adecuadamente:
Se asigna un número a cada versión activa del sistema
Se asigna un número de revisión a cada componente que
resulte cambiado
Se guardan registros de cada versión, estado de
componente e histórico de cambios en el sistema
M.I.Capel Tema 5 80/83
88. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamentales y estándares actuales
Marcos de trabajo y herramientas gestión de la configuración
Herramientas CASE para control de cambios I
Gestión de Cambios:
Editores de formularios para soportar los formatos de
solicitud de cambio.
Sistemas basados en flujo de trabajos (WF) para definir
quién hace qué y automatizar la transferencia de
información.
Base de Datos de cambio que gestionan las propuestas
de cambio y está enlazadas con un sistema de gerencia
de versiones.
M.I.Capel Tema 5 81/83
89. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamentales y estándares actuales
Marcos de trabajo y herramientas gestión de la configuración
Herramientas CASE para control de cambios II
Identificación de versiones y distribuciones
Los sistemas asignan identificadores automáticamente
cuando se libera una nueva versión del sistema.
Gestión del Almacenamiento. Los sistemas almacenan las
diferencias entre las versiones más que todo el código de
la nueva versión.
Registro de la Historia de Cambios. Registra las razones
para la creación de una nueva versión.
Desarrollo Independiente. Sólo se puede permitir una
versión a la vez para el cambio, por lo que se realiza un
trabajo paralelo en diferentes versiones.
M.I.Capel Tema 5 82/83
90. Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamentales y estándares actuales
Marcos de trabajo y herramientas gestión de la configuración
Para ampliar
Jarzabeck (2007).
Effective Software Maintenance and Evolution.
Auerbach.
Pfleeger, S. (2002).
Ingeniería de Software: Teoría y Práctica.
Prentice-Hall.
Pigoski (1996).
Practical Software Maintenance.
Wiley.
Pressman, R. (2010).
Software engineering: a practitioner’s approach.
McGraw-Hill.
Sommerville, I. (2010).
Ingeniería de Software.
Pearson–Addison Wesley.
M.I.Capel Tema 5 83/83