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)
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 denomina 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.
Líneas base
Una línea base es un concepto de gestión de configuración del software que nos ayuda a controlar los cambios sin impedir seriamente los cambios justificados. La IEEE (Estándar IEEE 610.12-1990) 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.
Una forma de describir la línea base es mediante la siguiente Consideración: las puertas de la cocina en un gran restaurante. Para evitar colisiones, una puerta está marcada como SALIDA y la otra como ENTRADA. Las puertas tienen topes que hacen que sólo se puedan abrir en la dirección apropiada. Si un camarero recoge un pedido en la cocina, lo coloca en una bandeja luego se da cuenta de que ha cogido un plato equivocado, puede cambiar el plato correcto rápida e informalmente antes de salir de la cocina. Sin embargo, si abandona la cocina, le da el plato al cliente y luego se le informa de su error, debe seguir el siguiente procedimiento:
1. Mirar en la orden de pedido si ha habido algún error
2. Disculparse insistentemente
3. Volver a la cocina por la puerta de ENTRADA
4. Explicar el problema, etc.
Una línea base es análoga a la cocina de un restaurante. Antes de que un elemento de configuración de software se convierta en una línea base, el cambio se puede llevar a cabo rápida e informalmente. Sin embargo, una vez que se establece una línea base, pasamos, de forma figurada, por una puerta de un solo sentido. Se pueden llevar a cabo los cambios, pero se debe aplicar un procedimiento formal para evaluar y verificar cada cambio. En el contexto de la ingeniería del software, 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 revisión técnica forma.
Por ejemplo, los elementos de una Especificación de Diseño se documentan y se revisan. Se encuentran errores y se corrigen. Cuando todas las partes de la especificación se han revisado, corregido y aprobado, la Especificación de Desafío se convierte en una línea base. Sólo se pueden realizar cambios futuros en la arquitectura del software (documentado en la Especificación de Desafío) tras haber sido evaluados y aprobados. Aunque se pueden definir las líneas base con cualquier nivel de detalle, las líneas base más comunes son las que se muestran en la Figura 9.1. La progresión de acontecimientos que conducen a una línea base está también ilustrada en la Figura 9.1.
Las tareas de la ingeniería del software producen uno o más ECSs. Una vez que un ECS se ha revisado y aprobado, se coloca en una base de datos del proyecto (también denominada biblioteca del proyecto o depósito de software). Cuando un miembro del equipo de ingeniería del software quiere hacer modificaciones en un ECS de línea base, se copia de la base de datos del proyecto a un área de trabajo privada del ingeniero. Sin embargo, este ECS extraído puede modificarse sólo si se siguen los controles GCS. Las flechas punteadas de la Figura 9.1 muestran el camino de modificación de una línea base ECS.
Elementos de configuración del software
Ya hemos definido un elemento de configuración del software como la información creada como parte del proceso de ingeniería del software. Llevado al extremo, se puede considerar un ECS como una sección individual de una gran especificación o cada caso de prueba de un gran conjunto de pruebas. De forma más realista, un ECS es un documento, un conjunto completo de casos de prueba o un componente de un programa dado (p. ej., una función de C++ o un paquete de ADA).
En realidad, 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. De acuerdo con la Figura 9.2, los objetos de configuración, Especificación de Diseño, modelo de datos, componente N, código fuente y Especificación de Prueba, están definidos por separado. Sin embargo, cada objeto está relacionado con otros como muestran las flechas.
Una flecha curvada representa una relación de composición. Es decir, modelo de datos y componente N son parte del objeto Especificación de Diseño. Una flecha recta con dos puntas representa una interrelación. Si se lleva a cabo un cambio sobre el objeto código fuente, las interrelaciones permiten al ingeniero de software determinar qué otros objetos (y ECSs) pueden verse afectados'.
0 comentarios:
Publicar un comentario