Configuración de Software
Introducción Nuevas versiones del software como consecuencias de los cambios. La configuración de software esta relacionada en el manejo de la evolución de sistemas de software. El cambio del software es una actividad en equipo. La configuración de software controla el costo y el esfuerzo involucrados en realizar cambios en el sistema
Introducción Involucra el desarrollo y aplicación de procedimientos y estándares manejar la evolución del software. También puede ser visto como un proceso de la calidad sobre el producto. Cuando un software (documentos y programas) ha sido liberado para administración de configuración se le conoce como la linea base.
Planeación de la Configuración de Software Todos los productos involucrados en el proceso de software deben ser manejados por el proceso de configuración: (Especificación, Diseño, Programas, Datos de Prueba, Manuales de Usuario). Para software complejos se puede generar miles de documentos diferentes.
Planeación de la Configuración de Software Pasos: Definir los tipos de documentos a ser manejados, y el estándar de nombres para llamarlos. Define quien toma la responsabilidad administrar la configuración de software (Administrador de la configuración del software). Definir las políticas de control de cambios y administración de versiones. Definir los registros a realizarse.
Planeación de la Configuración de Software Describir las herramientas que serán usadas para asistir el proceso y las limitaciones sobre su uso. Definir las bases de datos para tomar registros de configuración
Identificación de Elementos de Configuración Grandes proyectos generan miles de documentos diferentes y estos a sus vez tiene copias o modificaciones. Un esquema de nombres debe ser definido para relacionar fácilmente al documento. Los esquemas jerárquicos con múltiples niveles de nombres es el mas usado. Proyecto/Diseño/ModeloConceptual/Venta/MC-14
Base de Datos de Configuraciones Toda la información referente a AC (Administración de Configuraciones debe ser mantenida en una base especial). Alguna de las pregunta que una base de datos de configuraciones debe responder son: Que cliente tienen una versión particular del sistema. Cuantas versiones del sistema se ha creado y en que fecha. Que versiones del sistema se ven afectadas por el cambio de un componente en particular.
Base de Datos de Configuraciones Es parte del sistema que soporta el desarrollo de software. Existen algunas herramientas de software que realizan partes de esta funciones. (CVS, Subversion, etc) Estas herramientas llevan un control sobre todos los cambios realizados sobre la linea base. Generalmente se complementan estos sistemas con software adicional que gestiona la información antes mencionada.
Gestión de Cambio
Formulario de petición de cambio Se debe estandarizar un proceso para solicitar la realización de un cambio sobre un elemento de configuración (EC). Parte de este proceso implica la realización de una forma que resuma de forma concisa la información del cambio a realizar.
Formulario de Petición de Cambio
Mesa de Control de Cambio Todo cambio debe ser revisado por un grupo externo el cual revisa si un cambio es productivo desde la perspectiva organizacional no técnica Este grupo externo por lo general esta confirmado por personal del cliente y desarrolladores También conocido como Change Control Board o CCB.
Registro de Cambio Todo elemento de configuración (EC) debe contener en alguna parte un registro de los diferentes cambio que se le han aplicado. Este registro se compone generalmente de: El cambio hecho, quien lo hizo y cuando fue realizado. En el código fuente este registro se realiza modo de comentario al principio del archivo algunas herramientas CASE ayudan realizarlo automáticamente
Gestión de Versiones y Entregas Crea un esquema de para identificar todas las versiones de un sistema. Implica también realizar un plan que indique cuando serán liberadas nuevas versiones y con que propósito (Conocido como roadmap). Se asegura que los procedimientos y herramientas sean correctamente usadas.
Versión / Variantes / Entregas Versión: Es la instancia de un sistema el cual es funcionalmente distinto a otras instancias del mismo sistema. Variante: Es una instancia de un sistema que tiene funcionalidad idéntica a otra pero tiene cambios en su implementación. Entrega: Es una instancia de un sistema que es entregado a usuario fuera del equipo de desarrollo.
Identificación de Versiones Una identificación de versión provee mecanismo no ambiguo que permita identificar de manera única una nueva instancia de un sistema. Existen tres técnicas conocidas: Numero de Versión. Identificación Basada en Atributos. Identificación Orientada a Cambio.
Numeración de Versiones Es una estructura numérica simple que identifica la versión (1.0, 1.1, 2.0, 2.1, etc) Generalmente esta ordenadas en forma de árbol. No proveen significado. Minimiza los errores en la identificación de la versión
Numeración de Versiones
Identificación Basada en Atributo La combinación de varios atributos de una versión podría darle una identificación única. Se puede usar: fechas, creador, lenguaje usado, cliente, estado, etc. Es mas flexible que una identificación arbitraria pero tiene problemas de unicidad. En la practica se requiere de un nombre asociado para la fácil referencia. Ej: SoftPlus (Lenguaje: Java 1.5, SMBD: PostgreSQL 7.3, fecha: 22 11 2007).
Identificación Orientada a Cambio Se basa en los cambios hechos para identificar la versión. Se usa mas en sistemas que componentes. Cada cambio propuesto origina un grupos de cambios que se deben implementar. En teoría la aplicación secuencial de estos cambios originaran el nuevo sistema, en toda circunstancia
Lecturas Recomendadas Ingeniería de Software. Ian Sommerville. 7 th edición (Capitulo 29).