INGENIERÍA DEL SOFTWARE
C A P Í T U L O 1 : G E S T I Ó N D E
P R O Y E C T O S D E S O F T W A R E
I S T P - K H I P U
W I L B E R T D A L G U E R R E
O R D Ó Ñ E Z
2 0 1 3 - I
SESIÓN NÚMERO 09
GESTIÓN DE LA CONFIGURACIÓN
DEL SOFTWARE
Aprender a llevar el control de avance de las diversas
versiones del software.
Gestión de la Configuración del Software
1
Contenido
GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE................................ 2
INTRODUCCION .................................................................................................................... 2
1. GESTION DE LA CONFIGURACION DEL SOFTWARE (GCS) ................................................ 2
2. EL PROCESO DE GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE ................................ 4
IDENTIFICACIÓN DE OBJETOS EN GCS .................................................................................. 5
CONTROL DE VERSIONES ...................................................................................................... 6
CONTROL DE CAMBIOS ........................................................................................................ 7
AUDITORIA DE LA CONFIGURACION .................................................................................. 10
INFORMES DE ESTADO ....................................................................................................... 11
ESTANDARES DE GCS .......................................................................................................... 11
RESUMEN ........................................................................................................................... 11
CONCLUSION ...................................................................................................................... 12
BIBLIOGRAFÍA ................................................................................................................ 13
Gestión de la Configuración del Software
2
GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE
INTRODUCCION
La gestión de la configuración del
software es uno de los
procesos clave para
toda organización
dedicada a la
Ingeniería del Software,
ya que posibilita una
mejor organización del
desarrollo y mantenimiento,
producto, facilitando el resto
de procesos de producción.
Durante el proceso de construcción de un software, los
cambios son inevitables. Los cambios provocan confusión e
incertidumbre, sobre todo cuando no se han analizado o pronosticado
correctamente. Es importante considerar ciertas modificaciones que
pueden ocurrirle al software dentro de todo el proceso de ingeniería.
“El arte de coordinar el desarrollo de software para minimizar…la
confusión, se denomina gestión de la configuración. La gestión es el
arte de identificar, organizar y controlar las modificaciones que sufre
el software…la meta es maximizar la productividad minimizando
errores.”
1. GESTION DE LA CONFIGURACION DEL SOFTWARE (GCS)
Los cambios dentro del desarrollo del software pueden ocurrir en
cualquier momento por lo tanto debemos estar preparados, las
actividades de CGS sirven para:
Gestión de la Configuración del Software
3
1. Identificar el cambio de nuestro software.
2. Controlar ese cambio.
3. Garantizar que el cambio quede bien implantado.
4. Informar el cambio.
La gestión de configuración del software no es un mantenimiento del
software, el mantenimiento es la etapa final de la ingeniería hasta que
se retire el producto del equipo, la CGS es un conjunto de actividades
de seguimiento y control que comienzan cuando se inicia el proyecto
de desarrollo del software y termina sólo una vez que el software
queda fuera de circulación.
Desgraciadamente, en el proceso de ingeniería del software existe
una variable importantísima que entra en juego, el cambio.
La primera Ley de la ingeniería de sistemas 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”.
Entonces nos hacemos diferentes preguntas: ¿Por qué cambiar el
sistema? ¿Que produce los en el sistema cambios? La respuesta a
estas interrogantes se puede encontrar en cuatro aspectos
fundamentales y a menudo muy tradicionales dentro del desarrollo del
software:
1. Nuevos requisitos del negocio o condiciones que dictan los
cambios en las condiciones del producto o en las normas
comerciales.
2. Nuevas necesidades de los clientes que demandan la
modificación de los datos producidos por un sistema basado
en computadora.
3. Reorganización y/o reducción del volumen comercial que
provoca cambios en las prioridades del proyecto o en la
estructura del equipo de ingeniería del software.
4. Restricciones presupuestarias o de planificaciones que
provocan una redefinición del sistema o del producto.
La gestión de configuración del software realiza un conjunto de
actividades desarrolladas para gestionar y registrar los cambios a lo
largo del ciclo de vida del software de computadora.
Gestión de la Configuración del Software
4
La GCS es una actividad de garantía de calidad del software que se
aplica en todas las fases del proceso de ingeniería del software.
2. EL PROCESO DE GESTIÓN DE LA CONFIGURACIÓN DEL
SOFTWARE
La GCS es un elemento importante de garantía de calidad es
responsable de controlar los cambios. Sin embargo también se debe
identificar los ECS individuales. El proceso se puede definir en cinco
tareas de CGS:
1. Identificación
2. Control de versiones
3. Control de cambios
Gestión de la Configuración del Software
5
4. Auditorias de configuración
5. Generación de informes
IDENTIFICACIÓN DE OBJETOS EN GCS
Se pueden identificar dos tipos de objetos los objetos básicos y los
objetos compuestos.
Un objeto básico es una unidad de texto creada durante el análisis,
diseño, codificación o prueba. Un objeto compuesto es una colección
de objetos básicos u objetos compuestos. Cada objeto tiene un
conjunto de características que los identifican como únicos. El nombre
del objeto es una cadena de caracteres que identifica al objeto sin
ambigüedad. La descripción del objeto es una lista de elementos de
datos que identifican:
1. El tipo de ECS (documento, programa, datos) que está
representado por el objeto.
2. Un identificador del proyecto; y la información de la versión
y/o el cambio.
El esquema de identificación de los objetos de software debe tener en
cuenta que los objetos evolucionan a lo largo del proceso de
ingeniería, por lo que se puede crear un grafo de evolución.
Gestión de la Configuración del Software
6
En el grafo de evolución se describe la historia del objeto y sus
cambios, las grandes modificaciones hacen que un objeto cambie, por
lo que cambia el número de versión principal.
CONTROL DE VERSIONES
El control de versiones combina procedimientos y herramientas para
gestionar las versiones de los objetos de configuración creadas
durante el proceso de ingeniería del software.
"La gestión de configuración permite a un usuario especificar
configuraciones alternativas del sistema de software mediante la
selección de las versiones adecuadas. Esto se puede gestionar
asociando atributos a cada versión del software y permitiendo luego
especificar y construir una configuración describiendo el conjunto de
atributos deseado."
Los atributos pueden ser tan sencillos como un número específico de
versión asociado a cada objeto o tan complejos como una cadena de
variables lógicas que especifiquen tipos de cambios funcionales
aplicados al sistema
Gestión de la Configuración del Software
7
Para construir la variante adecuada de una determinada versión de un
programa, a cada componente se le asigna una tupla de atributos.
A cada variante se le asigna uno o más atributos.
Otra forma de establecer los conceptos de la relación entre
componentes, variantes y versiones es representarlas como un fondo
de objetos.
La principal diferencia entre los distintos modos de construcción está
en la sofisticación de los atributos que se usan para construir
versiones y variantes específicas de un sistema y en la mecánica del
proceso de construcción.
CONTROL DE CAMBIOS
En un gran proyecto de desarrollo de software, el cambio incontrolado
lleva rápidamente al caos. El control de cambios combina los
procedimientos humanos y las herramientas automáticas para
proporcionar un mecanismo para el control de cambio.
Gestión de la Configuración del Software
8
Los resultados de la evaluación se presentan como un informe de
cambios a la autoridad de control de cambios (ACC). Para cada
cambio aprobado se genera una orden de cambio de ingeniería (OCI)
La OCI describe el cambio a realizar, las restricciones que se deben
respetar y los criterios de revisión y de auditoría. El objeto a cambiar
es "dado de baja" de la base de datos del proyecto; se realiza el
cambio y se aplican las adecuadas actividades de SQA. Luego, el
objeto es "dado de alta" en la base de datos y se usan los
mecanismos de de control de versiones apropiadas para crear la
siguiente versión del software.
Los procedimientos de "alta" y "baja" implementan dos elementos
importantes del control de cambios: control de acceso y control de
sincronización. El control de acceso gobierna los derechos de los
ingenieros de software a acceder y modificar objetos de configuración
concretos. El control de sincronización asegura que los cambios en
paralelo, realizados por personas diferentes, no se sobrescriben
mutuamente.
Gestión de la Configuración del Software
9
Antes de que un ECS se convierta en una línea base, sólo es
necesario aplicar un control de cambios informal. El que haya
desarrollado el ECS en cuestión podrá hacer cualquier cambio
justificado por el proyecto y por los requisitos
Técnicos. Una vez que el objeto ha pasado la revisión técnica formal y
ha sido aprobada, se crea la línea base.
Una vez que el ECS se convierte en una línea base, aparece el
control de cambios a nivel de proyecto. Para hacer un cambio, el
encargado del desarrollo debe recibir la aprobación del gestor del
proyecto (si el cambio es local), o de la ACC si el cambio impacta en
otros ECS. En algunos casos, se dispensa de generar formalmente
las peticiones de cambio, los informes de cambio y las OCI. Sin
embargo, hay que hacer una evaluación de cada cambio así como un
seguimiento y revisión de los mismos.
Cuando se distribuye el producto de software a los clientes, se
instituye el control de cambios formal.
La autoridad de control de cambios (ACC) desempeña un papel activo
en el segundo y tercer nivel de control. El papel de la ACC es el de
tener una visión general, o sea, evaluar el impacto del cambio fuera
del ECS en cuestión. ¿Cómo impactará el cambio en el hardware?
Gestión de la Configuración del Software
10
¿Cómo impactará en el rendimiento? ¿Cómo alterará el cambio la
percepción del cliente sobre el producto?
AUDITORIA DE LA CONFIGURACION
¿Cómo podemos
asegurar que
el cambio se
ha
implementado
correctamente?
La respuesta es
doble:
1) revisiones técnicas formales y
2) auditorias de configuración del software.
Las revisiones técnicas formales se centran en la corrección técnica
del elemento de configuración que ha sido modificado. Los revisores
evalúan el ECS para determinar la consistencia con otros ECS, las
omisiones o los posibles efectos secundarios.
Una auditoria de configuración del software complementa la revisión
técnica formal al comprobar características que generalmente no tiene
en cuenta la revisión. La auditoria se plantea y responde con las
siguientes preguntas:
1. ¿Se ha hecho el cambio especificado en la OCI? ¿Se han
incorporado modificaciones adicionales?
2. ¿Se ha llevado a cabo una revisión técnica formal para
evaluar la corrección técnica?
3. ¿Se han seguido adecuadamente los estándares de
ingeniería de software?
4. ¿Se han "recalcado" los cambios en el ECS?¿Se han
especificado la fecha del cambio y el autor?¿Reflejan los
cambios los atributos del objeto de configuración?
5. ¿Se han seguido procedimientos del GCS para señalar el
cambio, registrarlo y divulgarlo?
Gestión de la Configuración del Software
11
6. ¿Se han actualizado adecuadamente todos los ECS
relacionados?
INFORMES DE ESTADO
La generación de informes de estado de la configuración es una tarea
de GCS que responde a las siguientes preguntas:
1. ¿Qué pasó?
2. ¿Quién lo hizo?
3. ¿Cuándo pasó?
4. ¿Qué más se vio afectado?
La generación de informes de estado de la configuración desempeña
un papel vital en el éxito del proyecto de desarrollo de software.
Cuando aparece involucrada mucha gente es muy fácil que no exista
una buena comunicación. Pueden darse errores entre las personas
desarrolladoras del software. El IEC ayuda a eliminar esos problemas,
mejorando la comunicación entre todas las personas involucradas.
ESTANDARES DE GCS
Durante las dos últimas décadas se han propuesto varios estándares
de gestión de configuración del software.
RESUMEN
La gestión y configuración del software identifica,
controla audita e informa de las modificaciones que
invariablemente se dan al desarrollar el software una
vez que ha sido distribuido a los clientes.
La con figuración se organiza de tal forma que sea
posible un control organizado de los cambios.
La configuración del software está compuesta por un
conjunto objetos interrelacionados, denominados
elementos de configuración del software, que son
provocados par la actividades del desarrollo, de la ingeniería del
software.
La auditoría de
configuración es una
actividad de SQA
(Aseguramiento de la
calidad del software)
para asegurar la calidad
durante los cambios.
Gestión de la Configuración del Software
12
Las líneas base nos permiten guiarnos para desarrollar los cambios,
los objetos forman un asociación que refleja las variantes y relaciones
creadas, el control de versiones son procedimientos y herramientas
que ayudan a gestionar el uso de los objetos. El control de cambios
es una actividad procedimental que asegura la calidad en los
cambios de los ECS.
CONCLUSION
Durante el proceso de construcción de un software, los cambios son
inevitables. Los cambios provocan confusión e incertidumbre, sobre
todo cuando no se han analizado o pronosticado correctamente. La
finalidad de la Gestión y configuración del Software el conocer la
estructura de procesos y herramientas para aplicar dentro de la
construcción del software que nos ayudan a controlar los cambios.
Es importante considerar ciertas modificaciones que pueden ocurrirle
al software dentro de todo el proceso de ingeniería para asegurar su
control y calidad.
Gestión de la Configuración del Software
13
BIBLIOGRAFÍA
Ingeniería del software – un enfoque práctico. Roger S. Pressman
http://www.google.com.pe/search?num=10&hl=es&site=imghp&tb
m=isch&source=hp&biw=1366&bih=677&q=EL+PRODUCTO&oq=
EL+PRODUCTO&gs_l=img.3..0l10.1430.3454.0.4143.11.9.0.2.2.0
.186.986.4j5.9.0...0.0...1ac.1.Fl7oAV4lIQw#hl=es&tbo=d&site=img
hp&tbm=isch&sa=1&q=software+de+inteligencia+artificial&oq=soft
ware+de+inteligencia+artificial&gs_l=img.3..0j0i24l5.134002.1409
50.6.141169.26.11.0.15.15.1.196.1908.0j11.11.0...0.0...1c.1.9iim2
AMAFfQ&pbx=1&bav=on.2,or.r_gc.r_pw.r_qf.&fp=ba1326681ff2cb
8&bpcl=38897761&biw=1366&bih=634
http://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software
http://www.ctic.uni.edu.pe/files/insoft01.pdf
Todos son links o enlaces a diferentes páginas web que se
consultaron para el desarrollo de esta sesión de clases.