viernes, 15 de octubre de 2010

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

La Configuración del Software

El resultado del proceso de ingeniería del software es una información que se puede dividir en
tres amplias categorías:

1) Programas de computadora (tanto en forma de código fuente como ejecutable).
2) Documentos que describen los programas (tanto técnicos como de usuario).
3) Estructuras de datos (contenidas en el programa o externas a él).

Los elementos que componen toda la información producida como parte del proceso de ingeniería del software se denominan colectivamente "configuración del software". Dado que la configuración software es la única representación tangible de un programa o sistema software, debe ser controlada para conservar su exactitud, mantener la información actualizada, y asegurar una información clara y concisa conforme avanzamos paso tras paso en el proceso de Ingeniería del Software.

El cambio es un hecho vital en el desarrollo del software:
• Los clientes desean modificar los requerimientos.
• El equipo de desarrollo desea modificar el enfoque técnico.
• Los gestores desean modificar el enfoque del proyecto.

La causa de todas estas modificaciones se debe a que, a medida que pasa el tiempo, todo el mundo sabe más (sabe lo que necesita, cómo aproximarse mejor al problema y cómo hacerlo ganando más dinero). Este conocimiento adicional es la fuerza motriz de la mayoría de los cambios.

El cambio se puede producir en cualquier momento y por cualquier razón. Por ejemplo, se generan cambios en las revisiones, que nos llevan a la modificación de los elementos de la configuración (ECSs); durante la fase de desarrollo, se pueden realizar adiciones en los documentos ya producidos; las pruebas a menudo nos llevan a cambios que se propagan a través de la mayoría de los ECSs.

De hecho, la primera ley de la Ingeniería de Sistemas establece:
Sin importar en qué momento del ciclo de vida del sistema nos encontremos, el sistema cambiará y el deseo de cambiarlo persistirá a lo largo de todo el ciclo de vida.

LA GESTIÓN DE CONFIGURACIONES DEL SOFTWARE (GCS) 

Es un conjunto de actividades desarrolladas para gestionar los cambios a lo largo del ciclo de vida. La GCS es una actividad de garantía de calidad de software que se aplica en todas las fases del proceso de
ingeniería del software.


Los ECS son objetos que poseen sus nombres, atributos y relaciones entre ellos. Una manera fácil de obtenerlos, es respondiendo las preguntas orientadoras:

1.     ¿Cómo identifico y gestiono las diferentes versiones existentes de un mismo software (y su documentación)?
2.     ¿Cómo controlo los cambios, antes y después que he entregado software al cliente?
3.     ¿Quién tiene la responsabilidad de aprobar y asignar prioridades en los cambios (la organización o mi equipo de trabajo)?
4.     ¿Cómo garantizo que los cambios realizados han sido los adecuados?
5.     ¿Qué mecanismos se usan para avisar a otros, de los cambios realizados?
Esto nos lleva a la definición de cinco tareas de GCS: Identificación, control de versiones, control de cambios, auditorias de configuración y generación de informes.

Para controlar y gestionar los elementos de configuración, se debe identificar cada uno de forma única y luego organizarlos mediante un enfoque orientado a objetos. Se puede identificar dos tipos de objetos: objetos básicos y objetos compuestos.

La descripción de cada objeto es una lista de elementos de datos que identifican: El tipo de ECS y un identificador del proyecto, y la información de la versión y/o el cambio. Las relaciones a través de la estructura se pueden representar:

ü  Modelo de datos (interrelacionados) modelo de flujo de datos: Interrelación de objetos compuestos.
ü  Modelo de datos (interrelacionados) caso de prueba de la clase m: Interrelación entre un objeto compuesto y un objeto  básico.

Las interrelaciones entre objetos se representan mediante un lenguaje de de interconexión de módulos. Se puede realizar cambios en cualquier versión. Se han desarrollado herramientas automáticas para ayudar a la tarea de la identificación y en algunos casos se diseña la herramienta para mantener copias completas de versiones más recientes y para acceder a las anteriores se restan los cambios.

Una representación de las diferentes versiones de un sistema es el grafo de evolución. Cada nodo del grafo es un objeto agregado, es decir, una versión completa del software.  

 
Un componente consta de de una colección de objetos del mismo nivel de revisión. Una variante es una colección diferente de objetos del mismo nivel de revisión y por tanto coexiste en paralelo con otras variantes. Una nueva versión se define cuando se realizan cambios significativos  en uno o más objetos.

 
El control de cambios combina los procedimientos humanos y las herramientas  automáticas para proporcionar un mecanismo para el control de cambios. El control de sincronización asegura que los cambios en paralelo  no se sobrescriben mutuamente.



Una auditoría de configuración de software complementa la revisión técnica formal  al comprobar características  que generalmente no tiene  en cuenta la revisión.  La auditoria plantea:

 
La generación de informes responde a las siguientes preguntas: ¿Qué paso?, ¿Quién lo hizo?, ¿Cuándo paso?, ¿Qué es lo más afectado?

Ver màs en:http://es.wikipedia.org/wiki/Gesti%C3%B3n_de_configuraci%C3%B3n_de_software
                    http://html.rincondelvago.com/configuracion-de-software.html
                    http://www.ual.es/~rguirado/posi/Tema5-Apartado5.pdf