PDF de programación - Control de versiones, configuración y cambios

Imágen de pdf Control de versiones, configuración y cambios

Control de versiones, configuración y cambiosgráfica de visualizaciones

Publicado el 2 de Enero del 2019
924 visualizaciones desde el 2 de Enero del 2019
468,0 KB
18 paginas
Creado hace 11a (30/03/2013)
Gestión de configuración

Asignatura: Entornos de programación

Gestión de configuración

Control de versiones, configuración y cambios

1. Introducción
En este tema se describen las actividades básicas de gestión de configuración y las técnicas
y herramientas utilizadas para ello. La terminología empleada para referirse a esta actividad
varía según los casos. Por ejemplo:

• VCS: Version Control System
• SCM: Software Configuration Management
• CMS: Configuration Management System

Control:

• Se dispone de medios para realizar materialmente una tarea de manera segura.

Gestión:

• Hay criterios establecidos que hay que seguir en la realización de una tarea.

Gestión de configuración - 1

Gestión de configuración

2. Evolución del software
La necesidad de gestionar la configuración surge del hecho de que el software evoluciona
con el tiempo:

• Durante el desarrollo

o El desarrollo del software siempre es progresivo, incluso en el ciclo de vida en

cascada

o El desarrollo evolutivo consiste, precisamente, en una evolución controlada (ciclo

de vida espiral, prototipos evolutivos)

• Durante la explotación

o Durante la fase de mantenimiento se realizan modificaciones sucesivas del

producto

• En todos los casos

o Suele ser necesario recuperar versiones antiguas, aunque sea sólo para

consulta

o Para ello hace falta tener organizado el almacenamiento de versiones anteriores

Gestión de configuración - 2

Gestión de configuración

3. Conceptos generales

• Control de versiones

o Evolución de un elemento.

• Control de configuración

o Evolución de un conjunto de elementos.

• Control de cambios

o Metodología de desarrollo evolutivo.

• Revisiones y variantes

o Configuraciones alternativas.
o Branch-merge.

• Repositorio

o Almacén de información organizado.

3.1 Control de versiones
Utilizaremos este término para referirnos a la evolución de un único elemento, o de cada
elemento por separado.

• Concepto de versión:

o Desde el punto de vista de la evolución, es la forma particular de un objeto en un

instante o contexto dado. Se suele denominar "revisión" cuando se refiere a la
evolución en el tiempo.

o También hay que contemplar la posibilidad de que coexistan versiones

alternativas en un instante dado.

o Hay que disponer de un método para designar las diferentes versiones de

manera sistemática u organizada.

3.2 Control de configuración
Con este término nos referiremos a la evolución de un conjunto de elementos.

• Concepto de configuración

o Un sistema software comprende distintos componentes, que evolucionan

individualmente.

o Hay que garantizar la consistencia del conjunto del sistema.
o Una 'configuración' es una combinación de versiones particulares de los

componentes que forman un sistema consistente.

o Desde el punto de vista de la evolución en el tiempo, es el conjunto de las

versiones de los objetos componentes en un instante dado

o Una configuración cambia porque se añaden, retiran o modifican elementos.
También hay que contemplar la posibilidad de que los mismos elementos se
reorganicen de forma diferente, sin que cambien individualmente.

o Hay que disponer de un método para designar las diferentes configuraciones de

manera sistemática u organizada.

Gestión de configuración - 3

Gestión de configuración

3.3 Control de cambios
Es un concepto relacionado con la metodología de desarrollo de software. Se trata de hacer
el desarrollo de forma evolutiva, mediante cambios sucesivos realizados de una manera
disciplinada.

• Línea base

o 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.

• Concepto de cambio

o Es el paso de una versión de la línea base a la siguiente.
o Puede incluir modificaciones del contenido de algún componente.
o Puede incluir modificaciones de la estructura del sistema, añadiendo, eliminando

o reorganizando componentes.

3.4 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.

3.5 Repositorio

• Es un almacén general de versiones:

o Es habitual centralizar el almacenamiento de los componentes de un mismo

sistema, incluyendo las distintas versiones de cada componente. Este almacén
común se denomina REPOSITORIO.

o El repositorio permite ahorrar espacio de almacenamiento, evitando guardar por

duplicado elementos comunes a varias versiones o configuraciones.

o Para conseguir ese ahorro hay que disponer de un sistema de representación

especializado para las versiones.

o El repositorio facilita el almacenar información de la evolución del sistema

(historia), y no sólo de los componentes en sí (datos + metadatos).

Gestión de configuración - 4

Gestión de configuración

4. Control de versiones
Como se ha dicho, 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.

4.1 Grafo de evolución simple
Las revisiones sucesivas de un componente dan lugar a una simple secuencia lineal.

Esta forma de evolución no presenta problemas desde el punto de vista de organización del
repositorio. Las versiones se pueden designar simplemente mediante números correlativos,
como en la figura.

4.2 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. Si queremos seguir numerando las versiones se necesitará ahora una numeración
a dos niveles. El primer número designa la variante (línea de evolución), y el segundo la
versión particular (revisión) a lo largo de dicha variante.

La terminología usada para referirse a los elementos del grafo es la propia de un árbol:

• TRONCO (trunk): Es la variante principal, p.ej. 1.1-1.2...
• CABEZA (head): Es la última versión del tronco, p.ej. 1.4
• RAMAS (branches): Son las variantes secundarias, p.ej: 2.1..., 3.1...
• DELTA (delta): Es el cambio de una revisión respecto a la anterior. El nombre delta

puede aplicarse a varios conceptos. Ejemplo, Delta 3.2 puede representar:

Gestión de configuración - 5

Gestión de configuración

o El paso de una versión a otra, es decir, un arco del grafo: (3.1 → 3.2)
o Los cambios (diferencias) entre una versión y otra: (3.2 - 3.1)
o La versión resultante, en sí misma: (3.2)

4.3 Propagación de cambios
Cuando se tienen variantes que se desarrollan en paralelo suele ser necesario aplicar un
mismo cambio a varias variantes. Podemos empezar por realizar el cambio en una rama y
luego propagarlo a las otras.

Hay herramientas concretas que permiten automatizar la propagación del cambio. Se
denominan “Diff-Merge”. Usando una notación matemática ("-" para la diferencia entre
versiones y "+" para la aplicación de un cambio) podríamos escribir:

2.4 = 2.3 + (1.5 - 1.4)
3.3 = 3.2 + (1.5 - 1.4)

La nueva versión se obtiene a partir de otras tres. Esta acción se denomina mezcla de tres
vías (three-way merge).

4.4 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.

Gestión de configuración - 6

Gestión de configuración

Para fundir variantes se puede operar de forma similar a la propagación de cambios,
aplicando a una rama los cambios independientes hechos en la otra. Por ejemplo:

4.1 = 2.3 + (3.2 - 2.2), o bien
4.1 = 3.2 + (2.3 - 2.2)

También se pueden combinar manualmente o mediante alguna herramienta las dos
versiones finales para crear la nueva versión común. Esta acción se denomina mezcla de
dos vías (two-way merge).

4.5 Técnicas de almacenamiento
En la mayoría de los casos las distintas versiones tienen en común gran parte de
su contenido. Almacenar cada versión completa por separado desaprovecha bastantes
recursos, en comparación con la posibilidad de almacenar cada fragmento de información
distinto sólo una vez aunque aparezca repetido en diferentes versiones. Existen distintas
técnicas para organizar el almacenamiento combinado del conjunto de versiones de una
manera eficiente. Se apoyan en herramientas del tipo diff o diff-merge.

• 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. En
las ramas se mantiene el uso de deltas directos.

Ventajas: Es menos costoso recuperar las últimas versiones que las primeras, pero
sólo en el tronco o rama principal.

Gestión de configuración - 7

Gestión de configuración

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 a los que corresponde. Usando una not
  • Links de descarga
http://lwp-l.com/pdf14751

Comentarios de: Control de versiones, configuración y cambios (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad