Gestión de la configuración de software

 

Propósitos

Las siguientes son las razones clave para implementar un Sistema de Gestión de Configuración de Software:

  • Actualización constante de las diferentes personas que trabajan en el software.
  • Un proyecto de configuración de software puede contener varias versiones, ramas y autores, y el equipo puede estar disperso geográficamente y trabajar simultáneamente.
  • Los cambios en los requisitos de los usuarios, las políticas, los presupuestos y los plazos deben ajustarse.
  • El software debe poder ejecutarse en una variedad de plataformas y sistemas operativos.
  • Ayuda en el desarrollo de la coordinación de las partes interesadas
  • El proceso SCM también es útil para controlar los costos de los cambios en el sistema.

Planeación de la configuración 

La administración de la configuración del software es un conjunto de actividades que se desarrollaron para administrar el cambio a lo largo del ciclo de vida del software de computadora.

Elementos de la configuración

  • Elementos componentes: conjunto de herramientas acopladas dentro de un sistema de administración de archivos (por ejemplo, base de datos) que permite el acceso a cada ítem de configuración del software, así como su gestión.
  • Elementos de proceso: colección de acciones y tareas que definen un enfoque efectivo de la gestión del cambio (y actividades relacionadas) para todos los elementos constituyentes involucrados en la administración, ingeniería y uso del software.
  • Elementos de construcción: conjunto de herramientas que automatizan la construcción de software al asegurarse de que se ensambló el conjunto adecuado de componentes validados (es decir, la versión correcta).
  • Elementos humanos: conjunto de herramientas y características de proceso (que abarcan otros elementos AC) utilizados por el equipo de software para implementar ACS efectiva.

Identificación de objetos

Es posible identificar dos tipos de objetos : básicos y agregados.

Un objeto básico es una unidad de información que se crea durante el análisis, el diseño, el código o la prueba.

Por ejemplo, un objeto básico puede ser una sección de una especificación de requerimientos, parte de un modelo de diseño, código fuente para un componente o una suite de casos de prueba que se utilice para ejercitar el código.

 Un objeto agregado es una colección de objetos básicos y de otros objetos agregados.

Por ejemplo, un DesignSpecification es un objeto agregado. Conceptualmente, puede vérsele como una lista nominada (identificada) de punteros que especifican objetos agregados, como ArchitecturalModel y DataModel, y objetos básicos, como ComponentN y UMLClass-DiagramN.

Control de versiones

El control de versión combina procedimientos y herramientas para administrar diferentes versiones de objetos de configuración que se crean durante el proceso de software. 

Un sistema de control de versión implementa o se integra directamente con cuatro grandes capacidades: 

1) una base de datos de proyecto (repositorio) que almacena todos los objetos de configuración relevantes, 

2) una capacidad de administración de versión que almacena todas las versiones de un objeto de configuración (o que permite la construcción de cualquier versión usando diferencias de las versiones pasadas) 

3) una facilidad para elaboración que le permite recopilar todos los objetos de configuración relevantes y construir una versión específica del software.

Además, los sistemas de control de versión y de control de cambio con frecuencia implementan una capacidad de rastreador de conflictos (también llamado rastreador de errores) que permite al equipo registrar y rastrear el estado de todos los conflictos sobresalientes asociados con cada objeto de configuración.

Algunos sistemas de control de versión establecen un conjunto de cambio, una colección de todos los cambios (en relación con cierta configuración de referencia) que se requieren para crear una versión específica del software. 

Control de cambios


El control de cambios es una actividad procedimental que garantiza la calidad y la consistencia conforme se realizan cambios a un objeto de configuración. El proceso de control de cambios comienza con una petición de cambios, conduce a una decisión para hacer o rechazar la petición del cambio y culmina con una actualización controlada del ICS que debe cambiarse.

Auditoría

Una auditoría de configuración del software complementa la revisión técnica al valorar un objeto de configuración acerca de las características que por lo general no se consideran durante la revisión. 

La auditoría hace y responde las siguientes preguntas:

1. ¿Se realizó el cambio especificado en la OCI? ¿Se incorporó alguna modificación adicional?

2. ¿Se llevó a cabo una revisión técnica para valorar la exactitud técnica?

3. ¿Se siguió el proceso del software y se aplicaron adecuadamente los estándares de ingeniería de software?

4. El cambio se “resaltó” en el ICS? ¿Se especificaron la fecha del cambio y el autor del cambio? ¿Los atributos del objeto de configuración reflejan el cambio?

5. ¿Se siguieron los procedimientos ACS para anotar, registrar y reportar el cambio?

6. ¿Los ICS relacionados se actualizaron adecuadamente?

Informe de estados


El reporte del estado de la configuración (en ocasiones llamado contabilidad de estado) es una tarea ACS que responde las siguientes preguntas:

1) ¿Qué ocurrió? 

2) ¿Quién lo hizo? 

3) ¿Cuándo ocurrió? 

4) ¿Qué más se afectará?

Cada vez que se le asigna a un ICS una nueva identificación o que se le actualiza, se hace una entrada REC. Cada ocasión que el ACC aprueba un cambio (es decir, emite una OCI), se hace una entrada REC. Cada vez que se lleva a cabo una auditoría de la configuración, los resultados se reportan como parte de la tarea REC. La salida del REC puede colocarse en una base de datos en línea o en un sitio web, de modo que los desarrolladores de software o el personal de apoyo puedan acceder a la información del cambio mediante categorías de palabras clave. Además, regularmente se genera un reporte REC y se tiene la intención de mantener al tanto de los cambios importantes a los gerentes y profesionales.

Gestión de la configuración para la ingeniería web

Los desarrolladores de webapps con frecuencia usan un modelo de proceso iterativo incremental que aplica muchos principios derivados del desarrollo de software ágil (capítulo 3). Al usar este método, un equipo de ingeniería con frecuencia desarrolla un incremento de webapp en un periodo muy corto, usando un enfoque impulsado por el cliente. Los incrementos posteriores agregan contenido y funcionalidad adicionales, y es probable que cada uno implemente cambios que conduzcan a aumento de contenido, mejor usabilidad, estética mejorada, mejor navegación, desempeño aumentado y seguridad más fuerte. Por tanto, en el mundo ágil de las webapps, el cambio se ve de manera un poco diferente.

 

Resumen

La administración de la configuración del software es una actividad sombrilla que se aplica a lo largo del proceso de software. La ACS identifica, controla, audita y reporta las modificaciones que invariablemente ocurren mientras el software se desarrolla y después de que se libera a un cliente. Todos los productos de trabajo creados como fases de la ingeniería de software se vuelven parte de una configuración del software. La configuración se organiza de manera que permite el control ordenado del cambio.

La auditoría de la configuración es una actividad SQA que ayuda a garantizar que la calidad se conserva conforme se realizan cambios. El reporte de estado proporciona información acerca de cada cambio a quienes necesitan conocerla.

La administración de la configuración para webapps es similar en muchos aspectos a la ACS para software convencional. Sin embargo, cada una de las tareas núcleo ACS debe dinamizarse para hacerla tan magra como sea posible y deben implementarse provisiones especiales para la administración del contenido.