c Version

37
CVERSION-1 Control de versiones, configuración y cambios

description

C Version

Transcript of c Version

  • Control de versiones, configuracin y cambios

    Control de versiones, configuracin y cambios

    Contenido

    Evolucin del softwareControl de versionesControl de configuracinControl de cambiosRepositorio. Almacenamiento eficienteEjemplos de herramientas

    Control de versiones, configuracin y cambios

    Evolucin del softwareDurante el desarrolloEl desarrollo del software siempre es progresivo, incluso en el ciclo de vida en cascadaEl desarrollo evolutivo consiste, precisamente, en una evolucin controlada (ciclo de vida espiral, prototipos evolutivos)Durante la explotacinDurante la fase de mantenimiento se realizan modificaciones sucesivas del producto

    Control de versiones, configuracin y cambios

    Control de versionesMotivo: evolucinEl software cambia con el tiempo, por diversas razonesEs necesario controlar esta evolucinSuele ser necesario recuperar versiones antiguasConcepto de versin (revisin)Versin es la Forma particular que adopta un objeto en un contexto dadoDesde el punto de vista de evolucin, es la forma particular de un objeto en un instante dado. Se suele denominar revisin

    Control de versiones, configuracin y cambios

    Control de configuracinConcepto de configuracinUn sistema software comprende distintos componentes, que evolucionan individualmenteHay que garantizar la consistencia del conjunto del sistemaUna configuracin es una combinacin de versiones particulares de los componentes que forman un sistema consistenteDesde el punto de vista de evolucin, es el conjunto de las versiones de los objetos componentes en un instante dado

    Control de versiones, configuracin y cambios

    Control de cambiosLnea baseLlamaremos lnea base a una configuracin operativa del sistema softwareLa evolucin del sistema puede verse como evolucin de la lnea baseConcepto de cambioUn cambio es el paso de una versin de la lnea base a la siguientePuede incluir modificaciones del contenido de algn componente, y/o modificaciones de la estructura del sistema, aadiendo o eliminando componentes

    Control de versiones, configuracin y cambios

    VariantesConfiguraciones alternativasUn sistema software puede adoptar distintas formas (configuraciones) dependiendo del lugar donde se instale. Por ejemplo, dependiendo de la plataforma que la soporta (mquina + S.O.), o de las funciones opcionales que haya de realizar o noUna variante es una versin de un componente (o de la configuracin global) que evoluciona por separadoLas variantes representan una variacin espacial, mientras que las revisiones representan una variacin temporal

    Control de versiones, configuracin y cambios

    RepositorioAlmacenamiento de versionesEs habitual centralizar el almacenamiento de los componentes de un mismo sistema, incluyendo las distintas versiones de cada componente. Este almacn comn se denomina repositorioEl repositorio permite ahorrar espacio de almacenamiento, evitando guardar por duplicado elementos comunes a varias versiones o configuracionesEl repositorio facilita el almacenar informacin de la evolucin del sistema (historia), y no slo de los componentes en sA veces se confunde el trmino 'repositorio' con el de 'lnea base'

    Control de versiones, configuracin y cambios

    Grafo de evolucinRevisiones sucesivas de un componente

    Control de versiones, configuracin y cambios

    VariantesTRONCO: Variante principal, p.ej. 1.1-1.2...RAMAS: Variantes secundarias, p.ej: 2.1..., 3.1...DELTA: Cambios de una revisin respecto a la anteriorDelta 3.2 = (3.1 3.2)

    Control de versiones, configuracin y cambios

    Propagacin de cambios2.4 = 2.3 + 1.5 - 1.43.3 = 3.2 + 1.5 - 1.4Diff-Merge / Patch:

    Control de versiones, configuracin y cambios

    Fusin de variantesIgual que propagacin de cambios:(o bien de forma manual)4.1 = 3.2 + 2.3 - 2.3

    Control de versiones, configuracin y cambios

    Tcnicas de almacenamientoDeltas directos

    Control de versiones, configuracin y cambios

    Tcnicas de almacenamientoDeltas inversos (RCS)

    Control de versiones, configuracin y cambios

    Tcnicas de almacenamientoMarcado selectivo (SCCS)x x x x xx x x x x

    x x x x x

    x x x x xx x x x x

    Control de versiones, configuracin y cambios

    Control de configuracinEvolucin de un sistemaAadir componentesSuprimir componentesModificar componentesEvolucin temporal (revisiones)Evolucin espacial (variantes)

    Control de versiones, configuracin y cambios

    Ejemplo de evolucin de configuracin

    Control de versiones, configuracin y cambios

    Problema de coherencia de versionesA1A2B2B1C1C2D2D1E1Rev. 1Rev. 2Rev. 3Rev. 4

    Control de versiones, configuracin y cambios

    Problema de coherencia de versionesRev. 1Rev. 2Rev. 3Rev. 4

    Control de versiones, configuracin y cambios

    Modelo ortogonal de versiones Ejemplo de nombrado uniforme: B-X-3 B 1.21.21.11.11.21.12.12.22.31.11.11.11.3

    Control de versiones, configuracin y cambios

    Tcnicas de nombres en configuracionesControl de configuracin control de versiones + nombrado globalNombres simblicos o tagsUsados por RCS. Una versin de un componente puede tener varios nombres lgicos (p.ej: Linux2.0, Linux 2.1, Win2K 1.0 ...)Versiones de directoriosEjemplos: CVS, ClearCase. La configuracin se organiza mediante una jerarqua de directorios, cuyo contenido evoluciona

    Control de versiones, configuracin y cambios

    Desarrollo mediante cambios sucesivosEvolucin de la lnea base

    Control de versiones, configuracin y cambios

    Desarrollo mediante cambios sucesivosEvolucin de la lnea base

    Control de versiones, configuracin y cambios

    Desarrollo mediante cambios sucesivosEvolucin de la lnea base

    Control de versiones, configuracin y cambios

    Desarrollo mediante cambios sucesivosEvolucin de la lnea base

    Control de versiones, configuracin y cambios

    Desarrollo simultneo de cambiosCambios 2 y 3 en desarrollo

    Control de versiones, configuracin y cambios

    Desarrollo simultneo de cambiosCambio 2 integrado

    Control de versiones, configuracin y cambios

    Desarrollo simultneo de cambiosCambio 3 actualizado

    Control de versiones, configuracin y cambios

    Desarrollo simultneo de cambiosCambio 3 integrado

    Control de versiones, configuracin y cambios

    Cambios simultneos de un componenteCambios 2 y 3 en desarrollo

    Control de versiones, configuracin y cambios

    Cambios simultneos de un componenteCambio 2 integrado

    Control de versiones, configuracin y cambios

    Cambios simultneos de un componenteCambio 3 actualizado

    Control de versiones, configuracin y cambios

    Cambios simultneos de un componenteCambio 3 integrado

    Control de versiones, configuracin y cambios

    Ciclo de vida de cambios (Aegis)

    Control de versiones, configuracin y cambios

    Control de versiones: herramienta RCS

    Control de versiones, configuracin y cambios

    Control de configuracin: herramienta CVS

    Control de versiones, configuracin y cambios

    Control de cambios: herramienta Aegis