22 Oct

Gestión de Configuración de Software (GCS)

La Gestión de Configuración de Software (GCS) es un conjunto de actividades desarrolladas para gestionar los cambios a lo largo del ciclo de vida del software.

La GCS es una actividad fundamental de garantía de calidad de software que se aplica en todas las fases del proceso de ingeniería del software.

Necesidades de la GCS

  • Los sistemas software tienen una ‘vida larga’.
  • Todos los sistemas software cambian a lo largo de su vida (diferente versión, plataforma, etc.).
  • Hay que asegurar que los cambios producidos ocasionen el mínimo coste.

Beneficios Clave: Lo que Asegura la GCS

  • Coherencia entre versiones.
  • Seguridad ante pérdidas de software o de personal.
  • Reutilización del software.
  • Poder recuperar cualquier versión realizada por cualquier desarrollador en cualquier momento.

Objetivos de la GCS

Establecer y mantener la integridad de los productos generados durante un proyecto de desarrollo de software a lo largo de todo el ciclo de vida.

Actividades Fundamentales de la GCS

  1. Identificar el cambio de nuestro software.
  2. Controlar ese cambio.
  3. Informar el cambio.
  4. Informes de estado de la configuración.
  5. Auditorías y revisiones.
  6. Garantizar que el cambio quede bien implantado.

Proceso de GCS y Estándares

El proceso de GCS consiste en que organizaciones como la IEEE, ISO y CMM encuentran una nueva modalidad, el CM (Configuration Management), que garantiza:

  • Identificación
  • Control
  • Auditoría
  • Contabilidad de estado

Elementos de Configuración del Software (ECS)

Salidas del Proceso de Software

La salida de todo proceso de software se divide en tres grandes grupos sobre los que actúa la Gestión de Configuración de Software:

  • Los programas.
  • El producto del trabajo en algunos programas (documentación, modelos).
  • Datos internos o externos.

La GCS actúa sobre:

  • Programas.
  • Documentos.
  • Datos.

¿Qué es un Elemento de Configuración del Software (ECS)?

Es cada uno de los componentes básicos de un producto software sobre los que se realizará un control. Tiene un nombre y puede evolucionar.

Definición de GCS en función de los ECS

Se define como el arte de identificar, organizar y controlar las modificaciones que sufre el software que construye un equipo de programación.

Ventajas de la GCS

  • Control del software.
  • Visibilidad para el control de cambios.
  • Reducción de costos.
  • Apoyo a la administración del proyecto.

Desventajas de la GCS

  • Requiere un esfuerzo de capacitación inicial de los involucrados.
  • Requiere recursos (personal y equipamiento) no considerados previamente.
  • Generalmente, al principio, produce una “pseudo burocratización” que desaparece luego, una vez que los procedimientos se optimizan y se adquiere la cultura del control.

Ejemplos de Elementos de Configuración (ECS)

Los ECS son los productos tangibles del desarrollo. Ejemplos comunes incluyen:

  • Especificación del sistema.
  • Plan de proyecto.
  • Especificación de requisitos software.
  • Prototipos.
  • Especificación de diseño.
  • Descripción de la Base de Datos.
  • Listados de código fuente.
  • Programas ejecutables.
  • Manual de usuario.
  • Plan de pruebas.
  • Casos de pruebas y resultados registrados.
  • Documentos de mantenimiento.
  • Herramientas.
  • Estándares.

Los elementos de la configuración del software se organizan como Objetos de Configuración (con nombre, descripción, atributos y relaciones):

  • Objetos básicos.
  • Objetos compuestos.

Líneas Base (Baselines)

Una Línea Base es una configuración de referencia en el proceso de desarrollo del software a partir de la cual las revisiones se han de realizar de manera formal.

Objetivo Principal

Controlar los cambios en el software, sin impedir llevar a cabo aquellos que sean justificados.

Objetivos Secundarios

  • Identificar los resultados de las tareas realizadas en cada fase.
  • Asegurar que se ha completado la fase.
  • Servir como punto de partida para los desarrollos posteriores.
  • Servir como punto de partida para las peticiones de cambio.

Cuando un ECS se convierte en una línea base, se introduce en una Base de Datos del Proyecto.

Características de las Líneas Base

  • Una vez que se ha desarrollado y revisado un objeto de configuración, se convierte en una línea base.
  • Los cambios sobre un objeto de Línea Base producen la creación de una nueva versión del objeto.
  • Las líneas base son productos tangibles del proceso de desarrollo. Proveen infraestructura para:
    • Conseguir la visibilidad necesaria para el control de cambios.
    • Auditar adecuadamente el sistema.
    • Proveer información de estado en todo momento.

Tipos de Líneas Base

  • Línea base Funcional.
  • Línea base de Diseño.
  • Línea base de Producto.
  • Línea base Operativa.

Actividades Clave de la Gestión de Configuración de Software

1. Identificación de Configuración

Definición

Consiste en identificar la estructura del producto software y sus elementos, haciéndolos únicos y accesibles.

Objetivos

  • Identificar y organizar elementos del producto software.
  • Asignarles nombres significativos.
  • Definir puntos de líneas base.
  • Definir los ECS que contendrá cada línea base.
  • Establecer un Esquema de Identificación para cada elemento.

Facilidades

  • Bases de datos.
  • Herramientas para la Gestión Automática de Configuración del Software (SW).

2. Control de Versiones

Definición

Consiste en gestionar las versiones de los objetos de configuración creados durante los procesos de Ingeniería del Software.

Objetivos

  • Asignar atributos a cada objeto que permitan asociar versiones.
  • Definir qué elementos componen una versión completa (cada versión es una colección de ECS).
  • Definir qué variantes componen cada versión.

Tipos de Control de Versiones

  • Control de versiones por extensión.
  • Control de versiones por compresión.

3. Control de Cambios

Definición

Consiste en controlar los cambios que se producen a lo largo del ciclo de vida de un producto software.

Pasos del Proceso de Control de Cambios

  1. Petición de cambio.
  2. Evaluación del esfuerzo, efectos secundarios, alcance, etc., del cambio.
  3. Generación de un informe de cambios.
  4. Emisión de una orden de cambio.
  5. Baja en la Base de Datos del objeto a cambiar.
  6. Realización del cambio.
  7. Pruebas.
  8. Alta del objeto en la Base de Datos.
  9. Uso de mecanismos apropiados de cambio de versiones (distribución).

El Comité de Control de Cambios (CCC)

El CCC es el órgano de gobierno para todos los problemas relacionados con la GCS. Está compuesto por los miembros de las organizaciones de usuarios/solicitantes de cambio y de desarrolladores.

Niveles de Control de Cambios

  • Control de cambios informal: Se aplica antes de que un ECS se convierta en una línea base.
  • Control de cambios a nivel de proyecto: Se efectúa una vez que un ECS se convierte en una línea base.
  • Control de cambios formal: Se adopta cuando se distribuye el producto software a los clientes (release).

Información Relacionada con una Petición de Cambio

  • Número de identificación.
  • Origen.
  • Fecha en que se originó.
  • Fecha requerida.
  • Tipo de mantenimiento.
  • Severidad del cambio.
  • Sistema.
  • Programa.

Una Petición de Cambio Debe Identificar:

  • ¿Qué debe ser cambiado?
  • ¿Por qué debe ser cambiado?
  • ¿Cómo va a ser cambiado?
  • ¿Cuál es el presupuesto?
  • ¿Dónde será cambiado?
  • ¿Quién hará el cambio?
  • ¿Es la descripción clara y concisa?
  • ¿Están incluidos todos los detalles para permitir un análisis de impacto?
  • Si no es así, ¿está disponible el origen del cambio para clarificación?

Base de Datos de GCS

Contiene toda la información relevante sobre las configuraciones. En particular:

  • La estructura del producto.
  • El número de revisión actual.
  • Estado actual.
  • Historia de los cambios.

4. Auditoría de la Configuración

Objetivo

Consiste en verificar que el producto software integrado satisface los requerimientos, estándares o acuerdos, y que los componentes que se integran corresponden con las versiones vigentes.

Actividades

  • Validar la completitud del producto software.
  • Mantener la consistencia entre sus elementos.
  • Asegurar que el cambio se ha implementado correctamente.

Tipos de Auditorías de Configuraciones

  • Auditoría funcional.
  • Auditoría física.
  • Revisión Formal de Certificación.

5. Generación de Informes de Estado de la Configuración

Definición

Consiste en informar sobre el estado de los elementos de un producto y de las solicitudes de cambio.

Objetivos

  • Mejorar la comunicación entre las personas involucradas.
  • Mantener informadas a las personas involucradas sobre los cambios efectuados.

Tipos de Registros

  • Registro de solicitudes de cambio.
  • Registro de incidencias.
  • Registro de modificaciones del software.

Tipos de Informes

  • Informe de estado de los cambios.
  • Inventario de los elementos de configuración.
  • Informe de incidencias.
  • Informe de modificaciones.

Documentación y Herramientas de GCS

Documentos Clave

Plan de Gestión de Configuración

Define las normas y procedimientos asociados a la implantación de un sistema de gestión de configuraciones dentro de un proyecto software.

Dossier de Gestión de Configuración

Contiene los resultados de las actividades de gestión de configuraciones.

Dossier de Gestión de Cambios

Contiene toda la información necesaria para asegurar el control de los cambios.

Herramientas de Gestión de Configuración de Software (SCM Tools)

  • Make: Herramienta de automatización de compilación.
  • SCCS: Sistema para Control de Código Fuente.
  • CVS: Control de Versiones de Software.
  • NSE, DSEE: Network Structure Elements (Herramientas de entorno de desarrollo).
  • CMS: Control Manager Software.
  • Bugzilla: Herramienta de gestión de errores y seguimiento de cambios.

Deja un comentario