Control de versiones, configuración y cambios
Contenido <ul><li>Evolución del software </li></ul><ul><li>Control de versiones </li></ul><ul><li>Control de configuración...
Evolución del software <ul><li>Durante el desarrollo </li></ul><ul><ul><li>El desarrollo del software siempre es progresiv...
Control de versiones <ul><li>Motivo: evolución </li></ul><ul><ul><li>El software cambia con el tiempo, por diversas razone...
Control de configuración <ul><li>Concepto de configuración </li></ul><ul><ul><li>Un sistema software comprende distintos c...
Control de cambios <ul><li>Línea base </li></ul><ul><ul><li>Llamaremos  “línea base”  a una configuración operativa del si...
Variantes <ul><li>Configuraciones alternativas </li></ul><ul><ul><li>Un sistema software puede adoptar distintas formas (c...
Repositorio <ul><li>Almacenamiento de versiones </li></ul><ul><ul><li>Es habitual centralizar el almacenamiento de los com...
Grafo de evolución <ul><li>Revisiones sucesivas de un componente </li></ul>1 2 3 4
Variantes TRONCO: Variante principal, p.ej. 1.1-1.2... RAMAS: Variantes secundarias, p.ej: 2.1..., 3.1... DELTA: Cambios d...
Propagación de cambios 2.4  =  2.3 + 1.5 - 1.4 3.3  =  3.2 + 1.5 - 1.4 “ Diff-Merge ” / ” Patch” : 1.1 1.2 1.3 1.4 2.1 2.2...
Fusión de variantes Igual que propagación de cambios: (o bien de forma manual) 4.1  =  3.2 + 2.3 - 2.3 1.1 1.2 1.3 1.4 2.1...
Técnicas de almacenamiento <ul><li>Deltas directos </li></ul>1.1 1.2 1.3 1.4 1.5 2.1 2.2 1.2 1.3 1.4 1.5 2.1 2.2
Técnicas de almacenamiento <ul><li>Deltas inversos (RCS) </li></ul>1.2 1.3 1.4 1.1 2.1 2.2 1.2 1.3 1.4 1.1 2.1 2.2 1.5
Técnicas de almacenamiento <ul><li>Marcado selectivo (SCCS) </li></ul>x x x x x x x x x x <<1.3,1.2 y y y y >> <<1.2 z z z...
Control de configuración <ul><li>Evolución de un sistema </li></ul><ul><ul><li>Añadir componentes </li></ul></ul><ul><ul><...
Ejemplo de evolución de configuración A A A A B B B C C C C D D D E Rev. 1 Rev. 2 Rev. 3 Rev. 4
Problema de coherencia de versiones A1 A2 B2 B1 C1 C2 D2 D1 E1 Rev. 1 Rev. 2 Rev. 3 Rev. 4
Problema de coherencia de versiones Rev. 1 Rev. 2 Rev. 3 Rev. 4 A1 A2 A2 A1 B2 B2 B1 C1 C1 C1 C2 D1 D2 D2 D2
Modelo ortogonal de versiones    Ejemplo de nombrado uniforme: B-X-3    B 1.2  1.2 1.1 1.1 1.2 1.1 2.1 2.2 2.3 1.1 1.1 ...
Técnicas de nombres en configuraciones <ul><li>Control de configuración   </li></ul><ul><ul><li>control de versiones + no...
Desarrollo mediante cambios sucesivos <ul><li>Evolución de la línea base </li></ul>A1 B1 C1 D1 E1 A2 B2 Cambio 1 Cambio 2 ...
Desarrollo mediante cambios sucesivos <ul><li>Evolución de la línea base </li></ul>A1 B1 C1 D1 E1 A2 B2 Cambio 1 Cambio 2 ...
Desarrollo mediante cambios sucesivos <ul><li>Evolución de la línea base </li></ul>A1 B1 C1 D1 E1 A2 B2 Cambio 1 Cambio 2 ...
Desarrollo mediante cambios sucesivos <ul><li>Evolución de la línea base </li></ul>A1 B1 C1 D1 E1 A2 B2 E3 F3 Cambio 1 Cam...
Desarrollo simultáneo de cambios <ul><li>Cambios 2 y 3 en desarrollo </li></ul>Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1...
Desarrollo simultáneo de cambios <ul><li>Cambio 2 integrado </li></ul>Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 D ...
Desarrollo simultáneo de cambios <ul><li>Cambio 3 actualizado </li></ul>Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 ...
Desarrollo simultáneo de cambios <ul><li>Cambio 3 integrado </li></ul>Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 E3...
Cambios simultáneos de un componente <ul><li>Cambios 2 y 3 en desarrollo </li></ul>Cambio 1 Cambio 2 Línea base A1 B1 C1 D...
Cambios simultáneos de un componente <ul><li>Cambio 2 integrado </li></ul>Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B...
Cambios simultáneos de un componente <ul><li>Cambio 3 actualizado </li></ul>D3’ = D3 + D2 - D1 Cambio 1 Cambio 2 Línea bas...
Cambios simultáneos de un componente <ul><li>Cambio 3 integrado </li></ul>Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B...
Ciclo de vida de cambios (Aegis) Esperando desarrollo En integración Completado En desarrollo Anular Anular Anular En revi...
Control de versiones: herramienta RCS fichero,v fichero fichero RO RW co  -l co ci rlog
Control de configuración: herramienta CVS CVSROOT add remove checkout commit (update) edit abort
Control de cambios: herramienta Aegis Directorio de  cambio Directorio de  cambio Directorio de integración Directorio de ...
Upcoming SlideShare
Loading in...5
×

Control De Cambios (Scm)

1,523

Published on

Published in: Travel, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,523
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
27
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Control De Cambios (Scm)"

  1. 1. Control de versiones, configuración y cambios
  2. 2. Contenido <ul><li>Evolución del software </li></ul><ul><li>Control de versiones </li></ul><ul><li>Control de configuración </li></ul><ul><li>Control de cambios </li></ul><ul><li>Repositorio. Almacenamiento eficiente </li></ul><ul><li>Ejemplos de herramientas </li></ul>
  3. 3. Evolución del software <ul><li>Durante el desarrollo </li></ul><ul><ul><li>El desarrollo del software siempre es progresivo, incluso en el ciclo de vida en cascada </li></ul></ul><ul><ul><li>El desarrollo evolutivo consiste, precisamente, en una evolución controlada (ciclo de vida espiral, prototipos evolutivos) </li></ul></ul><ul><li>Durante la explotación </li></ul><ul><ul><li>Durante la fase de mantenimiento se realizan modificaciones sucesivas del producto </li></ul></ul>
  4. 4. Control de versiones <ul><li>Motivo: evolución </li></ul><ul><ul><li>El software cambia con el tiempo, por diversas razones </li></ul></ul><ul><ul><li>Es necesario controlar esta evolución </li></ul></ul><ul><ul><li>Suele ser necesario recuperar versiones antiguas </li></ul></ul><ul><li>Concepto de versión (revisión) </li></ul><ul><ul><li>“ Versión” es la Forma particular que adopta un objeto en un contexto dado </li></ul></ul><ul><ul><li>Desde el punto de vista de evolución, es la forma particular de un objeto en un instante dado. Se suele denominar “revisión” </li></ul></ul>
  5. 5. Control de configuración <ul><li>Concepto de configuración </li></ul><ul><ul><li>Un sistema software comprende distintos componentes, que evolucionan individualmente </li></ul></ul><ul><ul><li>Hay que garantizar la consistencia del conjunto del sistema </li></ul></ul><ul><ul><li>Una “configuración” es una combinación de versiones particulares de los componentes que forman un sistema consistente </li></ul></ul><ul><ul><li>Desde el punto de vista de evolución, es el conjunto de las versiones de los objetos componentes en un instante dado </li></ul></ul>
  6. 6. Control de cambios <ul><li>Línea base </li></ul><ul><ul><li>Llamaremos “línea base” a una configuración operativa del sistema software </li></ul></ul><ul><ul><li>La evolución del sistema puede verse como evolución de la línea base </li></ul></ul><ul><li>Concepto de cambio </li></ul><ul><ul><li>Un “cambio” es el paso de una versión de la línea base a la siguiente </li></ul></ul><ul><ul><li>Puede incluir modificaciones del contenido de algún componente, y/o modificaciones de la estructura del sistema, añadiendo o eliminando componentes </li></ul></ul>
  7. 7. Variantes <ul><li>Configuraciones alternativas </li></ul><ul><ul><li>Un sistema software puede adoptar distintas formas (configuraciones) dependiendo del lugar donde se instale. Por ejemplo, dependiendo de la plataforma que la soporta (máquina + S.O.), o de las funciones opcionales que haya de realizar o no </li></ul></ul><ul><ul><li>Una “variante” es una versión de un componente (o de la configuración global) que evoluciona por separado </li></ul></ul><ul><ul><li>Las variantes representan una variación espacial, mientras que las revisiones representan una variación temporal </li></ul></ul>
  8. 8. Repositorio <ul><li>Almacenamiento de versiones </li></ul><ul><ul><li>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” </li></ul></ul><ul><ul><li>El repositorio permite ahorrar espacio de almacenamiento, evitando guardar por duplicado elementos comunes a varias versiones o configuraciones </li></ul></ul><ul><ul><li>El repositorio facilita el almacenar información de la evolución del sistema (historia), y no sólo de los componentes en sí </li></ul></ul><ul><ul><li>A veces se confunde el término 'repositorio' con el de 'línea base' </li></ul></ul>
  9. 9. Grafo de evolución <ul><li>Revisiones sucesivas de un componente </li></ul>1 2 3 4
  10. 10. Variantes 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) 1.1 1.2 1.3 1.4 2.1 2.2 2.3 3.1 3.2 4.1
  11. 11. Propagación de cambios 2.4 = 2.3 + 1.5 - 1.4 3.3 = 3.2 + 1.5 - 1.4 “ Diff-Merge ” / ” Patch” : 1.1 1.2 1.3 1.4 2.1 2.2 2.3 3.1 3.2 1.5 2.4 3.3
  12. 12. Fusión de variantes Igual que propagación de cambios: (o bien de forma manual) 4.1 = 3.2 + 2.3 - 2.3 1.1 1.2 1.3 1.4 2.1 2.2 2.3 3.1 3.2 4.1 4.2
  13. 13. Técnicas de almacenamiento <ul><li>Deltas directos </li></ul>1.1 1.2 1.3 1.4 1.5 2.1 2.2 1.2 1.3 1.4 1.5 2.1 2.2
  14. 14. Técnicas de almacenamiento <ul><li>Deltas inversos (RCS) </li></ul>1.2 1.3 1.4 1.1 2.1 2.2 1.2 1.3 1.4 1.1 2.1 2.2 1.5
  15. 15. Técnicas de almacenamiento <ul><li>Marcado selectivo (SCCS) </li></ul>x x x x x x x x x x <<1.3,1.2 y y y y >> <<1.2 z z z z z z z z z z z z >> x x x x x <<1.3 t t t >> x x x x x x x x x x
  16. 16. Control de configuración <ul><li>Evolución de un sistema </li></ul><ul><ul><li>Añadir componentes </li></ul></ul><ul><ul><li>Suprimir componentes </li></ul></ul><ul><ul><li>Modificar componentes </li></ul></ul><ul><li>Evolución temporal (revisiones) </li></ul><ul><li>Evolución espacial (variantes) </li></ul>
  17. 17. Ejemplo de evolución de configuración A A A A B B B C C C C D D D E Rev. 1 Rev. 2 Rev. 3 Rev. 4
  18. 18. Problema de coherencia de versiones A1 A2 B2 B1 C1 C2 D2 D1 E1 Rev. 1 Rev. 2 Rev. 3 Rev. 4
  19. 19. Problema de coherencia de versiones Rev. 1 Rev. 2 Rev. 3 Rev. 4 A1 A2 A2 A1 B2 B2 B1 C1 C1 C1 C2 D1 D2 D2 D2
  20. 20. Modelo ortogonal de versiones  Ejemplo de nombrado uniforme: B-X-3  B 1.2  1.2 1.1 1.1 1.2 1.1 2.1 2.2 2.3 1.1 1.1 1.1 1.3 A B C D E componentes 1 2 3 4 revisiones X Y Z variantes
  21. 21. Técnicas de nombres en configuraciones <ul><li>Control de configuración  </li></ul><ul><ul><li>control de versiones + nombrado global </li></ul></ul><ul><li>Nombres simbólicos o “tags” </li></ul><ul><ul><li>Usados por RCS. Una versión de un componente puede tener varios nombres lógicos (p.ej: “Linux 2.0”, “Linux 2.1”, “Win2K 1.0” ...) </li></ul></ul><ul><li>Versiones de directorios </li></ul><ul><ul><li>Ejemplos: CVS, ClearCase. La configuración se organiza mediante una jerarquía de directorios, cuyo contenido evoluciona </li></ul></ul>
  22. 22. Desarrollo mediante cambios sucesivos <ul><li>Evolución de la línea base </li></ul>A1 B1 C1 D1 E1 A2 B2 Cambio 1 Cambio 2 Línea base
  23. 23. Desarrollo mediante cambios sucesivos <ul><li>Evolución de la línea base </li></ul>A1 B1 C1 D1 E1 A2 B2 Cambio 1 Cambio 2 Línea base
  24. 24. Desarrollo mediante cambios sucesivos <ul><li>Evolución de la línea base </li></ul>A1 B1 C1 D1 E1 A2 B2 Cambio 1 Cambio 2 Línea base D E3 F3 Cambio 3
  25. 25. Desarrollo mediante cambios sucesivos <ul><li>Evolución de la línea base </li></ul>A1 B1 C1 D1 E1 A2 B2 E3 F3 Cambio 1 Cambio 2 Línea base Cambio 3
  26. 26. Desarrollo simultáneo de cambios <ul><li>Cambios 2 y 3 en desarrollo </li></ul>Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 D E3 F3 Cambio 3
  27. 27. Desarrollo simultáneo de cambios <ul><li>Cambio 2 integrado </li></ul>Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 D E3 F3 Cambio 3
  28. 28. Desarrollo simultáneo de cambios <ul><li>Cambio 3 actualizado </li></ul>Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 D E3 F3 Cambio 3
  29. 29. Desarrollo simultáneo de cambios <ul><li>Cambio 3 integrado </li></ul>Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 E3 F3 Cambio 3
  30. 30. Cambios simultáneos de un componente <ul><li>Cambios 2 y 3 en desarrollo </li></ul>Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 D3 E3 F3 Cambio 3 D2
  31. 31. Cambios simultáneos de un componente <ul><li>Cambio 2 integrado </li></ul>Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 D3 E3 F3 Cambio 3 D2
  32. 32. Cambios simultáneos de un componente <ul><li>Cambio 3 actualizado </li></ul>D3’ = D3 + D2 - D1 Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 D3’ E3 F3 Cambio 3 D2
  33. 33. Cambios simultáneos de un componente <ul><li>Cambio 3 integrado </li></ul>Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 E3 F3 Cambio 3 D2 D3’
  34. 34. Ciclo de vida de cambios (Aegis) Esperando desarrollo En integración Completado En desarrollo Anular Anular Anular En revisión Esperando integración Nuevo cambio Inicio desarrollo Fin desarrollo Revisión aceptada Rechazo Rechazo Integración aceptada
  35. 35. Control de versiones: herramienta RCS fichero,v fichero fichero RO RW co -l co ci rlog
  36. 36. Control de configuración: herramienta CVS CVSROOT add remove checkout commit (update) edit abort
  37. 37. Control de cambios: herramienta Aegis Directorio de cambio Directorio de cambio Directorio de integración Directorio de línea base Repositorio ( historia)
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×