SlideShare una empresa de Scribd logo
Control de versiones, configuración y cambios
Contenido Evolución del software Control de versiones Control de configuración Control de cambios Repositorio. Almacenamiento eficiente Ejemplos de herramientas
Evolución del software Durante el desarrollo El desarrollo del software siempre es progresivo, incluso en el ciclo de vida en cascada El desarrollo evolutivo consiste, precisamente, en una evolución controlada (ciclo de vida espiral, prototipos evolutivos) Durante la explotación Durante la fase de mantenimiento se realizan modificaciones sucesivas del producto
Control de versiones Motivo: evolución El software cambia con el tiempo, por diversas razones Es necesario controlar esta evolución Suele ser necesario recuperar versiones antiguas Concepto de versión (revisión) “ Versión”  es la Forma particular que adopta un objeto en un contexto dado Desde el punto de vista de evolución, es la forma particular de un objeto en un instante dado. Se suele denominar  “revisión”
Control de configuración Concepto de configuración Un sistema software comprende distintos componentes, que evolucionan individualmente Hay que garantizar la consistencia del conjunto del sistema Una  “configuración”  es una combinación de versiones particulares de los componentes que forman un sistema consistente Desde el punto de vista de evolución, es el conjunto de las versiones de los objetos componentes en un instante dado
Control de cambios Línea base Llamaremos  “línea base”  a una configuración operativa del sistema software La evolución del sistema puede verse como evolución de la línea base Concepto de cambio Un  “cambio”  es el paso de una versión de la línea base a la siguiente Puede incluir modificaciones del contenido de algún componente, y/o modificaciones de la estructura del sistema, añadiendo o eliminando componentes
Variantes Configuraciones alternativas 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 Una  “variante”  es una versión de un componente (o de la configuración global) que evoluciona por separado Las variantes representan una variación espacial, mientras que las revisiones representan una variación temporal
Repositorio Almacenamiento de versiones 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” El repositorio permite ahorrar espacio de almacenamiento, evitando guardar por duplicado elementos comunes a varias versiones o configuraciones El repositorio facilita el almacenar información de la evolución del sistema (historia), y no sólo de los componentes en sí A veces se confunde el término 'repositorio' con el de 'línea base'
Grafo de evolución Revisiones sucesivas de un componente 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 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
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
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
Técnicas de almacenamiento Deltas directos 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 Deltas inversos (RCS) 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 Marcado selectivo (SCCS) 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
Control de configuración Evolución de un sistema Añadir componentes Suprimir componentes Modificar componentes Evolución temporal (revisiones) Evolución espacial (variantes)
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 1.1 1.3 A B C D E componentes 1 2 3 4 revisiones X Y Z variantes
Técnicas de nombres en configuraciones Control de configuración   control de versiones + nombrado global Nombres simbólicos o  “tags” 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” ...) Versiones de directorios Ejemplos: CVS, ClearCase. La configuración se organiza mediante una jerarquía de directorios, cuyo contenido evoluciona
Desarrollo mediante cambios sucesivos Evolución de la línea base A1 B1 C1 D1 E1 A2 B2 Cambio 1 Cambio 2 Línea base
Desarrollo mediante cambios sucesivos Evolución de la línea base A1 B1 C1 D1 E1 A2 B2 Cambio 1 Cambio 2 Línea base
Desarrollo mediante cambios sucesivos Evolución de la línea base A1 B1 C1 D1 E1 A2 B2 Cambio 1 Cambio 2 Línea base D E3 F3 Cambio 3
Desarrollo mediante cambios sucesivos Evolución de la línea base A1 B1 C1 D1 E1 A2 B2 E3 F3 Cambio 1 Cambio 2 Línea base Cambio 3
Desarrollo simultáneo de cambios Cambios 2 y 3 en desarrollo Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 D E3 F3 Cambio 3
Desarrollo simultáneo de cambios Cambio 2 integrado Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 D E3 F3 Cambio 3
Desarrollo simultáneo de cambios Cambio 3 actualizado Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 D E3 F3 Cambio 3
Desarrollo simultáneo de cambios Cambio 3 integrado Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 E3 F3 Cambio 3
Cambios simultáneos de un componente Cambios 2 y 3 en desarrollo Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 D3 E3 F3 Cambio 3 D2
Cambios simultáneos de un componente Cambio 2 integrado Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 D3 E3 F3 Cambio 3 D2
Cambios simultáneos de un componente Cambio 3 actualizado D3’ = D3 + D2 - D1 Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 D3’ E3 F3 Cambio 3 D2
Cambios simultáneos de un componente Cambio 3 integrado Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 E3 F3 Cambio 3 D2 D3’
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
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 línea base Repositorio ( historia)

Más contenido relacionado

ODP
Sistemas para el Control de Versiones de Código
PDF
LA ARQUITECTURA FRENTE A LA IDENTIDAD CULTURA DE UN PUEBLO
DOCX
Update Seminar
PPTX
Everyone loves share point oslo
PDF
Ortec plandag-2016
DOC
CV of Emad Goufi FEB 2016
PPT
Unit Six
PDF
hrforum-2014-10 Moje agenda JR
Sistemas para el Control de Versiones de Código
LA ARQUITECTURA FRENTE A LA IDENTIDAD CULTURA DE UN PUEBLO
Update Seminar
Everyone loves share point oslo
Ortec plandag-2016
CV of Emad Goufi FEB 2016
Unit Six
hrforum-2014-10 Moje agenda JR

Destacado (12)

PDF
RoswellResearchPoster2015-ver2smaller-1
PDF
Ecosystem Investing
PPT
Persamaan-lingkaran
PDF
Instrumentación del Laboratorio Clínico
PPTX
SharePoint Saturday Stockholm 2016/05/21
PDF
Connect curate create (3)
PPTX
Kettle Chips: Case Study
PDF
Mobile Conversion Optimization for Context
PDF
Supporting Social & Collaborative Learning in the Workplace
PDF
The Math and Science of Top MSP Profitability
PPTX
SharePoint Saturday Belgium 2016
PPTX
Radikal bebas-dan-antioksidan (1)
RoswellResearchPoster2015-ver2smaller-1
Ecosystem Investing
Persamaan-lingkaran
Instrumentación del Laboratorio Clínico
SharePoint Saturday Stockholm 2016/05/21
Connect curate create (3)
Kettle Chips: Case Study
Mobile Conversion Optimization for Context
Supporting Social & Collaborative Learning in the Workplace
The Math and Science of Top MSP Profitability
SharePoint Saturday Belgium 2016
Radikal bebas-dan-antioksidan (1)
Publicidad

Similar a Control De Cambios (Scm) (20)

PPTX
Gestión del Cambio
PDF
Gestion de la configuracion del software
PPT
Gestión del Cambio del Software
PDF
Tema5 apartado5
PPT
Gesetion de configuracion del_software
PPTX
PPTX
GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE (GCS)
PPTX
Herramientas case[gestion de cambio gestion de la configu
PDF
Control de Versiones con Subversion (SVN)
PPTX
Gestión de la configuración del software(gcs)
DOCX
Capitulo 11 parte1 (2)
PPT
Gestion de la configuracion del software
PPT
Gestion de la configuracion del software
PPTX
2. sistemas hibridos
PPT
PDF
Semana 4 control de versiones planificacion y gestion
PDF
[ES] Sistemas de control de versiones
PPTX
Auditoria de código de aplicaciones
PPT
Iis04 2007
PDF
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
Gestión del Cambio
Gestion de la configuracion del software
Gestión del Cambio del Software
Tema5 apartado5
Gesetion de configuracion del_software
GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE (GCS)
Herramientas case[gestion de cambio gestion de la configu
Control de Versiones con Subversion (SVN)
Gestión de la configuración del software(gcs)
Capitulo 11 parte1 (2)
Gestion de la configuracion del software
Gestion de la configuracion del software
2. sistemas hibridos
Semana 4 control de versiones planificacion y gestion
[ES] Sistemas de control de versiones
Auditoria de código de aplicaciones
Iis04 2007
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
Publicidad

Más de UJAP (19)

PPTX
Retorno de la inversión (roi)
PPT
Gobierno Electronico
PPT
E Government
PPT
E Learning
PPT
Benchmarking
PPT
Benchmarking
PPT
Benchmarking
PPT
E Business
PPT
Soa
PPT
Comercio Electrónico
PPT
Cms
PPT
Taller De Inteligencia De Negocios
PPT
Erp
PPT
Bpm
PPT
Soa
PPT
Introduccion Inteligencia De Negocios
PPT
Crm
PPT
Web20
PPTX
Internet
Retorno de la inversión (roi)
Gobierno Electronico
E Government
E Learning
Benchmarking
Benchmarking
Benchmarking
E Business
Soa
Comercio Electrónico
Cms
Taller De Inteligencia De Negocios
Erp
Bpm
Soa
Introduccion Inteligencia De Negocios
Crm
Web20
Internet

Control De Cambios (Scm)

  • 1. Control de versiones, configuración y cambios
  • 2. Contenido Evolución del software Control de versiones Control de configuración Control de cambios Repositorio. Almacenamiento eficiente Ejemplos de herramientas
  • 3. Evolución del software Durante el desarrollo El desarrollo del software siempre es progresivo, incluso en el ciclo de vida en cascada El desarrollo evolutivo consiste, precisamente, en una evolución controlada (ciclo de vida espiral, prototipos evolutivos) Durante la explotación Durante la fase de mantenimiento se realizan modificaciones sucesivas del producto
  • 4. Control de versiones Motivo: evolución El software cambia con el tiempo, por diversas razones Es necesario controlar esta evolución Suele ser necesario recuperar versiones antiguas Concepto de versión (revisión) “ Versión” es la Forma particular que adopta un objeto en un contexto dado 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. Control de configuración Concepto de configuración Un sistema software comprende distintos componentes, que evolucionan individualmente Hay que garantizar la consistencia del conjunto del sistema Una “configuración” es una combinación de versiones particulares de los componentes que forman un sistema consistente Desde el punto de vista de evolución, es el conjunto de las versiones de los objetos componentes en un instante dado
  • 6. Control de cambios Línea base Llamaremos “línea base” a una configuración operativa del sistema software La evolución del sistema puede verse como evolución de la línea base Concepto de cambio Un “cambio” es el paso de una versión de la línea base a la siguiente Puede incluir modificaciones del contenido de algún componente, y/o modificaciones de la estructura del sistema, añadiendo o eliminando componentes
  • 7. Variantes Configuraciones alternativas 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 Una “variante” es una versión de un componente (o de la configuración global) que evoluciona por separado Las variantes representan una variación espacial, mientras que las revisiones representan una variación temporal
  • 8. Repositorio Almacenamiento de versiones 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” El repositorio permite ahorrar espacio de almacenamiento, evitando guardar por duplicado elementos comunes a varias versiones o configuraciones El repositorio facilita el almacenar información de la evolución del sistema (historia), y no sólo de los componentes en sí A veces se confunde el término 'repositorio' con el de 'línea base'
  • 9. Grafo de evolución Revisiones sucesivas de un componente 1 2 3 4
  • 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. 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. 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. Técnicas de almacenamiento Deltas directos 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. Técnicas de almacenamiento Deltas inversos (RCS) 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. Técnicas de almacenamiento Marcado selectivo (SCCS) 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. Control de configuración Evolución de un sistema Añadir componentes Suprimir componentes Modificar componentes Evolución temporal (revisiones) Evolución espacial (variantes)
  • 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. Problema de coherencia de versiones A1 A2 B2 B1 C1 C2 D2 D1 E1 Rev. 1 Rev. 2 Rev. 3 Rev. 4
  • 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. 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. Técnicas de nombres en configuraciones Control de configuración  control de versiones + nombrado global Nombres simbólicos o “tags” 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” ...) Versiones de directorios Ejemplos: CVS, ClearCase. La configuración se organiza mediante una jerarquía de directorios, cuyo contenido evoluciona
  • 22. Desarrollo mediante cambios sucesivos Evolución de la línea base A1 B1 C1 D1 E1 A2 B2 Cambio 1 Cambio 2 Línea base
  • 23. Desarrollo mediante cambios sucesivos Evolución de la línea base A1 B1 C1 D1 E1 A2 B2 Cambio 1 Cambio 2 Línea base
  • 24. Desarrollo mediante cambios sucesivos Evolución de la línea base A1 B1 C1 D1 E1 A2 B2 Cambio 1 Cambio 2 Línea base D E3 F3 Cambio 3
  • 25. Desarrollo mediante cambios sucesivos Evolución de la línea base A1 B1 C1 D1 E1 A2 B2 E3 F3 Cambio 1 Cambio 2 Línea base Cambio 3
  • 26. Desarrollo simultáneo de cambios Cambios 2 y 3 en desarrollo Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 D E3 F3 Cambio 3
  • 27. Desarrollo simultáneo de cambios Cambio 2 integrado Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 D E3 F3 Cambio 3
  • 28. Desarrollo simultáneo de cambios Cambio 3 actualizado Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 D E3 F3 Cambio 3
  • 29. Desarrollo simultáneo de cambios Cambio 3 integrado Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 E3 F3 Cambio 3
  • 30. Cambios simultáneos de un componente Cambios 2 y 3 en desarrollo Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 D3 E3 F3 Cambio 3 D2
  • 31. Cambios simultáneos de un componente Cambio 2 integrado Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 D3 E3 F3 Cambio 3 D2
  • 32. Cambios simultáneos de un componente Cambio 3 actualizado 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. Cambios simultáneos de un componente Cambio 3 integrado Cambio 1 Cambio 2 Línea base A1 B1 C1 D1 E1 A2 B2 E3 F3 Cambio 3 D2 D3’
  • 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. Control de versiones: herramienta RCS fichero,v fichero fichero RO RW co -l co ci rlog
  • 36. Control de configuración: herramienta CVS CVSROOT add remove checkout commit (update) edit abort
  • 37. Control de cambios: herramienta Aegis Directorio de cambio Directorio de cambio Directorio de integración Directorio de línea base Repositorio ( historia)