UNJFSC Gestion Cambios Final

download UNJFSC Gestion Cambios Final

of 44

description

Clase de Software II de la Universidad Nacional José Faustino Sánchez Carrión: Gestión de Cambios

Transcript of UNJFSC Gestion Cambios Final

Diapositiva 1

Control de versiones, configuracin y cambios

FACULTAD DE CIENCIAS E INGENIERIAUNIVERSIDAD NACIONALJOSE FAUSTINO SANCHEZ CARRION

ING. MARIO ALBERTO OSORIO OSORIO1EVOLUCION DEL SOFTWAREEl 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

Durante el desarrolloEl desarrollo del software siempre es progresivo, incluso en el ciclo de vida en cascadaING. MARIO ALBERTO OSORIO OSORIO2POR QU DE LOS CAMBIOS?Concepcin de HerclitoNuevos negocios o condiciones comerciales o legales.Nuevas necesidades del cliente (o entendimiento de sus necesidades)Reorganizaciones de procesos.Variacin en los presupuestos.REGISTRO DE CAMBIOS.

ING. MARIO ALBERTO OSORIO OSORIOPOR QU OCURRE?Por qu mi software no compila hoy?.. Si compil AYERPor qu este test de regresin sali mal hoy? Si sali bien AYERPor qu el producto funciona as? No lo hizo..Por qu me salen errores de memoria hoy? No lo hizo....AYERQu es Gestin de la Configuracin del Software?

ING. MARIO ALBERTO OSORIO OSORIOCONCEPTO DE CONFIGURACIONUn sistema software comprende distintos componentes, que evolucionan individualmente.Hay que garantizar la consistencia del conjunto del sistema.Una configuracin es una combinacin de versiones parti-culares de los componentes que forman un sistema consistente.Desde el punto de vista de evolucin, es el conjunto de las versiones de los objetos compo-nentes en un instante dado.

ING. MARIO ALBERTO OSORIO OSORIO5La versin anterior del cdigo fuente?Defecto de software (Bug) eliminado a gran costo aparece nuevamente.Caracterstica diseada y probada desaparece.Componente probado no trabaja.Se prob la versin incorrecta del cdigo.Lnea de base con versin equivocada.Cules son los mdulos entregados al cliente?SNTOMAS DE MALA GESTION DE LACONFIGURACION EN SOFTWARE (G.C.S.)

ING. MARIO ALBERTO OSORIO OSORIOProblemas que soluciona GCSActualizacin simultneaDos programadores trabajan a la vez y de forma independiente sobre el mismo programa, uno destruye el trabajo del otro.Cdigo compartidoSe corrige un defecto en una porcin de cdigo compartida por varios programadores, pero a alguno no se le avisa.Cdigo comnSe modifica una porcin de cdigo y no se avisa a todos los afectados.VersionesEs comn que coexistan una versin en produccin, una en prueba y otra en desarrollo. Defecto encontrado en produccin por un usuario, la solucin debiera propagarse a las versiones siguientes.ING. MARIO ALBERTO OSORIO OSORIOEl arte de coordinar el desarrollo de software para minimizar ... la confusin ... es el arte de identificar, organizar y controlar modificaciones que sufre el software que est construyendo un equipo.GESTIN DE LA CONFIGURACIN DEL SOFTWARE

ING. MARIO ALBERTO OSORIO OSORIOElementos de Configuracin del Software (ECS)Son todos los elementos producidos en el proceso de ingenera de software.Programas (fuentes y ejecutables)Documentos (Manuales, Modelos, Informes, etc)

Todos estos items generados, se denomina: Elementos de Configuracin del Software (ECS).ING. MARIO ALBERTO OSORIO OSORIOResponsabilidades de la GCSLos ECS deben ser identificados y organizadosLos ECS existen en varias variantes (versiones) La diversidad de versiones, permiten generar diversas configuracionesControl de Acceso y sincronizacin de ECSPermitir auditorias externas o del SQA.Generar estadsticas de la configuracinGCSIdentificacinControl de VersinControl de CambiosAuditorasReportesING. MARIO ALBERTO OSORIO OSORIO1. IdentificacinObjetivo: Controlar y Gestionar los ECS.Entonces se debe: Identificar cada uno de forma nica y organizarlos mediante un enfoque orientado a objetos.Existen 2 tipos de ECS:BsicosCompuestosLos ECS se organizan, utilizando los siguientes tipos de relacin:ECSi ECSjECSi ECSjING. MARIO ALBERTO OSORIO OSORIO1. IdentificacinEl sistema de identificacin debe reconocer que los objetos evolucionan durante el proceso (versiones).

Se puede crear un grafo de evolucin para cualquier ECS, ste describe la historia de los cambios de un objeto.1.01.11.21.31.1.21.1.12.11.42.0ING. MARIO ALBERTO OSORIO OSORIO2.Control de VersionesConfiguraciones alternativas del sistema mediante la seleccin de las versiones adecuadas.Una versin del software es una coleccin de ECS y cada versin puede estar compuesta de diferentes variantes.Versin 2.1Componentes 12345Variantes1, 2, 3, 5 1, 2, 3, 4 ING. MARIO ALBERTO OSORIO OSORIO3.Control de CambiosControl de AccesoDetermina quien tiene autoridad para accesar y modificar los ECS.

SincronizacinAsegurar que los cambios en paralelo, realizados por distintas personas, no se sobre escriban mutuamente.ING. MARIO ALBERTO OSORIO OSORIO3. Control de Cambios

Repositorio de los ECSECS baselineECS baselineCheck - InCheck - OutControl De AccesoECS ModificadoECS ExtraidoIngeniero de SoftwareING. MARIO ALBERTO OSORIO OSORIOCONTROL 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

ING. MARIO ALBERTO OSORIO OSORIO16Lnea Base (Base Line)Es un punto de referencia en el desarrollo del software que queda marcado por el envio del Elemento de Configuracin de Software (ECS) y su aprobacin formal.

Los cambios a estos ECS son cuidadosamente controlados a travs de la GCS, dado que son la base oficial para el trabajo subsiguiente.ING. MARIO ALBERTO OSORIO OSORIOLAS LNEAS BASEEspecificacin o producto que se ha revisado formalmente y sobre los cuales se ha llegado a un acuerdo.... y que puede cambiarse slo a travs de procedimientos formales de control de cambiosColeccin de elementos de configuracinEspecificacin, producto, sistema parcialBase de datos del proyectoObjetos de configuracin conectadosAnlisis del impacto

ING. MARIO ALBERTO OSORIO OSORIOEVOLUCION DE LA LINEA BASEDesarrollo mediante cambios sucesivosA1B1C1D1E1A2B2Cambio 1Cambio 2Lnea baseEvolucin de la lnea baseA1B1C1D1E1A2B2Cambio 1Cambio 2Lnea baseING. MARIO ALBERTO OSORIO OSORIOEVOLUCION DE LA LINEA BASEEvolucin de la lnea baseA1B1C1D1E1A2B2Cambio 1Cambio 2Lnea baseDE3F3Cambio 3A1B1C1D1E1A2B2E3F3Cambio 1Cambio 2Lnea baseCambio 3ING. MARIO ALBERTO OSORIO OSORIOPREGUNTAS A SER RESPONDIDASCmo se identifica y gestiona las diferentes versiones de un programa y su documentacin, para que puedan implementarse los cambios con facilidad?Cmo controla cambios antes y despus de la entrega al cliente?Quin aprueba y prioriza los cambios?Cmo verificamos la implementacin de cambios?Cmo avisamos a otros?

ING. MARIO ALBERTO OSORIO OSORIOCONTROL DE CAMBIOSUsuario solicita cambioDesarrollador evalaInforme de cambiosAutoridad de Control de Cambios decideGeneracin Orden de Cambio de Ingeniera (O.C.I.)Dar de baja E.C.S.Efectuar el cambioRevisar el cambioDar de alta E.C.S.Establecimiento de lnea base para pruebasActividades de pruebaPromocin de los cambiosReconstruccin SW

ING. MARIO ALBERTO OSORIO OSORIOcontrol de cambiosProyecto: GehowebNmero: 23/01Solicitante del cambio: X. PrezFecha: 20/12/2002Cambio solicitado: cuando un laboratorio se seleccione de una estructura, desplegar sus datos

Analizador del cambio: P. GmezFecha de anlisis: 17/12/2002Componentes afectados: mostrarLab.Select, mostrarLab.Display

Componentes asociados: FileTable

Evaluacin del cambio: relativamente fcil de implementar puesto que se dispone de una tabla con los datos de los laboratorios. Requiere el diseo e implementacin de un cambio de despliegue. No se requieren cambios a los componentes asociados.

Prioridad del cambio: BajaImplementacin del cambioEsfuerzo estimado: 0,5 das

Fecha para CCB: 15/01/2003Fecha del CCB: 17/01/2003Decisin del CCB: Aceptar cambio. Cambio a implementar en versin 2.1

Implementador del cambio:Fecha del cambio:Fecha de remisin para QA:Decisin de QA:Fecha de remisin a CM:

ComentariosEjemplo de formulario de solicitud de cambiosING. MARIO ALBERTO OSORIO OSORIOcontrol de cambios// Proyecto GEHOWEB////GEHOWEB/EDIT/FORMS/DISPLAY/AST-INTERFACE////Autor: G.Dean//Fecha de creacin: 12 de diciembre de 2001//// Universidade de Vigo 2002////Relacin de modificaciones//VersinModificadorFechaCambioRazn// 1.0X. Prez25/10/2002Agregar encabezadoPeticin de cambio R07/02//1.1P. Gmez17/11/2002Nuevo campoPeticin de cambio R22/02

Ejemplo de informacin de cambios del encabezado de un componenteING. MARIO ALBERTO OSORIO OSORIOControl de acceso y sincronizacinc. acceso: derecho de los desarrolladores a acceder y modificar ECSc. sincronizacin: cambios en paralelo sin sobreescribirBajaAltaControlde accesoIngenierode SoftwareBase de datosdel proyectoBloqueoObjeto de configuracin(versin modificada)Objeto de configuracin(versin de lnea base)Objeto de configuracin(versin extrada)Objeto de configuracin(versin de lnea de base)DesbloqueoInformacinde auditoraInformacin depertenenciaING. MARIO ALBERTO OSORIO OSORIOCiclo de vida de cambiosEsperando desarrolloEn integracinCompletadoEn desarrolloAnularAnularAnularEn revisinEsperando integracinNuevo cambioInicio desarrolloFin desarrolloRevisin aceptadaRechazoRechazoIntegracinaceptadaING. MARIO ALBERTO OSORIO OSORIOPROCESOS INVOLUCRADOS

ING. MARIO ALBERTO OSORIO OSORIO4. Auditorias de la GCSPermite realizar controles y verificaciones a todos los ECS.En la Auditoria se plantean y responde las siguientes preguntas:Se han hecho correctamente y estrictamente los cambios solicitados.Se han seguido los estndares establecidos.Se han recalcado los cambios realizados.Se han seguido los procedimientos de GCS para sealar el cambio, registrado y divulgarlo.Se han actualizado los ECS relacionados.ING. MARIO ALBERTO OSORIO OSORIOAUDITORA DE LA CONFIGURACINVerificacin de la implementacin correcta de los cambiosApoya a las Revis.Tcn.Formales (RTF)Implementse cambio de la O.C.I.? Con las modificaciones adic.?RTF para correccin?Proceso y estndares?Documentar cambio?Registrado y divulgado?Actualizados ECS relacionados?Informes de estado

ING. MARIO ALBERTO OSORIO OSORIO5. Reportes de EstadoA veces llamado: Contabilidad de EstadoDebe presentar la siguiente informacin:Qu pasQuien lo hizoCuando pasQu ms vi afectadoPermite realizar una trazabilidad de cualquier cambio.ING. MARIO ALBERTO OSORIO OSORIOTipo de VersionesVersinUna instancia del sistema el cual es funcionalmente distinto de otras instancias.

VariantesUna instancia de un sistema el cual es funcionalmente idntica pero no funcionalmente distinta de otras instancias del sistema.

Entrega (Release)Una instancia del sistema que es distribuida a usuarios fuera del equipo de desarrollo.ING. MARIO ALBERTO OSORIO OSORIOROLES EN ADMINISTRACIN DE VERSIONESAdmin. del proyectoTareas a desarrollar para los entregables. $,tAdmin. del desarrolloDiseo y desarrollo del entregableAdmin. del productoCarta de navegacin del productoAdmin. de versinUnificar los elementos paralelos que constituyen una versin

ING. MARIO ALBERTO OSORIO OSORIO1234Revisiones sucesivas de un componenteCONTROL DE VERSIONES Grafo de EvolucinVariantes1.11.21.31.42.12.22.33.13.24.1TRONCO:Variante principal, p.ej. 1.1-1.2...

RAMAS:Variantes secundarias, p.ej: 2.1..., 3.1...

DELTA:Cambios de una revisinrespecto a la anteriorDelta 3.2 = (3.1 3.2)ING. MARIO ALBERTO OSORIO OSORIO1.11.21.31.42.12.22.33.13.24.14.2Fusin de variantesING. MARIO ALBERTO OSORIO OSORIOVariantesConfiguraciones 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

ING. MARIO ALBERTO OSORIO OSORIOControl 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

ING. MARIO ALBERTO OSORIO OSORIO36Ejemplo de evolucin de configuracinAAAABBBCCCCDDDERev. 1Rev. 2Rev. 3Rev. 4ING. MARIO ALBERTO OSORIO OSORIOModelo ortogonal de versiones

B3XING. MARIO ALBERTO OSORIO OSORIOEntrega del SistemaNo es solo un conjunto de programas ejecutablesPuede incluirArchivos de datos necesarios para la operacin del sistema.Programa de instalacin o script del shell para instalar el sistema y el hardware.Documentacin electrnica y/o en papel.El sistema puede ser entregado en diversos medios: diskette, CD o via download.ING. MARIO ALBERTO OSORIO OSORIOGeneracin de EjecutablesLos cambios se deben propagar a los ejecutables.

Estos pueden involucrar mltiples archivos fuente.

Se precisa de asistencia y en generacin de estos y en el mantenimiento de la correspondencia fuente- ejecutable. Uso de MAKEPrg. exeScan.oSyn.oCgen.oScan.cSyn.cCgen.cDef.hING. MARIO ALBERTO OSORIO OSORIOAlmacenamiento de VersionesArchivos SeparadosCada versin en su propio archivoDeltasGuarda una sola versin base, y a cada versin se asocia un delta con las diferencias con la versin anterior.Compilacin CondicionalSe maneja una sola copia del cdigo fuente.Se usa compilacin condicional (lgica) para manejar las diferencias.ING. MARIO ALBERTO OSORIO OSORIORepositorioAlmacenamiento 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'

ING. MARIO ALBERTO OSORIO OSORIOProblema de coherencia de versionesA1A2B2B1C1C2D2D1E1Rev. 1Rev. 2Rev. 3Rev. 4ING. MARIO ALBERTO OSORIO OSORIOTcnicas 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

ING. MARIO ALBERTO OSORIO OSORIO