La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

© 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management.

Presentaciones similares


Presentación del tema: "© 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management."— Transcripción de la presentación:

1 © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management CMS: Configuration Management System

2 © 2004-2006 Manuel ColladoVersiones-2 Contenido n Evolución del software n Control de versiones n Control de configuración n Control de cambios n Repositorio. Almacenamiento eficiente n Ejemplos de herramientas

3 © 2004-2006 Manuel ColladoVersiones-3 Evolución del software n Durante el desarrollo l El desarrollo del software siempre es progresivo, incluso en el ciclo de vida en cascada l El desarrollo evolutivo consiste, precisamente, en una evolución controlada (ciclo de vida espiral, prototipos evolutivos) n Durante la explotación l Durante la fase de mantenimiento se realizan modificaciones sucesivas del producto

4 © 2004-2006 Manuel ColladoVersiones-4 Control de versiones n Motivo: evolución l El software cambia con el tiempo l Es necesario controlar esta evolución l Suele ser necesario recuperar versiones antiguas n Concepto de versión (revisión) l Forma particular que adopta un objeto en un contexto dado l Desde el punto de vista de evolución, es la forma particular de un objeto en un instante dado. Se suele denominar "revisión"

5 © 2004-2006 Manuel ColladoVersiones-5 Control de configuración n Concepto de configuración l Un sistema software comprende distintos componentes, que evolucionan individualmente l Hay que garantizar la consistencia del conjunto del sistema l Una 'configuración' es una combinación de versiones particulares de los componentes que forman un sistema consistente l Desde el punto de vista de evolución, es el conjunto de las versiones de los objetos componentes en un instante dado

6 © 2004-2006 Manuel ColladoVersiones-6 Control de cambios n Línea base l Denominaremos así a una configuración operativa del sistema software l La evolución del sistema puede verse como evolución de la línea base n Concepto de cambio l Es el paso de una versión de la línea base a la siguiente l Puede incluir modificaciones del contenido de algún componente l Puede incluir modificaciones de la estructura del sistema, añadiendo o eliminando componentes

7 © 2004-2006 Manuel ColladoVersiones-7 Variantes n Configuraciones alternativas l 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 l Una variante es una versión de un componente (o de la configuración global) que evoluciona por separado l Las variantes representan una variación espacial, mientras que las revisiones representan una variación temporal

8 © 2004-2006 Manuel ColladoVersiones-8 Repositorio n Almacenamiento de versiones l 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 l El repositorio permite ahorrar espacio de almacenamiento, evitando guardar por duplicado elementos comunes a varias versiones o configuraciones l El repositorio facilita el almacenar información de la evolución del sistema (historia), y no sólo de los componentes en sí l A veces se confunde el término 'repositorio' con el de 'línea base'

9 © 2004-2006 Manuel ColladoVersiones-9 1234 Grafo de evolución n Revisiones sucesivas de un componente

10 © 2004-2006 Manuel ColladoVersiones-10 1.11.21.31.4 2.1 2.22.3 3.13.2 4.1 TRONCO: Variante principal, p.ej. 1.1-1.2... RAMAS: Variantes secundarias, p.ej: 2.1..., 3.1... DELTA: Cambios de una revisión respecto a la anterior Delta 3.2 = (3.1  3.2) Variantes

11 © 2004-2006 Manuel ColladoVersiones-11 2.4 = 2.3 + 1.5 - 1.4 3.3 = 3.2 + 1.5 - 1.4 “Diff-Merge”: Propagación de cambios

12 © 2004-2006 Manuel ColladoVersiones-12 1.11.21.31.4 2.12.22.3 3.13.2 4.1 4.2 Igual que propagación de cambios (o bien, no hay que hacer nada especial) Fusión de variantes

13 © 2004-2006 Manuel ColladoVersiones-13 1.11.21.31.41.5 2.12.2 1.21.31.41.5 2.12.2 Técnicas de almacenamiento n Deltas directos

14 © 2004-2006 Manuel ColladoVersiones-14 1.21.31.4 1.1 2.12.2 1.21.31.41.1 2.12.2 1.5 Técnicas de almacenamiento n Deltas inversos (RCS)

15 © 2004-2006 Manuel ColladoVersiones-15 x x x x x <<1.3,1.2 y y >> <<1.2 z z z >> x x x x x <<1.3 t t t >> x x x x x Técnicas de almacenamiento n Marcado selectivo (SCCS)

16 © 2004-2006 Manuel ColladoVersiones-16 Control de configuración n Evolución de un sistema l Añadir componentes l Suprimir componentes l Modificar componentes n Evolución temporal (revisiones) l Cambio a lo largo del tiempo n Evolución espacial (variantes) l Versiones simultáneas

17 © 2004-2006 Manuel ColladoVersiones-17 Ejemplo de evolución de configuración

18 © 2004-2006 Manuel ColladoVersiones-18 Problema de coherencia de versiones A1 A2 B2 B1 C1 C2 D2 D1 E1 Rev. 1 Rev. 2 Rev. 3 Rev. 4

19 © 2004-2006 Manuel ColladoVersiones-19 Problema de coherencia de versiones A1Rev. 1 Rev. 2 Rev. 3 Rev. 4 A2 A1 B2 B1C1 C2 D1 D2

20 © 2004-2006 Manuel ColladoVersiones-20 Modelo ortogonal de versiones ABCDE componentes 1 2 3 4 revisiones X Y Z variantes  Ejemplo de nombrado uniforme: B-X-3  B 1.2  1.2 1.1 1.2 1.1 2.1 2.2 2.3 1.21.1 1.2 1.1 1.2 ---

21 © 2004-2006 Manuel ColladoVersiones-21 Técnicas de nombres en configuraciones n Traducción externa l Usar un control de versiones, añadiendo el mecanismo adecuado para nombrar globalmente las versiones de componentes de una configuración dada n Nombres simbólicos (“tags”) l Usados por RCS. Una misma versión de un componente puede tener varios nombres o tags (p.ej: “Linux 2.0”, “Linux 2.1”, “Win2K 1.0”...) n Versiones de directorios l Ejemplos: CVS, ClearCase. La configuración se organiza mediante una jerarquía de directorios, cuyo contenido evoluciona

22 © 2004-2006 Manuel ColladoVersiones-22 A1B1C1D1E1 A2B2 Cambio 1 Cambio 2 Línea base Desarrollo mediante cambios sucesivos n Evolución de la línea base

23 © 2004-2006 Manuel ColladoVersiones-23 A1B1C1D1E1 A2B2 Cambio 1 Cambio 2 Línea base Desarrollo mediante cambios sucesivos n Evolución de la línea base

24 © 2004-2006 Manuel ColladoVersiones-24 Desarrollo mediante cambios sucesivos n Evolución de la línea base A1B1C1D1E1 A2B2 Cambio 1 Cambio 2 Línea base DE3F3 Cambio 3

25 © 2004-2006 Manuel ColladoVersiones-25 Desarrollo mediante cambios sucesivos n Evolución de la línea base A1B1C1D1E1 A2B2 E3F3 Cambio 1 Cambio 2 Línea base Cambio 3

26 © 2004-2006 Manuel ColladoVersiones-26 Desarrollo simultáneo de cambios n Cambios 2 y 3 en desarrollo Cambio 1 Cambio 2 Línea base A1B1C1D1E1 A2B2DE3F3 Cambio 3

27 © 2004-2006 Manuel ColladoVersiones-27 Desarrollo simultáneo de cambios n Cambio 2 integrado Cambio 1 Cambio 2 Línea base A1B1C1D1E1 A2B2 DE3F3 Cambio 3

28 © 2004-2006 Manuel ColladoVersiones-28 Desarrollo simultáneo de cambios n Cambio 3 actualizado Cambio 1 Cambio 2 Línea base A1B1C1D1E1 A2B2 DE3F3 Cambio 3

29 © 2004-2006 Manuel ColladoVersiones-29 Desarrollo simultáneo de cambios n Cambio 3 integrado Cambio 1 Cambio 2 Línea base A1B1C1D1E1 A2B2 E3F3 Cambio 3

30 © 2004-2006 Manuel ColladoVersiones-30 Cambios simultáneos de un componente n Cambios 2 y 3 en desarrollo Cambio 1 Cambio 2 Línea base A1B1C1D1E1A2B2D3E3F3 Cambio 3 D2

31 © 2004-2006 Manuel ColladoVersiones-31 Cambios simultáneos de un componente n Cambio 2 integrado Cambio 1 Cambio 2 Línea base A1B1C1D1E1 A2B2 D3E3F3 Cambio 3 D2

32 © 2004-2006 Manuel ColladoVersiones-32 Cambios simultáneos de un componente n Cambio 3 actualizado D3’ = D3 + D2 - D1 Cambio 1 Cambio 2 Línea base A1B1C1D1E1 A2B2 D3’E3F3 Cambio 3 D2

33 © 2004-2006 Manuel ColladoVersiones-33 Cambios simultáneos de un componente n Cambio 3 integrado Cambio 1 Cambio 2 Línea base A1B1C1D1E1 A2B2 E3F3 Cambio 3 D2 D3’

34 © 2004-2006 Manuel ColladoVersiones-34 Ejemplos de herramientas n SCCS (Source Code Control System) l Control básico de versiones, original de UNIX n RCS (Revision Control System) l Herramienta similar, GNU n CVS (Concurrent Version System) l Control de configuración, cambios simultáneos n Subversion l Similar a la anterior, más moderna n Gnuarch, etc.

35 © 2004-2006 Manuel ColladoVersiones-35 fichero,v fichero RORW co -lco ci rlog Control de versiones: herramienta RCS

36 © 2004-2006 Manuel ColladoVersiones-36 Control de configuración: herramienta CVS CVSROOT add remove checkout commit (update) edit abort

37 © 2004-2006 Manuel ColladoVersiones-37 Ciclo de vida de cambios: Aegis Esperando desarrollo En integración Completado En desarrollo Anular En revisión Esperando integración Nuevo cambio Inicio desarrollo Fin desarrollo Revisión aceptada Rechazo Integración aceptada

38 © 2004-2006 Manuel ColladoVersiones-38 Control de cambios: herramienta Aegis Directorio decambio Directorio decambio Directorio de integración Directorio de línea base Repositorio (historia)


Descargar ppt "© 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management."

Presentaciones similares


Anuncios Google