SlideShare une entreprise Scribd logo
1  sur  90
Télécharger pour lire hors ligne
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

Contenu connexe

Tendances

Estándares y modelos de calidad del software
Estándares y modelos de calidad del softwareEstándares y modelos de calidad del software
Estándares y modelos de calidad del softwarerodigueezleidy
 
SQA - chapter 13 (Software Quality Infrastructure)
SQA - chapter 13 (Software Quality Infrastructure)SQA - chapter 13 (Software Quality Infrastructure)
SQA - chapter 13 (Software Quality Infrastructure)uma sree
 
Sw CMM. Modelo para evaluación del software
Sw CMM. Modelo para evaluación del softwareSw CMM. Modelo para evaluación del software
Sw CMM. Modelo para evaluación del softwareNeris Alfonzo
 
Desarrollo iterativo e incremental
Desarrollo iterativo e incrementalDesarrollo iterativo e incremental
Desarrollo iterativo e incrementalnoriver
 
Construccion y Pruebas de Software
Construccion y Pruebas de SoftwareConstruccion y Pruebas de Software
Construccion y Pruebas de SoftwareGustavo Bazan Maal
 
Que es Ingenieria del Software?,
Que es Ingenieria del Software?,Que es Ingenieria del Software?,
Que es Ingenieria del Software?,Robert Rodriguez
 
Metricas de calidad de software
Metricas de calidad de softwareMetricas de calidad de software
Metricas de calidad de softwareisisparada
 
MODELOS DE SISTEMAS DE SOFTWARE
MODELOS DE SISTEMAS DE SOFTWAREMODELOS DE SISTEMAS DE SOFTWARE
MODELOS DE SISTEMAS DE SOFTWARERocio Castellanos
 
calidad de los sistemas de informacion
calidad de los sistemas de informacioncalidad de los sistemas de informacion
calidad de los sistemas de informacionErika Vazquez
 
Modelado del negocio
Modelado del negocioModelado del negocio
Modelado del negociosullinsan
 
Plantilla para realizar un manual de usuario de software
Plantilla para realizar un manual de usuario de software Plantilla para realizar un manual de usuario de software
Plantilla para realizar un manual de usuario de software Yaskelly Yedra
 
Metodolgias de desarrollo (evolutivo)
Metodolgias de desarrollo (evolutivo)Metodolgias de desarrollo (evolutivo)
Metodolgias de desarrollo (evolutivo)Griiselda Martiinez
 
METODOLOGIAS AGILES
METODOLOGIAS AGILESMETODOLOGIAS AGILES
METODOLOGIAS AGILESmikyWatt
 
Ventajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftVentajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftChuyito Alvarado
 
modelos del proceso del software
 modelos del proceso del software  modelos del proceso del software
modelos del proceso del software Brihany Rossell
 
¿Cómo medir la calidad del software de una manera formal pero práctica?
¿Cómo medir la calidad del software de una manera formal pero práctica?¿Cómo medir la calidad del software de una manera formal pero práctica?
¿Cómo medir la calidad del software de una manera formal pero práctica?Software Guru
 

Tendances (20)

Estándares y modelos de calidad del software
Estándares y modelos de calidad del softwareEstándares y modelos de calidad del software
Estándares y modelos de calidad del software
 
Factores de calidad del software
Factores de calidad del softwareFactores de calidad del software
Factores de calidad del software
 
7. Mantenimiento de Software
7. Mantenimiento de Software7. Mantenimiento de Software
7. Mantenimiento de Software
 
SQA - chapter 13 (Software Quality Infrastructure)
SQA - chapter 13 (Software Quality Infrastructure)SQA - chapter 13 (Software Quality Infrastructure)
SQA - chapter 13 (Software Quality Infrastructure)
 
Rup
RupRup
Rup
 
Sw CMM. Modelo para evaluación del software
Sw CMM. Modelo para evaluación del softwareSw CMM. Modelo para evaluación del software
Sw CMM. Modelo para evaluación del software
 
Desarrollo iterativo e incremental
Desarrollo iterativo e incrementalDesarrollo iterativo e incremental
Desarrollo iterativo e incremental
 
Construccion y Pruebas de Software
Construccion y Pruebas de SoftwareConstruccion y Pruebas de Software
Construccion y Pruebas de Software
 
Que es Ingenieria del Software?,
Que es Ingenieria del Software?,Que es Ingenieria del Software?,
Que es Ingenieria del Software?,
 
Metricas de calidad de software
Metricas de calidad de softwareMetricas de calidad de software
Metricas de calidad de software
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
MODELOS DE SISTEMAS DE SOFTWARE
MODELOS DE SISTEMAS DE SOFTWAREMODELOS DE SISTEMAS DE SOFTWARE
MODELOS DE SISTEMAS DE SOFTWARE
 
calidad de los sistemas de informacion
calidad de los sistemas de informacioncalidad de los sistemas de informacion
calidad de los sistemas de informacion
 
Modelado del negocio
Modelado del negocioModelado del negocio
Modelado del negocio
 
Plantilla para realizar un manual de usuario de software
Plantilla para realizar un manual de usuario de software Plantilla para realizar un manual de usuario de software
Plantilla para realizar un manual de usuario de software
 
Metodolgias de desarrollo (evolutivo)
Metodolgias de desarrollo (evolutivo)Metodolgias de desarrollo (evolutivo)
Metodolgias de desarrollo (evolutivo)
 
METODOLOGIAS AGILES
METODOLOGIAS AGILESMETODOLOGIAS AGILES
METODOLOGIAS AGILES
 
Ventajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftVentajas y desventajas de moprosoft
Ventajas y desventajas de moprosoft
 
modelos del proceso del software
 modelos del proceso del software  modelos del proceso del software
modelos del proceso del software
 
¿Cómo medir la calidad del software de una manera formal pero práctica?
¿Cómo medir la calidad del software de una manera formal pero práctica?¿Cómo medir la calidad del software de una manera formal pero práctica?
¿Cómo medir la calidad del software de una manera formal pero práctica?
 

En vedette

Especificación de requisitos de software
Especificación de requisitos de softwareEspecificación de requisitos de software
Especificación de requisitos de software481200601
 
Ciclos de vida del software
Ciclos de vida del softwareCiclos de vida del software
Ciclos de vida del softwareGUEOVANNY20
 
Historia y evolucion del software
Historia y evolucion del softwareHistoria y evolucion del software
Historia y evolucion del softwareMaura Jß
 
Implementacion de software
Implementacion de softwareImplementacion de software
Implementacion de softwareTom Rodriguez
 
Etapas de Desarrollo Software
Etapas de Desarrollo SoftwareEtapas de Desarrollo Software
Etapas de Desarrollo SoftwareDaniel Román
 
Formatos basicos de mantenimiento
Formatos basicos de mantenimientoFormatos basicos de mantenimiento
Formatos basicos de mantenimientolinamartinfer
 

En vedette (9)

Evolucion del Software
Evolucion del SoftwareEvolucion del Software
Evolucion del Software
 
Especificación de requisitos de software
Especificación de requisitos de softwareEspecificación de requisitos de software
Especificación de requisitos de software
 
Ciclos de vida del software
Ciclos de vida del softwareCiclos de vida del software
Ciclos de vida del software
 
Historia y evolucion del software
Historia y evolucion del softwareHistoria y evolucion del software
Historia y evolucion del software
 
Implementacion de software
Implementacion de softwareImplementacion de software
Implementacion de software
 
Diseño de Software
Diseño de SoftwareDiseño de Software
Diseño de Software
 
Etapas de Desarrollo Software
Etapas de Desarrollo SoftwareEtapas de Desarrollo Software
Etapas de Desarrollo Software
 
Formatos basicos de mantenimiento
Formatos basicos de mantenimientoFormatos basicos de mantenimiento
Formatos basicos de mantenimiento
 
Evolucion software - Ing SW
Evolucion software - Ing SWEvolucion software - Ing SW
Evolucion software - Ing SW
 

Similaire à Mantenimiento y evolución del software

7. cambios en el software y mejora de procesos
7. cambios en el software y mejora de procesos7. cambios en el software y mejora de procesos
7. cambios en el software y mejora de procesossilviamap64
 
Fundamentos-de-Ingenieria-en-Software.pptx
Fundamentos-de-Ingenieria-en-Software.pptxFundamentos-de-Ingenieria-en-Software.pptx
Fundamentos-de-Ingenieria-en-Software.pptxJesusGonzalezOrnelas
 
Sistema de Gestión del cambio
Sistema de Gestión del cambioSistema de Gestión del cambio
Sistema de Gestión del cambioJogni Santana
 
Mantenimiento del Software
Mantenimiento del SoftwareMantenimiento del Software
Mantenimiento del Softwaresaav_2002
 
Unidad 4 Gerencia
Unidad 4 GerenciaUnidad 4 Gerencia
Unidad 4 GerenciaEliana O.
 
11 - 3 Prácticas de Auditoría 3.2 Auditoria Gestión de TI - Adquisición Desar...
11 - 3 Prácticas de Auditoría 3.2 Auditoria Gestión de TI - Adquisición Desar...11 - 3 Prácticas de Auditoría 3.2 Auditoria Gestión de TI - Adquisición Desar...
11 - 3 Prácticas de Auditoría 3.2 Auditoria Gestión de TI - Adquisición Desar...Luis Fernando Aguas Bucheli
 
10 midiendo la calidad del software
10 midiendo la calidad del software10 midiendo la calidad del software
10 midiendo la calidad del softwareUVM
 
Gestion de configuracion de software.pptx
Gestion de configuracion de software.pptxGestion de configuracion de software.pptx
Gestion de configuracion de software.pptxFranciscoAntonioCifu
 
Mantenimieto de Software
Mantenimieto de SoftwareMantenimieto de Software
Mantenimieto de SoftwareJair Barzola
 
COBIT E ITIL SISTEMAS DE INFORMACIÓN
COBIT E ITIL SISTEMAS DE INFORMACIÓNCOBIT E ITIL SISTEMAS DE INFORMACIÓN
COBIT E ITIL SISTEMAS DE INFORMACIÓNdian1103
 
PROCESOS DE INGENIERIA DEL SW
PROCESOS DE INGENIERIA DEL SWPROCESOS DE INGENIERIA DEL SW
PROCESOS DE INGENIERIA DEL SWRaquel Solano
 
Proceso de desarrollo de software
Proceso de desarrollo de softwareProceso de desarrollo de software
Proceso de desarrollo de softwareAleli Castro
 
Mantenimiento de software
Mantenimiento de softwareMantenimiento de software
Mantenimiento de softwareCrisandy_r20
 
Modelos de Proceso de Software
Modelos de Proceso de SoftwareModelos de Proceso de Software
Modelos de Proceso de Softwarehugoamo
 

Similaire à Mantenimiento y evolución del software (20)

7. cambios en el software y mejora de procesos
7. cambios en el software y mejora de procesos7. cambios en el software y mejora de procesos
7. cambios en el software y mejora de procesos
 
Mantenimiento y evolucion del software
Mantenimiento y evolucion del softwareMantenimiento y evolucion del software
Mantenimiento y evolucion del software
 
Mantenimiento de software (síntesis)
Mantenimiento de software (síntesis)Mantenimiento de software (síntesis)
Mantenimiento de software (síntesis)
 
Fundamentos-de-Ingenieria-en-Software.pptx
Fundamentos-de-Ingenieria-en-Software.pptxFundamentos-de-Ingenieria-en-Software.pptx
Fundamentos-de-Ingenieria-en-Software.pptx
 
manual de compra de motos
manual de compra de motos manual de compra de motos
manual de compra de motos
 
Sistema de Gestión del cambio
Sistema de Gestión del cambioSistema de Gestión del cambio
Sistema de Gestión del cambio
 
Mantenimiento del Software
Mantenimiento del SoftwareMantenimiento del Software
Mantenimiento del Software
 
Unidad 4 Gerencia
Unidad 4 GerenciaUnidad 4 Gerencia
Unidad 4 Gerencia
 
11 - 3 Prácticas de Auditoría 3.2 Auditoria Gestión de TI - Adquisición Desar...
11 - 3 Prácticas de Auditoría 3.2 Auditoria Gestión de TI - Adquisición Desar...11 - 3 Prácticas de Auditoría 3.2 Auditoria Gestión de TI - Adquisición Desar...
11 - 3 Prácticas de Auditoría 3.2 Auditoria Gestión de TI - Adquisición Desar...
 
10 midiendo la calidad del software
10 midiendo la calidad del software10 midiendo la calidad del software
10 midiendo la calidad del software
 
Gestion de configuracion de software.pptx
Gestion de configuracion de software.pptxGestion de configuracion de software.pptx
Gestion de configuracion de software.pptx
 
Mantenimieto de Software
Mantenimieto de SoftwareMantenimieto de Software
Mantenimieto de Software
 
COBIT E ITIL SISTEMAS DE INFORMACIÓN
COBIT E ITIL SISTEMAS DE INFORMACIÓNCOBIT E ITIL SISTEMAS DE INFORMACIÓN
COBIT E ITIL SISTEMAS DE INFORMACIÓN
 
PROCESOS DE INGENIERIA DEL SW
PROCESOS DE INGENIERIA DEL SWPROCESOS DE INGENIERIA DEL SW
PROCESOS DE INGENIERIA DEL SW
 
Proceso de desarrollo de software
Proceso de desarrollo de softwareProceso de desarrollo de software
Proceso de desarrollo de software
 
Mantenimiento de software
Mantenimiento de softwareMantenimiento de software
Mantenimiento de software
 
capitulo 2 Somerville.pptx
capitulo 2 Somerville.pptxcapitulo 2 Somerville.pptx
capitulo 2 Somerville.pptx
 
Modelos de Proceso de Software
Modelos de Proceso de SoftwareModelos de Proceso de Software
Modelos de Proceso de Software
 
Is01
Is01Is01
Is01
 
Software configuration managment
Software configuration managmentSoftware configuration managment
Software configuration managment
 

Plus de Manuel Capel-Tunon

Plus de Manuel Capel-Tunon (8)

Uml --components simple specification
Uml --components simple specificationUml --components simple specification
Uml --components simple specification
 
Software Testing (2)
Software Testing (2)Software Testing (2)
Software Testing (2)
 
Software Testing (1)
Software Testing (1)Software Testing (1)
Software Testing (1)
 
Arquitecturas de Software
Arquitecturas de SoftwareArquitecturas de Software
Arquitecturas de Software
 
Patrones diseño de software
Patrones diseño de softwarePatrones diseño de software
Patrones diseño de software
 
Presen sew-35-12(beamer)
Presen sew-35-12(beamer)Presen sew-35-12(beamer)
Presen sew-35-12(beamer)
 
Concurrency or "Hard Computing"
Concurrency or "Hard Computing"Concurrency or "Hard Computing"
Concurrency or "Hard Computing"
 
BUSINESS PROCESS MODELLING
BUSINESS PROCESS MODELLINGBUSINESS PROCESS MODELLING
BUSINESS PROCESS MODELLING
 

Mantenimiento y evolución del software

  • 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