Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y Ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Índice
1 Introducc...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Índice
1 Introducc...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Índice
1 Introducc...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Índice
1 Introducc...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas ...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas ...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas ...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas ...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas ...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas ...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas ...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas ...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas ...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas ...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas ...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Tipos de sistemas ...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evo...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evo...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evo...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evo...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evo...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evo...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evo...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evo...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evo...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evo...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evo...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evo...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Comportamiento evo...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Mantenimiento y ev...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamen...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamen...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamen...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamen...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamen...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamen...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamen...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamen...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamen...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamen...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamen...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamen...
Introducción
El Proceso de Cambio de un Sistema
Actividades de Mantenimiento
Gestión de la Configuración
Conceptos fundamen...
Upcoming SlideShare
Loading in...5
×

Mantenimiento y evolución del software

697

Published on

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.

Published in: Software
1 Comment
0 Likes
Statistics
Notes
  • quisiera saber si fuera posible me recomendara material sobre rejuvenecimiento del software?

    slds
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total Views
697
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
29
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Mantenimiento y evolución del software

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×