INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio...

41
INGENIERÍA DE SOFTWARE ADMINISTRACION DE CONFIGURACIONES Rubby Casallas, Juan Pablo Quiroga, Andrés Yie Departamento de Sistemas y Computación Facultad de Ingeniería Universidad de los Andes

Transcript of INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio...

Page 1: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

INGENIERÍA DE SOFTWAREADMINISTRACION DE CONFIGURACIONES

Rubby Casallas, Juan Pablo Quiroga, Andrés Yie

Departamento de Sistemas y Computación

Facultad de Ingeniería

Universidad de los Andes

Page 2: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Agenda

La constante: “el cambio”

Problema

Solución: Administración de Configuraciones

Herramientas

2

Page 3: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

La constante: “el cambio”

El cambio se encuentra presente en todo el ciclo de

vida de una aplicación.

En el desarrollo

El desarrollo de software siempre es incremental

El desarrollo iterativo consiste de en una evolución

controlada

En el mantenimiento

Corrección, adaptación, extensión, etc.

Page 4: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

El problema: “el cambio”

Page 5: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

El problema: “el cambio”

Page 6: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

El problema: “el cambio”

Page 7: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:
Page 8: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

El problema: “el cambio”

Page 9: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

El problema: “el cambio”

Page 10: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

El problema

Archivos perdidos: “se que lo escribí, pero no se dónde lo puse ...”

Referencias perdidas: “solía funcionar, pero usa librerías que ya no están ...”

Sobrescribir el código de otro: desarrolladores que hacen distintos cambios en el mismo código sobrescribiendo su trabajo mutuamente

No hay botón deshacer: los nuevos cambios son peores, pero no se puede volver atrás ...

¿Qué versión tiene el cliente? ¿A cuál corresponde el error?

Page 11: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

El problema

La versión actual del código se sobrescribe por una

anterior

Una actualización crítica se descarta de la versión

final

Se hacen cambios a una versión incorrecta del

código

Reaparecen errores ya corregidos

No se logra determinar qué versiones de archivos

van en una entrega

Page 12: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

El problema

Los builds no son reproducibles

Muchas posibilidades de error cuando se

mantienen múltiples versiones

No hay historia de los cambios

Los jefes de proyecto no pueden medir el avance

Comunicación deficiente del equipo

Page 13: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

El problema

Page 14: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

La solución

Page 15: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Administración de Configuraciones

SCM – Software Configuration Management

“Es el conjunto total de actividades utilizadas para

administrar el contenido de un producto de

software desde el principio hasta el final del

proceso de desarrollo.”

Humphrey

“Es la disciplina de administrar y controlar los cambios

en la evolución de los sistemas de software”

Bruegge, Dutoit

Page 16: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Propósito de SCM

Asegurar que el contenido del producto es

conocido y se encuentra disponible siempre

Apoyar el control de cambios

Ayudar a la coordinación entre el equipo

Tener un repositorio (depósito) único para los

entregables

Tener una base histórica con los cambios del

producto durante el tiempo

Page 17: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Conceptos17

Depósito

Biblioteca de lanzamientos, promociones

Tres depósitos

Desarrollo

El avance diario

Maestro (promociones)

Están en proceso de verificación de calidad

Es liberado a otros equipos de desarrollo

Software (lanzamientos)

Cumplen con los estándares de calidad dispuestos

Page 18: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Conceptos18

Espacio de trabajo

Es el sitio donde se encuentran los archivos

correspondientes a los artefactos

Promociones o lanzamientos

Cada desarrollador tiene su propio espacio

Page 19: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Conceptos

Ítems de configuración:

Cualquier artefacto del proceso. Este debe ser controlado y nombrado de forma única.

La lista aprobada de los ítems de configuración

Los requerimientos

El diseño

Los fuentes

El material de pruebas

Agregados de artefactos (objetos de configuración)

Conjunto de artefactos que forman un producto completo

Código fuente

Page 20: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Conceptos

Versiones

Identifica el estado de un artefacto de configuración en un

contexto

Debe existir una forma de nombrarlo

Revisión

Un artefacto en un instante dado

Configuración

Una 'configuración' es una combinación de versiones

particulares de los componentes que forman un sistema

consistente

Page 21: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Conceptos

Etiquetas

Entre las partes que se tiene control hay agrupaciones

lógicas, que representan el programa completo

Se hace a través del etiquetamiento de archivos

(tagging)

Una etiqueta (tag) es un único nombre dado a una

revisión de un archivo

No existen dos tags iguales

21

Page 22: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Conceptos

Estándar de numeración de versiones

Ej. 2.3.1

2 Versión Mayor - Lanzamiento

3 Lanzamiento menor con corrección de errores

1 Rama para el cliente X

Estándar de numeración de versiones

<version> :: <mayor>.<menor>.<revisión>

<mayor> :: <entero positivo>

<menor> :: <entero positivo>

<revisión> :: <entero positivo>

Se deben indicar políticas para saber cómo un artefacto pasa de una versión a otra

Page 23: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Conceptos

Línea base Una configuración operativa del sistema software que ha

sido validada por la dirección o el cliente La evolución del sistema puede verse como evolución de la

línea base Solo es modificado debido a una solicitud de cambio

Rama (branch)

Se parte de un baseline para corregir errores

En un momento se puede unir con la línea principal del producto

Variantes Versiones operativas que coexisten en el tiempo. Comparten gran parte del código pero difieren en algunas

funcionalidades

Page 24: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Conceptos

Build

Cada vez que se compila se controla la forma en que se

produjo

Promoción (release interno)

Configuración que se ha puesto a disposición de los demás

desarrolladores del proyecto

Lanzamiento (release externo)

Configuración que se ha puesto a disposición de los clientes

o usuarios

Un lanzamiento tiene que tener una promoción asociada

Page 25: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Conceptos

Solicitud de cambio:

Reporte formal que inicia el proceso de cambio

Realizado por un usuario o desarrollador

No todos los cambios de un cliente deben ser

realizados

Cuestiones administrativas

Costos

Tiempo de desarrollo

Page 26: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Conceptos

Solicitud de cambio:

Se especifica

El(Los) artículo(s) de configuración afectados

La petición

La versión

El problema que necesita resolverse

La solución

Evaluación de factibilidad ( costo/beneficio)

Aprobación

Se debe hacer seguimiento

Page 27: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Ejemplo para código fuente27

// *************************************************************************

// Universidad de los Andes

// Departamento de Ingenieria de Sistemas y Computacion

//

// Proyecto : Administrador de Notas

// Archivo : AdministradorNotas.cc

// Descripcion : Implementacion Clase Administrador de Notas

// Fachada para el administrador de notas

// Version : 1.1

// Fecha : 2 Noviembre 2000

// Author : Juan Pablo Quiroga

// --------------------------------------------------------------------------

// Informacion de mantenimiento y cambios

// --------------------------------------------------------------------------

// Creacion Encabezado

// Descripcion : Version inicial

// Fecha : 14 01 2000

// Autor : Juan Pablo Quiroga

// Tiempo Desarrollo: 30 minutos

// LOC : 140

// --------------------------------------------------------------------------

Page 28: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Ejemplo para código fuente28

// Cambio Numero 1

// Descripcion : Cambiar encabezado del archivo y estandar documentacion

// Fecha : 05 06 2000

// Autores : Juan Pablo Quiroga

// Tiempo Desarrollo: 20 minutes

// LOC : 284

// -------------------------------------------------------------------------

//

// **************************************************************************

Page 29: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Procedimientos de control de

configuraciones29

Asegurar que no hay conflicto en cuanto dos

personas puedan cambiar el mismo producto al

tiempo

Cuando una de las personas está modificando el

producto es el único que puede hacerlo y debe

mantenerse bloqueado hasta que este termine de

hacerlo

Una persona debe ser responsable de mantener la

integridad del producto

Page 30: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Proceso de SCM30

Producir el plan de configuraciones

Introducción

Propósito

Alcance

Glosario

Referencias

Page 31: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Proceso de SCM31

Producir el plan de configuraciones

Actividades

Artículos de configuración

Estándares

Nombramiento de artículos

Distribución de archivos

Versionamiento

Administración

Definición del informe de Identificación de líneas de base

Page 32: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Proceso de SCM32

Reportes del estatus de SCM.

Al final de cada ciclo

Un informe con

El nombre de la(s) línea(s) de base asociadas

Por cada artefacto colocar la versión

Si es un grupo de artefactos colocar los artefactos

asociados y la vérsión de c/u

Administrar el baseline del sistema

Administración del cambio

Page 33: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Control de Versiones de Software33

Mecanismo de base:

Grafo de derivación: contiene la evolución de un

archivo de texto (binario)

Primeras herramientas sobre Unix:

Source Code Control System SCCS (M. Rockhind 1977)

Revision Control System RCS (W. Tichy 1982)

Page 34: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Control de Versiones de Software34

CVS

Concurrent Version System

Como un conjunto de scripts

Dick Grune, 1986

Como una sóla herramienta

Creado en 1989 por Brian Berliner

Apoyado por Jeff Polk

Licencia GPL

Page 35: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Control de Versiones de Software35

Otras herramientas

Perforce – Perforce

Basado en CVS

Clear Case - Rational

Source Safe – Microsoft

CS RCS – Component Software

Avanzadas

Control de cambio y seguimiento

ClearQuest - Rational

Page 36: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Modelo básico: check-in/check-out36

Depósito

Compilador Editor

Espacio de trabajo

Check-in

Check-out

Page 37: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

Coordinación y sincronización del

trabajo en equipo37

Depósito

Espacio de

trabajo

Espacio de

trabajo

Page 38: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

El Versionamiento38

Variante

0.1 1.0 2.0 3.0

1.1

1.2Mecanismo delta

Page 39: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

El Versionamiento39

0.1 1.0 2.0 3.0

Fusión de los cambios

Page 40: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

La coordinación y sincronización del

trabajo40

Políticas de administración de espacios de trabajo:

controlar la sincronización de cambios concurrentes

(evitarlos): definir políticas de sincronización

creación de Baselines

Propagación de los cambios en distintas baselines

Page 41: INGENIERÍA DE SOFTWARE - Profesoresisis2603/dokuwiki/lib/... · Agenda La constante: “el cambio ” Problema Solución: Administración de Configuraciones Herramientas 2. La constante:

La coordinación y sincronización del

trabajo41

Depósito formal

Depósito desarrollo

Espacio de trabajoEspacio de trabajo

Extraer

Promover/

actualizar