Está en la página 1de 1

Configuration Management (CM) es el proceso de identificar y definir los

elementos de configuración en un sistema, controlando la liberación y cambio


de estos elementos a lo largo del ciclo de vida del sistema, registrando e
informando el estado de los elementos de configuración y solicitudes de
cambio, y verificando la integridad y corrección de elementos de
configuración. La gestión de la configuración se practica de una forma u otra
como parte de cualquier proyecto de ingeniería de software donde varias
personas u organizaciones tienen que coordinar sus actividades. Importancia
La razón principal para implementar un sistema SCM es mantener los
productos de software / entidades cambiantes e iterativas en un estado no
degradante a lo largo del ciclo de vida del software. Este es un desafío que
debe cumplirse para desarrollar y mantener productos de software de
calidad. La calidad de los productos de software es fundamental para el nivel
de calidad del sistema completo. SCM proporciona un punto común de
integración para todas las actividades de planificación, supervisión e
implementación de un proyecto de software o línea de productos. Beneficios
• Proporciona una instantánea del software que cambia dinámicamente para
ayudar:- Toma decisiones basadas en una vista instantánea - Determinar el
estado en el módulo y los niveles del sistema - Tomar mejores decisiones
sobre el futuro de un proyecto de software. • Realiza un seguimiento del
desarrollo concurrente de módulos o componentes del sistema general para:
- Evitar que diferentes desarrolladores hagan cambios en el mismo módulo al
mismo tiempo - Permitir que el progreso general del sistema sea más rápido
- Proporcionar visibilidad de todo el proyecto de software a todos los
desarrolladores.• Organiza todo el código de desarrollo simultáneo y la
documentación asociada a: - Ahorre tiempo total del proyecto - Enfoque cada
fase del desarrollo del producto de software que se organizará y ejecutará en
una manera documentada y prescrita.

Linea base de CS Denominaremos así a una configuración operativa del


sistema software, a partir de la cual se puede desarrollar un cambio. o La
evolución del sistema puede verse como evolución de la línea base .
Planificacion(|Plan)|linea base de plani- requisitos(manual de usuario)|LB
req-diseño(diseño ) | diseño -codificacio(listado) -pruebas(espefici pruebas) |
LB CS Mantenimiento

El proceso de identificación de la configuración es el siguiente: La tarea de


identificación empieza con la definición de los elementos de la configuración
software representativos de los productos en cada línea base establecida. Se
asignan identificadores apropiados a todos los programas, documentos y
periféricos, Finalmente, la identificación debe facilitar el control de cambios,
para acomodar actualizaciones y modificaciones. Obj Definir una estructura
de documentación organizada de un modo inteligible, Proporcionar métodos
para revisiones, Relacionar los cambios con “quién, qué, cuándo, porqué,
cómo” para facilitar el control esquema por capas de los documentos a los
que engloba la GCS: Circulos Sw ejecutable, (listado, datos d eprueba)
(Docinte, prueba valida) doc diseño, (Manua usuario, doc mantenimient, doc
planificacio, espefic reque Sw)

Control de Cambios es un mecanismo para la evaluación y aprobación de los


cambios hechos a elementos de la configuración software durante el ciclo de
vida Tipos 1) Control individual, antes de aprobarse un nuevo elemento. 2)
Control de Gestión (u organizado), conduce a la aprobación de un nuevo
elemento. 3) Control formal, se realiza durante el mantenimiento. Variantes
• Configuraciones alternativas o Un sistema software puede adoptar distintas
formas (configuraciones) dependiendo del lugar donde se instale. Por
ejemplo, dependiendo de la plataforma (máquina + S.O.) que la soporta, o de
las funciones opcionales que haya de realizar o no. o Una variante es una
versión de un componente (o de la configuración global) que evoluciona por
separado. o Las variantes representan una variación espacial, mientras que
las revisiones representan una variación temporal.

Control de versiones se refiere a la evolución de un único elemento, o de cada


elemento por separado si son varios. La evolución puede representarse
gráficamente en forma de grafo, en el que los nodos son las versiones y los
arcos corresponden a la creación de una nueva versión a partir de otra ya
existente. Variantes Cuando hay variantes, es decir, cuando existen
simultáneamente varias versiones del componente, el grafo de evolución ya
no es una secuencia lineal, sino que adopta la forma de un árbol. Propagación
de cambios Cuando se tienen variantes que se desarrollan en paralelo suele
ser necesario aplicar un mismo cambio a varias variantes Fusión de variantes
En determinados momentos puede dejar de ser necesario mantener una
rama independiente. En este caso se puede fundir con otra (MERGE), y el
árbol de evolución pasa a ser un grafo convencional. Técnicas de
almacenamiento Deltas directos: Se almacena completa la primera versión,
y luego los cambios mínimos necesarios para reconstruir cada nueva versión
a partir de la anterior. Ventajas: Es sencillo de implementar y resulta bastante
intuitivo. Inconvenientes: Es más costoso recuperar las últimas versiones (lo
más frecuente) que las primeras (menos frecuente). • Deltas inversos (RCS):
Se almacena completa la última versión del tronco y los cambios necesarios
para reconstruir cada versión anterior a partir de la siguiente. Ventajas: Es
menos costoso recuperar las últimas versiones que las primeras, pero sólo en
el tronco o rama principal Inconvenientes: En las otras ramas es más costoso
recuperar las últimas versiones que si se aplicaran sólo deltas directos. •
Marcado selectivo (SCCS): Se almacena el texto refundido de todas las
versiones como una secuencia lineal, marcando cada sección del conjunto con
los números de versiones Ventajas: Cuesta lo mismo recuperar cualquier
versión, tanto reciente como antigua y de cualquier rama. Inconvenientes: A
medida que aumenta el número de versiones aumenta también el costo de
recuperar cualquier de ellas. Herramientas CV • SCCS (Source Code Control
System) o Control básico de versiones, original de UNIX • RCS (Revision
Control System) o Herramienta similar, parte del proyecto GNU

Control de configuración Herramientas • CVS (Concurrent Version System):


o Control de configuración, con cambios simultáneos. o La más antigua, usada
todavía. • Subversion: o Similar a la anterior, más moderna. o Permite trazar
renombrado o movimiento de ficheros. o Ha desplazado a CVS. • Gnuarch,
Bazaar, etc.: o Su implantación es irregular. De momento no compiten con las
anteriores. • Git: o Es la herramienta de moda en la actualidad. Más compleja
que las anteriores. o Facilita la creación y fusión de ramas (branch-merge).