10_Gestion_Configuracion
Transcript of 10_Gestion_Configuracion
Clase 8:
Gestión de la Configuración
Ingeniería de Software
Clase 1
Objetivos 2
Entender que significa la gestión de la
configuración del software y los diferentes términos
relacionados
Comprender las actividades que forman parte del
proceso de gestión de configuración
3
Introducción
Gestión de la Configuración
Roles y responsabilidades
Proceso de la gestión de la configuración
Beneficios
Temas
Introducción 4
Problemas
Archivos perdidos: “Se que lo escribí, pero no se dónde lo
puse…”
Referencias perdidas: “Solía funcionar, pero usa librerías
que ya no están…”
Sobrescribir el código de otro: desarrolladores que hacen
distintos cambios en el mismo código sobrescribiendo su
trabajo mutuamente
No hay botón deshacer: los nuevos cambios
son peores, pero no se puede volver atrás….
Introducción 5
Problemas
¿Qué versión tiene el cliente? ¿A cuál corresponde el error?
La versión actual del código se sobre escribe por una
anterior
Una actualización crítica se descarta de la versión final
Se hacen cambios a una versión incorrecta del código
Reaparecen errores ya corregidos
No e logra determinar qué versiones de
archivos van en una entrega
Introducción 6
La Solución:
Gestión de la Configuración del Software (GCS / SCM)
Actividad constante aplicada durante todo el proceso de
Ingeniería de Software para identificar, organizar y
controlar las modificaciones que sufre el software
Gestión de la Configuración 7
Es el conjunto total de actividades utilizadas para
administrar el contenido y asegurar la integridad del
producto de software desde el principio, incluyendo su
proceso de desarrollo y hasta el final de su vida útil
Es la disciplina de administrar y controlar los cambios en la
evolución de los sistemas de software
Es necesario porque los requerimientos del sistema siempre
cambian durante su desarrollo y su uso, y se tienen que
incorporar estos requerimientos en nuevas versiones del
sistema
Gestión de la Configuración 8
Es un proceso de soporte en la Ingeniería de Software
Gestión de la Configuración 9
Entre sus principales funciones está:
Interactuar con las gestiones de Incidentes, Problemas ,
Cambios y Versiones de manera que estas puedan resolver
más eficientemente las incidencias, encontrar rápidamente
la causa de los problemas, realizar los cambios
apropiadamente y mantener actualizada en todo momento
la base de datos de gestión de la configuración (CMDB)
Gestión de la Configuración 10
Línea base
Es un concepto de gestión de configuraciones del software
que nos ayuda a controlar los cambios sin impedir
seriamente los cambios justificados
Una línea base se define como un punto del ciclo de vida
del software en el cual se aplica el control de
configuraciones a un elemento específico de la configuración
Generalmente es una revisión aprobada de un documento o
archivo fuente, a partir del cual se pueden realizar cambios
subsiguientes
Gestión de la Configuración 11
Línea base
De la configuración del software dentro de un proceso de
desarrollo:
Gestión de la Configuración 12
Elementos de configuración
Un elemento de configuración del software (ECS / CI) es la
información creada como parte del proceso de ingeniería
del software
Gestión de la Configuración 13
Elementos de configuración
Ejecutables
Código Fuente
Modelos de datos
Pruebas
Documentos del sistema:
Especificaciones de requisitos, Arquitectura, Diseño, Procesos,
manuales, etc.
Para cada uno de estos elementos se almacenará al menos:
nombre, versión, estado y localización.
Gestión de la Configuración 14
Versiones
Desde el punto de vista de la evolución, es la forma
particular de un objeto en un instante o contexto dado. Se
suele denominar "revisión" cuando se refiere a la evolución
en el tiempo.
También hay que contemplar la posibilidad de que
coexistan versiones alternativas en un instante dado.
Hay que disponer de un método para
designar las diferentes versiones de
manera sistemática u organizada.
Gestión de la Configuración 15
Control de Versiones
Gestión de la Configuración 16
Rama o Subversiones
Gestión de la Configuración 17
Cambio
Es el paso de una versión de la línea base a la siguiente.
Puede incluir modificaciones del contenido de algún
componente o a la estructura del sistema, añadiendo,
eliminando o reorganizando componentes.
El control e cambios es un concepto relacionado con la
metodología de desarrollo de software. Se trata de hacer
el desarrollo de forma evolutiva, mediante cambios
sucesivos realizados de una manera disciplinada.
Gestión de la Configuración 18
Mantenimiento del Software
La gestión de configuración está también fuertemente
relacionada con el problema del mantenimiento de software
Proceso general de cambiar un sistema, después de que
éste se entregó
Tipos de mantenimiento de software:
Reparaciones de fallas
Adaptación ambiental
Adición de funcionalidad
Roles y responsabilidades de la
Gestión de la Configuración 19
Roles y responsabilidades de la
Gestión de la Configuración 20
Gestión de la Configuración 21
Tareas del proceso
¿Cómo identificar las muchas versiones de un programa y su
documentación eficientemente?
¿Cómo controlar la organización de cambios antes y
después de la distribución?
¿Quién es el responsable de aprobar y asignar prioridades
a los cambios¿
¿Cómo garantizar que los cambios se han hecho
eficientemente?
Proceso de la Gestión de la
Configuración 22
Proceso de la Gestión de la
Configuración 23
Relación de las diferentes actividades
Proceso de la Gestión de la
Configuración 24
Planeamiento de la Gestión de la Configuración
Es utilizado para definir el contexto organizacional, las
restricciones y la naturaleza del proyecto. También envuelve
otras actividades, las cuales son: Identificación, Control,
Estado de contabilidad, Auditoría de la configuración y la
gestión de Entregables.
Proceso de la Gestión de la
Configuración 25
Planeamiento de la Gestión de la Configuración
Utiliza los siguientes tipos de documentos:
Introducción: Explica el propósito del proyecto
Gestión: Identifica a los responsables para completar las
actividades
Actividades: Identifica que actividades se realizarán
Horarios: Identifica la coordinación que deben tener las
actividades entre cada una
Recursos: Identifica a las herramientas a utilizar
Plan de mantenimiento: Da a conocer cómo el plan trazado se
mantendrá durante el proyecto
Proceso de la Gestión de la
Configuración 26
Identificación
La tarea de identificación empieza con la definición de los
elementos de la configuración software representativos de
los productos en cada línea base establecida. El formato,
los contenidos y los mecanismos de control para toda la
documentación son definidos para enlazar la información
cuando la jerarquía de la configuración se despliega.
Proceso de la Gestión de la
Configuración 27
Identificación
Se asignan identificadores apropiados a todos los
programas, documentos y periféricos, usando un esquema
numerado que proporciona información sobre el elemento
de la configuración software.
Finalmente, la identificación debe facilitar el control de
cambios, para acomodar actualizaciones y modificaciones.
Proceso de la Gestión de la
Configuración 28
Identificación
Según la ICE (Integrated Computer Engineering) se debería
implementar una biblioteca centralizada apoyada con una
herramienta automatizada. Esta biblioteca será el
repositorio donde se encontrarán las versiones del software.
Las versiones para el cliente y las del desarrollador
deberán encontrarse en diferentes bibliotecas
Proceso de la Gestión de la
Configuración 29
Control de cambios
En esta actividad se gestiona los cambios que se realizarán
al software durante su ciclo de vida. Determina que cambio
se debe hacer, si es que es correcto y la manera de su
implementación
Según la ICE, el control de cambios consiste en:
Identificación
Reporte
Análisis
Implementación
Proceso de la Gestión de la
Configuración 30
Proceso del control de cambios
Proceso de la Gestión de la
Configuración 31
Comité de control de cambios
Es el órgano de gobierno para todos los problemas
relacionados con la GCS. En general, la CCC está
compuesta por los miembros de la organización de
usuarios/solicitantes de cambios y de desarrolladores.
Para grandes proyectos, el CCC puede estar organizado en
una jerarquía que trate los problemas del sistema, del
hardware y del software por separado.
Proceso de la Gestión de la
Configuración 32
Estado de Contabilidad (registro)
Es el manejo de la información que es necesaria durante la
configuración del software.
Proveerá trazabilidad de cambios a los requerimientos de
la línea base, diseño, código y data y documentación
asociada
Esto quiere decir que si el software sufre algún cambio, este
deberá ser correctamente documentado para que se lleve
un registro de esto, lo cual evitará que los desarrolladores
no conozcan o sepan sobre el progreso del proyecto
Proceso de la Gestión de la
Configuración 33
Estado de Contabilidad
Cualquier información liberada de la biblioteca debería ser
descrita en un documento de descripción de versión
(Software Version Description)
En este documento se debe inventariar los componentes de
la versión, los problemas que persisten y que los han sido
resueltos, diferencias entre versiones, notas e instrucciones
para la compilación
Proceso de la Gestión de la
Configuración 34
Estado de Contabilidad: Generación de informes
La generación de informes de estado de la configuración
(GIEC) responde a las preguntas:
1. ¿Qué pasó?
2. ¿Quién lo hizo?
3. ¿Cuándo pasó?
4. ¿Qué más se vio afectado?
Proceso de la Gestión de la
Configuración 35
Auditoría
Es utilizada para identificar los elementos del sistema que
satisfacen los requerimientos del cliente. Según SWEBOK
existen dos tipos de auditoría: la física y la funcional
La auditoría funcional verifica si parte del sistema cumple con las
especificaciones que rigen el producto
La auditoría física se asegura que la documentación y diseño del
software sea igual al sistema construido
Proceso de la Gestión de la
Configuración 36
Auditoría
¿Se ha hecho el cambio especificado en el documento de
orden de cambio? ¿Se han incorporado modificaciones
adicionales?
¿Se ha realizado una revisión técnica formal para
comprobar la corrección técnica?
¿Se han seguido adecuadamente los estándares de
ingeniería del software?
Proceso de la Gestión de la
Configuración 37
Auditoría
¿Se han marcado los cambios en el ECS? ¿Se han
especificado la fecha y el autor del cambio? ¿Refleja la
identificación del ECS los cambios?
¿Se han seguido los procedimientos del GCS para señalar
el cambio, registrarlo y divulgarlo?
¿Se han actualizado adecuadamente todos los ECS
relacionados?
Proceso de la Gestión de la
Configuración 38
Gestión de los entregables del software
Durante la construcción del software se combinan los
elementos y datos de la configuración para crear un
ejecutable del software y de esta manera entregarlo al
cliente
La gestión de los entregables del software, es la
identificación, empaquetado y entrega del software. Sin
embargo, este puede cambiar luego de ser analizado y
encontrar las partes del software que deberán ser
cambiadas para lanzar un nueva versión
Beneficios 39
Genera una documentación que comprende: la descripción
completa del producto final, la identificación de todos y
cada uno de sus componentes, los atributos, prestaciones y
cambios de dichos componentes
Construye una base para gestionar cambios al diseño en
vigor y auditar el producto y/o sus componentes.
Posibilidad de recuperar las configuraciones en vigor, las
fabricadas y las entregadas a lo largo de toda la vida útil
del producto y relacionarlas con los requisitos y otras
informaciones asociadas.
Beneficios 40
Resolución más rápida de problemas
Gestión de cambios más eficiente
Reducción de costes
Control de licencias
Mayores niveles de seguridad
Mayor rapidez en la reestructuración del servicio
Gestión de la Configuración 41
Herramientas
Microsoft Visual SourceSafe
SourceOffSite
CVS
SVN (Subversion)
Mercurial
GIT
Tortoise (Cliente para Subversion)
Rational ClearCase
Resumen 42
La gestión de la configuración es el conjunto total de
actividades utilizadas para administrar el contenido y
asegurar la integridad del producto de software desde
el principio, incluyendo su proceso de desarrollo y hasta
el final de su vida útil
En el control de versiones hay que disponer de un método
para designar las diferentes versiones de manera
sistemática u organizada.
El control de cambios es la actividad que gestiona los
cambios que se realizarán al software durante su ciclo de
vida. Determina que cambio se debe hacer, si es que es
correcto y la manera de su implementación
Se presentaron diferentes herramientas para la GCS
¿Preguntas? 43
¿Cuáles son las actividades del proceso de
gestión de la configuración?