4 de diciembre de 2012

Gestión de la Configuración del Software

El arte de coordinar el desarrollo de software para minimizar... la confusión, se denomina gestión de configuración. La gestión de configuración es el arte de identificar, organizar y controlar las modificaciones que sufre el software que construye un equipo de programación. La meta es maximizar la productividad minimizando los errores.

La gestión de configuración del software (GCS) es una actividad de autoprotección que se aplica durante el proceso del software. Como el cambio se puede producir en cualquier momento, las actividades de GCS sirven para (1) identificar el cambio, (2) controlar el cambio, (3) garantizar que el cambio se implementa adecuadamente y (4) informar del cambio a todos aquellos que puedan estar interesados.

Es importante distinguir claramente entre el mantenimiento del software y la gestión de configuración del software. El mantenimiento es un conjunto de actividades de ingeniería del software que se producen después de que el software se haya entregado al cliente y esté en funcionamiento. La gestión de configuración del software es un conjunto de actividades de seguimiento y control que comienzan cuando se inicia el proyecto de ingeniería del software y termina sólo cuando el software queda fuera de la circulación.

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 de computadora (tanto técnicos como de usuario) y (3) datos (contenidos en el programa o externos 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.

A medida que progresa el proceso del software, el número de elementos de configuración del software
(ECSs) crece rápidamente. Una especificación del sistema produce un plan del proyecto del software y una especificación de requisitos del software (así como otros documentos relativos al hardware). A su vez, éstos producen otros documentos para crear una jerarquía de información. Si simplemente cada ECS produjera otros ECSs, no habría prácticamente confusión. Desgraciadamente, en el proceso entra en juego otra variable -el cambio-. El cambio se puede producir en cualquier momento y por cualquier razón. De hecho, la Primera Ley de la Ingeniería de Sistemas [BERSO] 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.

¿Cuál es el origen de estos cambios? La respuesta a esta pregunta es tan variada como los cambios mismos. Sin embargo, hay cuatro fuentes fundamentales de cambios:

Nuevos negocios o condiciones comerciales que dictan los cambios en los requisitos del producto o en las normas comerciales;
Nuevas necesidades del cliente que demandan la modificación de los datos producidos por sistemas de información, funcionalidades entregadas por productos o servicios entregados por un sistema basado en computadora;
Reorganización o crecimiento/reducción del negocio que provoca cambios en las prioridades del proyecto o en la estructura del equipo de ingeniería del software;
Restricciones presupuestarias o de planificación que provocan una redefinición del sistema o producto.

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

La gestión de configuración del software es un elemento importante de garantía de calidad del software. Su responsabilidad principal es el control de cambios. Sin embargo, la GCS también es responsable de la identificación de ECSs individuales y de las distintas versiones del software, de las auditorias de la configuración del software para asegurar que se desarrollan adecuadamente y de la generación de informes sobre todos los cambios realizados en la configuración.

Cuando se construye software los cambios son inevitables

• Los cambios aumentan el nivel de confusión en el equipo de desarrollo
• Confusión debida a:
                                  - No se han analizado los cambios antes de realizarlos.
                                  - No se han registrado antes de implementarlos.
                                  - No se les ha comunicado a aquellas personas que necesitan saberlo.
                                  - No se han controlado de manera que mejoren la calidad y reduzcan los errores.
• La Gestión de la Configuración Software (GCS) es una actividad de protección que  gestiona el cambio a lo largo del ciclo de vida del software
• El cambio se puede producir en cualquier momento
• Por tanto, las actividades de GCS son:
                                                             - Identificar el cambio.
                                                             - Controlar el cambio.
                                                             - Garantizar la correcta implementación del cambio.
                                                             - Informar del cambio a todos aquellos que lo necesiten.


Elementos de Configuración

• El software es el resultado del proceso de IS:
                                                                       - Programas.
                                                                       - Datos.
                                                                       - Documentos.
• Los elementos que componen toda la información generada como parte del proceso de IS se denominan colectivamente configuración del software
• A medida que progresa el proceso de IS el número de Elementos de Configuración Software (ECS) crece rápidamente
• e.g. la SRS produce un plan del proyecto y un diseño que a su vez produce código.
• Los ECS producen otros ECSs para crear una jerarquía de información
• Si simplemente tuviéramos esta jerarquía no habría confusión
• La confusión surge cuando entra en juego el cambio
• Éste puede producirse en cualquier momento y por cualquier razón
• Las fuentes fundamentales del cambio son:
      - Fallos.
      - Nuevos negocios o condiciones comerciales que dictan cambios en los requisitos del producto.
      - Nuevas necesidades del cliente que demandan la modificación de los datos, funciones o servicios.
      - Reorganización y/o reducción del volumen comercial que provoca cambios en el proyecto.
      - Restricciones presupuestarias o de planificación que provocan una redefinición del producto.


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, con el objetivo de controlar los cambios en el software, sin impedir llevar a cabo aquellos que sean justificados, Se definen al comienzo del proyecto, coincidiendo con los hitos marcados y generalmente se corresponden con los resultados de las fases.

• Los cambios por tanto pueden ser necesarios y están justificados
• Una línea base es un concepto de GCS que nos ayuda a controlar los cambios sin perjuicio de aquellos que sean necesarios
• El IEEE define una línea base como una especificación o producto que se ha revisado formalmente y sobre los que se ha llegado a un acuerdo, y que de ahí en adelante sirve como base para un desarrollo posterior y que puede cambiarse solamente a través de procedimientos formales de control de cambios
• Antes de que un ECS se convierta en línea base el cambio puede llevarse a cabo de manera rápida e informal
• Sin embargo, una vez que se ha establecido una línea base solo se pueden efectuar los cambios si se aplica un procedimiento  formal para evaluarlos y verificarlos
• El concepto de línea base es similar al de una boda...
• Durante la preparación del evento se pueden cambiar fechas, horas y lugares...... pero una vez mandadas las invitaciones los cambios no son tan sencillos.
• El el contexto de IS definimos una línea base como un punto de referencia en el  desarrollo del software que queda marcado  por el envío de uno o más elementos de  configuración del software y la aprobación  del ECS obtenido mediante una RTF.

Proceso de Generación de Línea Base


• ECSs que forman un conjunto de líneas base:
                                                                       - Plan del proyecto del software.
                                                                       - SRS.
                                                                       - Diseño.
                                                                       - Código.
                                                                       - Casos de prueba.
                                                                       - Manual preliminar de usuario.

                                                                       - Manuales de operación e instalación.
                                                                       - Manual de usuario.
                                                                       - Documentos de mantenimiento.
                                                                       - Estándares y procedimientos de IS.
• Además de estos ECSs pueden inmovilizarse las herramientas de software (e.g., editores, compiladores, herramientas CASE, etc.)


Actividades de GCS

• La GCS es una actividad de protección que  puede considerarse dentro de la SQA
• Aunque su actividad fundamental es el control del cambio también se encarga de otras actividades
• Cualquier GCS debe tener claro:
              - Cómo identificar y gestionar las versiones de un programa para permitir modificaciones.
              - Cómo controlar los cambios antes y después de distribuir el software al cliente.
              - Quién es el responsable de aprobar y de asignar prioridades a los cambios.
              - Como podemos garantizar que los cambios se han llevado a cabo adecuadamente.
              - Qué mecanismos se usan para avisar a otros de los cambios realizados.

• Actividades de GCS:
              - Identificación de ECSs.
              - Control de versiones.
              - Control de cambios.
              - Auditoria de la configuración.
              - Informes de estado.

No hay comentarios:

Publicar un comentario