Está en la página 1de 12

UNIDAD No.

Gestión de la Configuración del Software


Mtra. Romery Alberto Monegro
Santo Domingo, D.N.
08 de Diciembre 2013
Unidad 1: Ingeniería de Software Basada en Componentes

INDICE DEL CONTENIDO

INTRODUCCIÓN DE LA UNIDAD .......................................................................................................................3

Desarrollo del Contenido ................................................................................................................................5

Concepto de Gestión de Configuración.................................................................................................... 5

Elementos de Configuración de Software................................................................................................5

Escenarios de Configuración en el Proceso de Software ..............................................................................10

Bibliografía......................................................................................................................................................12

2 Mtra. Romery Alberto Monegro


Unidad 1: Ingeniería de Software Basada en Componentes

INTRODUCCIÓN DE LA UNIDAD

Imagen obtenida del siguinete HistaInternacional

La configuración son las características funcionales y físicas de una versión especifica de


hardware y elementos de software que combinados de acuerdo a procedimientos de
construcción específicos cumplen un propósito particular.

El propósito de la Gestión de Configuración del Software es establecer y mantener la


integridad de los productos de software a través del ciclo de vida del proceso de
software.

La Gestión de Configuración del Software implica la identificación de la Configuración


del software en puntos dados en el tiempo, el control sistemático de los cambios en la
Configuración y el mantenimiento de la integridad y trazabilidad de la Configuración a
través del ciclo de vida del software. Los productos incluidos son:
• Artefactos requeridos para crear el sistema (ejemplo: el compilador)
• Software distribuido al cliente
• Documentos de requerimientos del software

3 Mtra. Romery Alberto Monegro


Unidad 1: Ingeniería de Software Basada en Componentes

• Código de los programas

Para desarrollar el contenido de la presente unidad se plantean los siguientes objetivos


específicos:
 Conocer la importancia de la gestión de la configuración del software.
 Entender el uso de Branch y la creación de Línea Base.
 Aprender a utilizar herramientas CASE para apoyar los procesos de gestión de
configuraciones creando entornos de trabajo.

4 Mtra. Romery Alberto Monegro


Unidad 1: Ingeniería de Software Basada en Componentes

Desarrollo del Contenido

Concepto de Gestión de Configuración

Gestión de Configuración es el proceso de identificar y definir los elementos en el


sistema, controlando el cambio de estos elementos a lo largo de su ciclo de vida,
registrando y reportando el estado de los elementos y las solicitudes de cambio, y
verificando que los elementos estén completos y que sean los correctos.

Procesos de la Gestión de Configuración de Software

1. Identificación: Se necesita definir un esquema de identificación para reflejar la


estructura del producto, esto involucra identificar la estructura y clases de
componentes, dando a cada uno un nombre, una identificación de versión y una
identificación de Configuración.
2. Control de cambios: Se deben controlar los cambios que se le hacen a través del
ciclo de vida, asegurando que el software sea consistente a través de la creación
de una línea base del producto.
3. Auditorias de configuraciones y revisión: Se debe validar que el producto este
completo y se asi mantener la consistencia entre los componentes, asegurando
que estén en un estado apropiado a través de todo el ciclo de vida del producto y
que el mismo sea una colección bien definida de componentes.
4. Generación de informe: Se debe registrar y reportar el estado de los
componentes y solicitudes de cambio.

Elementos de Configuración de Software

Definimos como un elemento de Configuración a una unidad física y/o lógica parte de un

5 Mtra. Romery Alberto Monegro


Unidad 1: Ingeniería de Software Basada en Componentes

conjunto mayor de elementos, producida o adquirida, que por sus características es


distinguible de las demás y cuya evolución interesa administrar.

Los elementos de Configuración en un proyecto de software pueden ser los siguientes:

1. El plan de proyecto
2. El plan de Gestión de Configuración.
3. El documento de definición de requerimientos
4. Estándares de análisis, diseño, codificación, pruebas, y auditoria
5. Documentos de análisis del sistema
6. Documentos de diseño del sistema
7. Prototipos
8. Documentos de diseño de alto nivel
9. Documentos de diseño de bajo nivel
10. Especificaciones de prueba del sistema
11. El plan de pruebas del sistema
12. El Código fuente del programa
13. Código objeto y ejecutable
14. Especificaciones de pruebas de unidad
15. Planes de pruebas de unidad
16. Documentos de diseño de base de datos
17. Datos de prueba
18. Datos del proyecto
19. Manuales de usuario

Versión

Una versión es una instancia de un elemento de Configuración. El término se usa para


señalar a un elemento de Configuración del software que tiene un conjunto definido de
características funcionales.

6 Mtra. Romery Alberto Monegro


Unidad 1: Ingeniería de Software Basada en Componentes

Revisión

Se define revisión como una versión que se construye sobre otra versión anterior. El
término revisión generalmente se asocia a la noción de corrección de errores, esto es,
hacer cambios a un programa que corrigen solo errores en el diseño lógico pero no
afectan las capacidades funcionales documentadas, dado que ningún requerimiento ha
cambiado.

Variante (Branch)

Se define variante como una versión que es una alternativa a otra versión. Las variantes
pueden permitir a un elemento de Configuración satisfacer requerimientos en conflicto.
Una variante es una nueva versión de un elemento que será añadida a la Configuración
sin reemplazar a la versión anterior.

Por ejemplo, si se desarrolla una aplicación para varios sistemas operativos, algunas
librerías pueden requerir modificaciones para poder ser compiladas o ejecutadas en los
diferentes sistemas; la versiones para Unix y para Windows NT de una librería serían
variantes del mismo elemento. La creación de variantes implica la creación de ramas en
un grafo de evolución.

Línea base (Baseline)

Una línea base es un concepto de gestión de configuraciones del software que nos ayuda
a controlar los cambios sin impedir seriamente los cambios justificados. Una línea base
se define como un punto del ciclo de vida del software en el cual se aplica el control de
configuraciones a un elemento específico de la configuración.

Una línea base es una especificación o producto revisado y aprobado formalmente, que

7 Mtra. Romery Alberto Monegro


Unidad 1: Ingeniería de Software Basada en Componentes

sirve como base para el desarrollo posterior, y puede ser modificado solo a través de
procedimientos formales de control de cambios.

El término también se usa para referirse a una versión particular de un elemento de


software que ha sido aprobado. En cualquier caso, la línea base solo se puede modificar
a través de procedimientos formales de control de cambios. Una línea base, junto con
todos los cambios aprobados a la línea base, representa la Configuración aprobada
actual.

La línea base de la Configuración del software se muestra en la siguiente figura:

Estándar ISO/IEC 12207

El estándar ISO/IEC 12207 ([ISO 12207]) para Procesos del Ciclo de Vida del Software,
establece el Proceso de Gestión de Configuración como uno de los Procesos de Soporte
del Ciclo de Vida. Un Proceso de Soporte ”apoya” a otro proceso como una parte
integral, con un propósito distinto, y contribuye al éxito y a la calidad del proyecto de
software.

Este proceso consiste de las siguientes actividades:

8 Mtra. Romery Alberto Monegro


Unidad 1: Ingeniería de Software Basada en Componentes

1. Implementación del Proceso: Se desarrolla un Plan de Gestión de Configuración


que describe las actividades de Gestión de Configuración, los procedimientos y el
cronograma para su realización, y los responsables de dichas actividades. Dicho
plan debe ser documentado e implementado.

2. Identificación de la Configuración: Se establece un esquema de identificación de


los elementos de software y sus versiones a ser controlados por el proyecto.

3. Control de la Configuración: Se identifican y registran las solicitudes de cambio,


se analiza y evalúa los cambios, se aprueba o rechaza la solicitud, se implementa,
verifica y distribuye el elemento de software modificado.
4. Contabilidad de Estado de la Configuración: Se preparan registros de Gestión y
reportes de estado que muestren el estado e historia de los elementos de
software controlados, incluyendo líneas base.

5. Evaluación de la Configuración: Se determina y asegura que los elementos de


software sean funcionalmente (versus sus requerimientos) y físicamente
completos (es decir, si su diseño y Código reflejan una descripción técnica
actualizada).

6. Gestión de actualización y distribución: Se controla formalmente la


actualización y distribución de los productos de software.

El estándar IEEE Std. 1074-1995 ([IEEE 1074]) para el Desarrollo de Procesos del Ciclo
de Vida del Software, establece el Proceso de Gestión de Configuración del Software
como uno de los Procesos Integrales. Estos son los Procesos necesarios para completar
exitosamente las actividades del proyecto, y son utilizados para asegurar la finalización
y calidad de las funciones del proyecto. Este proceso consiste de las siguientes
actividades:
1. Planificar la Gestión de Configuración.

9 Mtra. Romery Alberto Monegro


Unidad 1: Ingeniería de Software Basada en Componentes

2. Desarrollar la Identificación de la Configuración.


3. Realizar el Control de la Configuración.
4. Realizar la Contabilidad de Estado.

Escenarios de Configuración en el Proceso de Software

Gestión de configuración del código fuente

La evolución del Código fuente es quizás el ejemplo mas claro en la Gestión de


Configuración. A lo largo del desarrollo (y posteriormente en el mantenimiento) las
modificaciones al software se realizan sobre el Código fuente. Y es según el Código
fuente que se valida la documentación asociada.

Los sistemas administradores de versiones se suelen integrar a los entornos de desarrollo


y realizan administración de versiones del Código fuente. Cada modificación de uno de
los archivos del programa va generando una revisión del mismo, y periódicamente se
crean líneas base de todo el proyecto.

De este modo, un equipo de desarrollo puede trabajar en paralelo, compartiendo


versiones de archivos de Código fuente y actualizándolos periódicamente según se van
creando o modificando los archivos que conforman el proyecto.

Gestión de configuración en el desarrollo de software

Como ya habíamos comentado, un elemento de Configuración puede ser prácticamente


cualquier producto o subproducto del desarrollo de software. Las especificaciones de
requisitos, los documentos de análisis y de diseño, el Código fuente y ejecutable, y los
procedimientos y datos de prueba pueden ser sometidos a control de Configuración.

10 Mtra. Romery Alberto Monegro


Unidad 1: Ingeniería de Software Basada en Componentes

Con un control riguroso, es posible entonces mantener registro del estado de todos estos
elementos, lo que facilita la introducción de cambios si se tiene registro de las
dependencias entre ellos, además de facilitar la elaboración de entregables; por
ejemplo, si se tiene registro de las dependencias entre los elementos de Configuración,
es posible que si se produce un cambio en las especificaciones, los documentos de
análisis y diseño y el Código fuente asociados puedan ser actualizados sin que tome
demasiado tiempo realizar su búsqueda.

Gestión de configuración en el mantenimiento de software

En el mantenimiento de software, cobra importancia la función del Comité de Control de


Cambios (CCC), que se encarga de recibir, estudiar y aprobar las solicitudes de cambio
en el software que son presentadas, sea por los usuarios o por los propios encargados del
mantenimiento. En este caso, las funciones de control y de auditoria se vuelven casi
indispensables, pues es necesario mantener registro de todas las solicitudes de cambio
presentadas y del estado actual de cada una de ellas. Un sistema de Gestión de
Configuración que apoye la Gestión de solicitudes de cambio, debería permitir el
registro por parte de los usuarios de las solicitudes de cambio, su revisión por parte del
CCC, y si son aprobadas la creación de ordenes de cambio.

Un cambio implica generalmente la actualización tanto del Código fuente, como de los
documentos de especificación de requisitos, análisis y diseño, casos de prueba y
manuales. Por lo tanto, en el escenario anterior, resulta de utilidad mantener un
registro de las dependencias entre los elementos de Configuración. El cambio se vera
reflejado en la creación de nuevas versiones de los elementos respectivos.

Gestión en la distribución del software a las PC- Usuarios

Cuando se pone en producción un software, se distribuyen copias del mismo entre los
diversos usuarios del sistema. En este escenario, un sistema de Gestión de Configuración

11 Mtra. Romery Alberto Monegro


Unidad 1: Ingeniería de Software Basada en Componentes

debería permitir registrar las Configuraciones (conjunto de versiones de elementos de


Configuración) que cuenta cada PC - usuario. Puede ocurrir, que si un mismo sistema se
vende a distintos clientes, en algún momento surjan requerimientos contradictorios o
necesidades que lleven a la creación de variantes de los elementos de Configuración. El
sistema de Gestión de Configuración apoyaría entonces al momento de estudiar una
solicitud de un usuario a conocer cual es la Configuración con la que esta trabajando.

Bibliografía
1. Martínez, Luis F. Iribarne. Modelo de Mediacion para el Desarrollo de Software basado
en Componentes COTS. Universidad de Almería : s.n., 2003.
2. Roger Pressman. Ingenieria del Software: Un Enfoque Practico. McGraw-Hill. 2006
3. Ian Sommerville. Ingenieria de Software. Pearson. 2005
4. Stephen R. Schach. Ingeniería de Software Clasica y Orientada a Objetos. McGraw-
Hill. 2006
5. http://www.histaintl.com/soluciones/configuracion/configuracion.php
6. http://www.ual.es/~rguirado/posi/Tema5-Apartado5.pdf

12 Mtra. Romery Alberto Monegro

También podría gustarte