Gestión de la Configuración del
Software
Javier Tuya
Universidad de Oviedo
Departamento de Informática
J. Tuya (1995-2007) Gestión de la Configuración del Software 2
Introducción
"Sin importar en qué momento del ciclo de vida nos
encontremos, el sistema cambiará, y el deseo de
cambio persistirá a lo largo de todo el ciclo de vida.
(Primera ley de la Ingeniería de Sistemas), En "Software Configuration Management", Bersoff, Henderson & Siegel, Prentice-Hall, 1980) Gestión de la Configuración del Software = Sofware Configuration Management (SCM)
Objetivo
Intentar controlar el mundo irracional de los cambios:
Mantener la integridad del producto
Evaluar y controlar cambios
Hacer el producto visible a todo el equipo
Todo esto, DURANTE TODO EL CICLO DE VIDA, a
diferencia del mantenimiento
SCM es una actividad "de protección"
Elementos de la Configuración
y Línea base
Elemento de Configuración del Software: ECS
(= Computer Software Configuration Item: CSCI)
Cualquier "cosa" puesta EXPLÍCITAMENTE bajo control
o Especificación, Diseño, Código fuente y objeto
o Planes, Pruebas, Manuales, Estándares
o Peticiones de cambios
o Otros productos software
Linea base (= Baseline)
Representa un estado "estable" de varios ECS
o Antes de la línea base: Cambio rápido
o Después: Necesario seguir un procedimiento formal
J. Tuya (1995-2007) Gestión de la Configuración del Software 5
Funciones de SCM
Identificación de ECS y líneas base
Control de cambios
Contabilidad de estado
Auditoría de la configuración (o de estado)
Separación de Entornos. Pasos a Producción
Gestión del código fuente y control de versiones
J. Tuya (1995-2007) Gestión de la Configuración del Software 6
Identificación
Para cada ECS
Identificador (número, letra, ambos. No ambiguo)
Nombre (descriptivo)
Tipo (documento, código, producto de terceros, etc.)
Localización
Fecha
Versión (mayor, menor, revisión)
Estado (p.e. Para un documento En elaboración, finalizado, revisado, aceptado)
Proyecto/producto
J. Tuya (1995-2007) Gestión de la Configuración del Software 7
Control de Cambios
Realizados sobre una línea base
Diferentes tipos de cambios. Una posible clasificación: Discrepancias
o Error de requisitos
o Error de desarrollo (mala Implementación de reqs.) o Violación estándares
Cambios pedidos
o Aumentos (añadir requisitos) o Mejoras (reescritura, optimización)
Clasificación de problemas (para mantenimiento) Algo no puede ser ejecutado
Existen problemas, pero se puede solucionar con un parche temporal
Problemas, pero se puede aun realizar el trabajo
J. Tuya (1995-2007) Gestión de la Configuración del Software 8
Proceso de gestión de cambios
Generar Petición Registrar Evaluar Generar Orden Cambio Realizar Cambio Actualizar Configuración Cerrar Informar Rechazo Decidir ECO (Engineering Change Order) DR (Discrepancy Report)
J. Tuya (1995-2007) Gestión de la Configuración del Software 9
Proceso de gestión de cambios
Quién pide el Cambio?
Cualquiera
Quién evalúa y Decide?
Comité de Control de Configuración
(Configuration Control Board: CCB)
Quién compone el CCB
Personal de Calidad
Project Manager (Director)
Arquitecto principal (jefe del EDS)
Quien pueda hacer la decisión y TENGA autoridad
J. Tuya (1995-2007) Gestión de la Configuración del Software 10
Otro
Proceso
Usuario y Responsables Responsable (Funcional) Helpdesk GeneralDesarrollo Calidad REGISTROS
Registrado
Evaluación del cambio
Incidencia Registrada
Pruebas de Integración y Validación
Cerrado Resumen de Cambios Nueva Línea Base Notificación Incidencia Registro Escalado Registro Propuesta de Cambio Traspaso a Mantenimiento
Aprobación del cambio
Asignado Evaluado Aprobado, Rechazado, Aplazado Implementa do Verificado Registro de Mantenimiento Asignación Solicitud Mejora o Adaptación Paso a Producción Notificación Cambios Verificación Cambio Desarrollo Cambio
Según IEEE
Registro Evaluación Aprobación Implementación Usuario y Responsables Responsable (Funcional) Helpdesk GeneralDesarrollo Calidad REGISTROS
Registrado
Evaluación del cambio
Incidencia Registrada Notificación Incidencia Registro Escalado Registro Propuesta de Cambio Traspaso a Mantenimiento
Aprobación del cambio
Asignado Evaluado Aprobado, Rechazado, Aplazado Implementa do Registro de Mantenimiento Asignación Solicitud Mejora o Adaptación Verificación Cambio Desarrollo Cambio
Evaluación del cambio
Pruebas de Integración y Validación
Cerrado
Resumen de Cambios Nueva Línea Base Aprobación del cambio
Asignado Evaluado Aprobado, Rechazado, Aplazado Implementa do Verificado Asignación Paso a Producción Notificación Cambios Verificación Cambio Desarrollo Cambio
J. Tuya (1995-2007) Gestión de la Configuración del Software 13
Contabilidad de Estado
Objetivo Conocer o Qué pasó? o Quién lo hizo? o Cuando?o Qué más se vio afectado?
Se genera un asiento en la contabilidad cuando: Aparece un nuevo ECS o cambia la identificación
Se aprueba o se realiza un cambio
Se hace una auditoría
Periódicamente se generan "Informes de estado" (para evitar que "la mano izquierda no sepa lo que hace la derecha")
J. Tuya (1995-2007) Gestión de la Configuración del Software 14
Autitoría de la Configuración
Objetivo Asegurar que los cambios se realizan correctamente
No basta solo con evaluar y autorizar el cambio, sino que hay que asegurarse de que se ha realizado, y de forma correcta
Se utilizan: Revisiones Técnicas Formales
Auditorías
Cuestiones preguntadas Se ha realizado el cambio especificado en a orden?
Se han realizado cambios adicionales?
Se ha realizado una RTF para asegurar su corrección técnica?
Se han seguido los estándares?
Se han indicado claramente los cambios, fecha y autor?
Se han actualizado adecuadamente todos los ECS relacionados?
J. Tuya (1995-2007) Gestión de la Configuración del Software 15
Separación de Entornos
Sistema compilado operativo en diferentes estados:
o Desarrollo (varios)
o Integración (juntar componentes y pruebas integración)
o Preproducción (pruebas aceptación, formación)
o Producción (la versión activa utilizada en cada momento)
Librería Maestra Desarrollo Pruebas Integración Despliegue Librería Dinámica Promoción Librería de Producción Librería Maestra (repositorio) Librería de Integración Etiquetado Línea Base Build Librería de Pre-Producción Despliegue en pruebas (1) (2) (3) (3) (4) (5) (6) (7) (7) (8) (8) (6) PRODUCCIÓN DESARROLLO
J. Tuya (1995-2007) Gestión de la Configuración del Software 16
Librería Maestra Desarrollo Pruebas Integración Despliegue Librería Dinámica Promoción Librería de Producción Librería Maestra (repositorio) Librería de Integración Etiquetado Línea Base Build Librería de Pre-Producción Despliegue en pruebas (1) (2) (3) (3) (4) (5) (6) (7) (7) (8) (8) (6) PRODUCCIÓN DESARROLLO
J. Tuya (1995-2007) Gestión de la Configuración del Software 17
Gestión de código fuente
Librerías Es necesario establecer un esquema de librerías de código. el propuesto por IEEE es:
o Dinámica (programador, elementos nuevos y modificaciones)
o Controlada o maestra (para gestionar la línea base actual y sus cambios) o Estática o repositorio (archivo de las diferentes líneas base)
Herramientas de control de versionesMerant (Merant Version Manager)
PVCS
Microsoft Visual Source Safe
VSS
GNU Code Version System
CVS
GNU Revision Control System
RCS
Unix Source Code Control System
SCCS
J. Tuya (1995-2007) Gestión de la Configuración del Software 18
Herramientas Control de Versiones
Etiqueta (release) Versiones (filas) Directorios Ficheros (columnas) (compuesto) (simple) A;1 A;2 A;3 A;4 B;1 B;2 C;3 C;1 C;2 C;3 C;4 Directorio1 Dir. 2 Etiqueta1 Etiqueta2
Operaciones (VSS): Crear/borrar/organizar Desproteger, Reservar, Check-Out
Proteger, Remplazar, Check-In
Etiquetar (líneas base)
Visualizar (ficheros, historia, ficheros desprotegidos, etc.)
Protecciones usuario/archivo
Desprotecciones concurrentes. Diferencias. Juntar cambios
Sincronización (actualizar todos los ficheros de un proyecto)
Herramientas para control de
cambios
Merant (Merant Tracker) PVCS Tracker Microsoft (privado)Mozilla Public License Bug Tracking System
Bugzilla
Interfaz de Gestión de la
Configuración de Métrica 3
Tipos de mantenimiento
Correctivo o Corregir errores Evolutivoo Expansión/cambio necesidades usuario
Adaptativo
o Entornos en que opera
Perfectivo
J. Tuya (1995-2007) Gestión de la Configuración del Software 21
Interfaz de Gestión de la
Configuración de Métrica 3
En EVS
EVS-GC 1: Definición de los requisitos de GC
EVS-GC 2: Establecimiento del plan de GC
o EVS-GC 2.1: Definición del plan de GC
o EVS-GC 2.2: Especificación del entorno Tecnológico para GC
En ASI, DSI, CSI, IAS
o Mantener denominaciones, versiones, localizaciones, estados (mínimo: en elaboración, finalizado, revisado, aceptado)
GC 1: Identificación y registro de productos (de los procesos)
GC 2: Identificación y registro del producto global
J. Tuya (1995-2007) Gestión de la Configuración del Software 22
Interfaz de Gestión de la
Configuración de Métrica 3
En MSI (Mantenimiento)
MSI-GC 1: Registro del cambio en el sistema de gestión de la configuración
o MSI-GC 1.1: Registro del cambio (tras aprobarse la propuesta)
o MSI-GC 1.2: Registro de la nueva versión de los productos afectados por el cambio
o MSI-GC 1.3: Registro de la nueva versión de los sistemas de información
Resto de actividades de gestión de configuración durante el mantenimiento:
o Métrica 3 no especifica cómo, esto es solo el interfaz con la metodología
J. Tuya (1995-2007) Gestión de la Configuración del Software 23
Plan de Gestión de Configuración
Estándares IEEE
Estándares:
IEEE Std 828-1998: IEEE Standard for Software Configuration Management Plans
o Contenidos mínimos de un plan de Gestión de la configuración
IEEE Std 1042-1987: IEEE Guide to Software Configuration Management
o Interpretación de IEEE Std 828
o Guía para planificar la gestión de la configuración
o Ejemplos de planes
J. Tuya (1995-2007) Gestión de la Configuración del Software 24
IEEE Standard for Software
Configuration Management Plans
(cap 4. The SCM Plan) Introduction
SCM Management Organization
SCM Responsibilities
Applicable policies, directives and procedures
SCM Activites Configuration identification
o Identifying configuration items
o Naming configuration items o Acquiring configuration items
SCM Activites (cont.) Configuration control
o Requesting changes o Evaluating changes
o Approving or disapproving changes o Implementing changes
Configuration status accounting
Configuration audits and reviews
Interface control
Subcontractor/vendor control
SCM Schedules
SCM ResourcesJ. Tuya (1995-2007) Gestión de la Configuración del Software 25
IEEE Guide to Software
Configuration Management
(Cap 2. SCM Disciplines)
The context of SCM SCM is a Service Function
SCM is a Part of the Engingeering Process
SCM Manages all Software Entities
The Process of SCM Management Environments
Dynamics of SCM
Role of Source Code
Different Levels of Control
The implementation of SCM Using Software Libraries
Controlling Changes to Libraries
Using Configuration Control Boards
The Tools of SCM Basic Tool Set
Advanced Tool Set
On-Line Tool Set
Integrated Tool Set
(Cap 3. SCM Plans) (Appendix A-D. Examples)