Gestión de Configuración del Software Facultad de Informática, ciencias de la Comunicación y Técnicas Especiales Herramientas y Procesos de Software Gestión de Configuración de SW Cuando se construye software de computadora, los cambios son inevitables. Los cambios aumentan el grado de confusión entre los ingenieros del software que están trabajando en el proyecto. La confusión surge cuando: no se han analizado los cambios antes de realizarlos no se han registrado antes de implementarlos, no se les han comunicado a aquellas personas que necesitan saberlo o no se han controlado de manera que mejoren la calidad y reduzcan los errores. 2 1
Los cambios Sin importar en qué momento del ciclo de vida nos encontremos, el sistema cambiará y el deseo de cambiarlo persistirá a lo largo de todo el ciclo de vida. Los cambios se producen por: Nuevos requerimientos del negocio Nuevas necesidades del usuario Reorganización comercial Restricciones de presupuestos o planificaciones 3 Gestión de Configuración de Software - Definición La gestión de configuración es una actividad de auto protección que se aplica a lo largo del proceso de la Ingeniería de Software y que tiene como objetivo identificar, organizar y controlar las modificaciones que sufre el software que construye un equipo. Babich y Pressman 4 2
Gestión de Configuración de Software Gestión de configuración NO ES Mantenimiento del Software 5 Los cambios La 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 de garantía de calidad que se aplica en todas las fases del proceso de la ingeniería del software. 6 3
Actividades de la GCS 1. Identificar el cambio 2. Controlar el cambio 3. Garantizar que el cambio se implementa adecuadamente 4. Informar del cambio a los interesados. 7 Elementos de Configuración La Ingeniería del software produce: Programas Datos Documentos Todos ellos se transforman en elementos de configuración del software. 8 4
Elementos de configuración- Ejemplos Especificación del sistema Plan del Proyecto de Software Especificación de requisitos del software: Modelo del análisis Especificaciones de Procesos Prototipos Manual de usuario Especificación del diseño Listados de códigos fuentes Especificación de las pruebas Manuales de operación y ejecución Programas ejecutables Descripción de la base de datos Etc... 9 Objetos de configuración Los ECSs se organizan como objetos de configuración que han de ser catalogados en la base de datos del proyecto con un nombre único. Un objeto de configuración tiene un nombre y unos atributos y está «conectado» a otros objetos mediante relaciones. 10 5
Línea Base Una línea de base es una especificación o producto que se ha revisado formalmente, 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. La Línea de base es un punto de referencia en el desarrollo del software que queda marcado con la aprobación de uno o más elementos de configuración del SW. Se pueden establecer por ejemplo al terminar cada fase del ciclo de vida que se esté utilizando. 11 Línea Base Ingeniería del Sistema Análisis de Requisitos Diseño del Software Especificación Del sistema Especificación de requisitos Especificación Del diseño Codificación Prueba Entrega Código fuente Planes, procedimientos, datos de pruebas Sistema en funcionamiento 12 6
Líneas de Base y Elementos de Configuración Relación Una línea de base Varios elementos De configuración 13 El proceso de la GCS 1. Identificación los elementos de configuración 2. Control de versiones 3. Control de cambios 4. Auditorías de Configuración: 1. Revisiones formales 2. Auditorías de configuración 5. Generación de informes 14 7
El proceso de la GCS 1.- Identificación los elementos de configuración 1. Identificar y organizar los objetos como básicos y compuestos (colección de básicos y compuestos) 2. Identificar al objeto con un nombre que lo identifique unívocamente. 3. Identificar las relaciones entre los objetos. 4. Documentarlos con gráficos o notaciones. 15 El proceso de la GCS 2.- Control de versiones 1. Combina procedimientos y herramientas para gestionar las versiones de los objetos de configuración creados durante el proceso de ingeniería de software. 2. Cada versión del software es un colección de ECS y cada versión puede estar compuesta de diferentes variantes. 3. A cada componente se le asigna una tupla de atributos, lista de características que definen si se ha de utilizar el componente cuando se va a construir una determinada versión del software. 16 8
El proceso de la GCS 3.- El proceso del Control de cambios Combina procedimientos humanos y herramientas. Elementos del control de cambios: Petición del cambio Autoridad de control de cambios (ACC) Orden de Ingeniería de cambios (OCI) Procesos de alta y baja de objetos (control de acceso y sincronización) Nivel del cambio: informal (antes de la línea de base), a nivel del proyecto (cambio local) o formal (cuando el software está en los clientes). 17 El Proceso Formal del Control de Cambios El usuario reconoce la necesidad del cambio El usuario pide el cambio El desarrollador lo evalúa Se genera un informe de cambios La autoridad de control de cambios decide Se genera la orden de cambio Se rechaza el cambio Se informa al usuario 18 9
El Proceso Formal del Control de Cambios Se genera la orden de cambio Se identifican los elementos de configuración afectados Se dan de baja los ECS (sincronización) Se realiza el cambio Se audita el cambio Se aprueba el cambio Se dan de alta los ECS afectados Se incluyen cambios en producción Se revisan los cambios en todos los ECS Se distribuye una nueva versión con los cambios 19 El proceso de la GCS 4.- Auditorías de Configuración 1. Revisiones técnicas formales: es una reunión con determinadas premisas que se centra en la corrección técnica del ECS que ha sido modificado, evaluando su consistencia con otros ECS, las omisiones o efectos secundarios. 2. Auditorías de configuración: es una actividad independiente que es llevada a cabo por el grupo de garantía de calidad y tiene como objetivo asegurar que se ha hecho, revisado, implementado y comunicado correctamente el cambio, de acuerdo a los estándares. 20 10
El proceso de la GCS 5.- Generación de informes de estado de configuración (IEC) Es una actividad que documenta (contabiliza): Qué pasó? Quién lo hizo? Cuándo pasó? Qué más se vio afectado? en cada paso del proceso formal del control de cambios. Su objetivo es el de mejorar la comunicación entre todas las personas involucradas en el proyecto. 21 GCS para IWeb A medida que las WebApps van creciendo en importancia para la supervivencia y el crecimiento de los negocios, también crece el control de la configuración. Por qué? Sin controles eficaces cualquier cambio inadecuado en una WebApp (inmediatez y la evolución continua atributos dominantes de muchas WebApps) puede conducir a: una ubicación no autorizada de la información del producto nuevo; una funcionalidad errónea y pobremente comprobada que frustra a los visitantes del sitio Web; agujeros de seguridad que ponen en peligro a los sistemas internos de las compañías, y otras consecuencias económicamente desagradables e incluso desastrosas. 22 11
GCS para IWeb Se pueden aplicar las estrategias generales, pero las tácticas y herramientas deberán adaptarse y ajustarse a la naturaleza única de las WebApps. Contenido. Una WebApp normal contiene una gran cantidad de contenido (texto, gráficos, applets, guiones, archivos de sonido y vídeo, elementos activos de páginas, tablas, corrientes de datos y muchos más) El reto es organizar este mar de contenido en un conjunto razonable de objetos de configuración y entonces establecer los mecanismos de control de configuración adecuados para estos objetos. Un enfoque será modelar el contenido de la WebApp mediante la utilización de técnicas convencionales de modelado de datos. La naturaleza estática y dinámica de existencia temporal y fija, o un objeto permanente) son ejemplos de las propiedades necesarias para establecer un enfoque GCS eficaz. 23 GCS para IWeb Personas. Dado que en un porcentaje significativo del desarrollo de las WebApps, cualquier persona que esté implicada puede crear el contenido. Muchos creadores de contenido no tienen antecedentes en ingeniería del software y no tienen ningún conocimiento de la necesidad de una gestión de configuración. La aplicación crece y cambia de forma incontrolada. Escalabilidad. A medida que crece el tamaño y la complejidad, los pequeños cambios pueden tener efectos inalcanzables. Por tanto, el rigor de los mecanismos de control de la configuración deberán ser directamente proporcionales a la escalabilidad de la aplicación. 24 12
GCS para IWeb Política. Quién es el propietario de una WebApp? Esta pregunta se argumenta en compañías grandes y pequeñas, y la respuesta tiene un impacto significativo en las actividades de gestión y control asociadas con la IWeb. En algunos casos los diseñadores de WebApps se encuentran fuera de la organización TI, dificultando posiblemente la comunicación. quién asume la responsabilidad de la información en el sitio Web? quién asegura que los procesos de control de calidad se han llevado a cabo antes de publicar la información en el sitio Web? quién es el responsable de hacer los cambios? quién asume el coste del cambio? 25 BCS para Iweb - Conclusiones La gestión de configuración para la IWeb está todavía en su infancia. Un proceso convencional de GCS puede resultar demasiado pesado y torpe. La gran mayoría de las herramientas GCS no tienen las características que permiten adaptarse fácilmente a la IWeb. creación de un proceso de gestión de configuración que sea lo suficientemente hábil como para aceptar la inmediatez y la evolución continua de las WebApps; aplicación de mejores conceptos y herramientas de gestión de configuración para aquellos que desarrollan y no están familiarizados con la tecnología; suministro del soporte a los equipos de desarrollo de WebApps distribuidos; suministro de control en un entorno de cuasipublicación, donde el contenido cambia de forma casi continua; consecución de la granularidad necesaria para controlar una gran cantidad de objetos de configuración; incorporación de la funcionalidad de gestión de configuración en las herramientas IWeb existentes; gestión de cambios en objetos que contienen enlaces con otros objetos. 26 13