Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SIS - 312
Gustavo Palabral
“No hay nada permanente, excepto el cambio.”
Heraclito
ADMINISTRACIÓN DE
LA CONFIGURACIÓN
DEL SOFTWARE
Administración de la Configuración
del Software
El cambio es inevitable en un sistema software. Cada
cambio involucra confusión entre los miembros del
equipo.
La confusión surge cuando los cambios no son
analizados, registrados antes que sean
implementados, reportados a los involucrados y
controlados de manera que incremente la calidad y
reduzcan los errores.
La Administración de Cambios (Software Configuration
Management - SCM) es una actividad paraguas que se
aplica a través del proceso de software, se ocupa de
las políticas, procesos y herramientas para
administración del cambio del software.
Administración de la Configuración
del Software
Debido a que el software cambia con frecuencia, los
sistemas se pueden considerar como un conjunto de
versiones, cada una de las cuales tiene que ser
mantenida y administrada.
Las versiones implementan:
◦ Propuestas de cambio
◦ Correcciones de errores
◦ Adaptaciones para diferentes sistemas operativos y
hardware.
La SCM es necesaria porque es fácil perder el
seguimiento a los cambios y versiones de
componentes han sido incorporados en cada versión
del sistema.
Administración de la Configuración
del Software
La información que se genera de un proceso de software se
puede dividir en tres categorías:
◦ Programas (a nivel de código fuente y formato ejecutable)
◦ Productos que describen los programas (a nivel técnico y
a nivel de descripción de funcionalidad)
◦ Datos (contenida dentro los programas o externa a los
programas).
A esta información se le conoce como Configuración del
Software.
La primera Ley de la Ingeniería de Sistemas dice: “No
importa en que momento del ciclo de vida del sistema te
encuentres, el sistema cambiara, y el deseo de cambio
persistirá a través de todo el ciclo”
Administración de la Configuración
del Software
El cambio puede ocurrir en cualquier momento,
por cualquier razón.
Cual es el origen de estos cambios?
◦ Nuevas condiciones de negocio y mercado dictan los
cambios en los requerimientos de l producto o las
reglas del negocio.
◦ Nuevas necesidades de los clientes demandan las
modificación de los datos producidos por los sistemas,
la funcionalidad o los servicios de los productos.
◦ Reorganización del negocio ( + / - ) causan cambios en
las prioridades de los proyectos.
◦ Restricciones de planificación o presupuesto causan
redefinición del sistema o del producto.
Actividades de la SCM
Administración de Cambios:
Seguimiento a las peticiones de cambios
por parte de los clientes, costos e
impacto de los mismos.
Administración de Versiones:
Seguimiento de las múltiples versiones de
los componentes del sistema, con el
objetivo de asegurar que los cambios a
los componentes no interfieran entre si.
Actividades de la SCM
Construcción del Sistema: El proceso de
ensamblado de los componentes, datos y
librerías con el objetivo de compilarlos y
crear el sistema ejecutable.
Administración del Release:
Preparación del software para una
entrega externa y realizar el seguimiento
de la versión que ha sido entregada al
cliente.
Terminología de SCM
Termino Descripción
Ítem de Cualquier objeto asociado a un proyecto software que esta bajo control de
Configuración configuración. Existen diferentes versiones de un ítem de configuración,
estos ítem tiene un único nombre.
Control de la El proceso de asegurar que las versiones de los sistemas y los
Configuración componentes están registrados y mantenidos de forma que los cambios
sean manejados y todas las versiones de los componentes sean
identificados y almacenados por todo el ciclo de vida del sistema
Versión Una instancia de un ítem de configuración que difiere de alguna forma con
otras instancias de ese ítem. Las versiones deben tener un único
identificador que debe estar compuesto del nombre del ítem mas un
numero de versión.
Baseline Es una colección de versiones de componentes que conforman un sistema.
(Línea Base) Los baselines están controlados, lo que significa que las versiones de los
componentes no pueden cambiar. Siempre debe ser posible recrear o
reconstruir una línea base desde sus componentes constituyentes.
Codeline Un codeline es un conjunto de versiones de un componente software y otros
ítems de configuración de los que depende el componente.
Terminología de SCM
Termino Descripción
Mainline Una secuencia de baselines que representan las diferentes versiones del sistema.
Release Una versión de un sistema que ha sido liberado a los usuarios para su uso y
explotación.
Workspace Un área de trabajo privada donde el software puede ser modificado sin afectar a
(Ambiente de otro miembros del equipo que pueden también estar modificando el software
trabajo)
Submit Check CR
CR
Invalid Valid
Implementation
Product development/CCB analysis
Cost/impact
Assess CRs
analysis
Test software
Creation date
Version sequence
Most recent
V1.3 source
D1 D2 D3 code
Storage structure
Sistemas de Control de Versiones –
Check In / Check Out
Workspace (U1) Workspace (U2)
A B X Y
C C Bob
Alice
A B C Z X R
Check-in
Tests OK
Version
Build server management
system
Construcción Diaria – Daily Building
La equipo de desarrollo establece un plazo de entrega
(por ejemplo 14:00) para los componentes del sistema.
◦ Si los desarrolladores tienen nuevas versiones de los
componentes, deben entregarlos en ese momento.
◦ Una nueva versión del sistema se construye a partir de estos
componentes de compilar y enlazar para construir el sistema
completo.
◦ Este sistema se entrega al equipo de pruebas (QA), que lleva a
cabo una serie de pruebas del sistema predefinidas.
◦ Las fallas que se descubren durante las pruebas del sistema se
documentan y se devolverán a los desarrolladores.
◦ Se reparan estas fallas en una versión posterior.
Release Management
Un Release es una versión de un sistema software
que se distribuye a los clientes.
Para el software de mercado masivo, por lo general
es posible identificar dos tipos de release:
◦ Releases Mayores con funcionalidades importantes
◦ Releases Menores con reparación de bugs y
correcciones a problemas que los clientes han
reportado.
Para el software personalizado o de líneas de
productos, los releases tienen que ser producidos
para cada cliente y los clientes individuales pueden
ejecutar varias versiones diferentes del sistema al
mismo tiempo.
Seguimiento de Releases
En caso de que ocurra un problema en producción,
puede ser necesario reproducir el problema
exactamente en la versión que ha sido entregada.
Cuando se produce un release, este debe ser
documentado (Release Notes) para asegurarse de
que se puede volver a crear la versión exacta en el
futuro.
Esto es particularmente importante para los sistemas
personalizados, o de largo plazo, los clientes pueden
utilizar una versión del sistemas durante muchos años
y pueden requerir cambios específicos mucho tiempo
después de su fecha de lanzamiento original.
Componentes de un Release
Al igual que el código ejecutable del sistema, un
Release puede incluir:
◦ Archivos de configuración que definen la forma en la
que el sistema debe ser configurado para
instalaciones particulares.
◦ Archivos de datos, tales como archivos de mensajes
de error, que son necesarios para el funcionamiento
del sistema.
◦ Un programa de instalación que se utiliza para ayudar
a instalar el sistema en el hardware destino
◦ Documentación electrónica o impresa que describe el
sistema;
◦ Publicidad asociada que se han diseñado para esa
versión.
Conclusiones
La Administración de la Configuración es la gestión de
un sistema en constante evolución. Se debe garantizar
que los cambios se incorporan en el sistema de una
manera controlada y se registra los detalles de los
cambios que se han implementado.
Los principales procesos de gestión de configuración
son la gestión de cambios, gestión de versiones, la
construcción del sistema y la gestión del release.
La Gestión de versiones consiste en hacer el
seguimiento de las diferentes versiones de los
componentes de software, y los cambios que se
hicieron para ellos.
Conclusiones
La Construcción del sistema es el proceso de
ensamblar los componentes en un programa ejecutable
para ejecutarse en un equipo hardware destino.
El software debe ser reconstruido con frecuencia y
probado inmediatamente después que una nueva
versión se ha construido. Esto hace que sea más fácil
detectar los errores y problemas que se han
introducido desde la última generación.
Los Releases incluyen código ejecutable, archivos de
datos, archivos de configuración y documentación.
La Administración de Releases consiste en la toma de
decisiones sobre las fechas de lanzamiento del sistema,
la preparación de toda la información para la
distribución y la documentación de cada versión del
sistema.