ingenierÍa de softwareisis... · el desarrollo de software siempre es incremental ... //...
Post on 24-Feb-2020
6 Views
Preview:
TRANSCRIPT
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
Agenda
La constante: “el cambio”
Problema
Solución: Administración de Configuraciones
Herramientas
2
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.
El problema: “el cambio”
El problema: “el cambio”
El problema: “el cambio”
El problema: “el cambio”
El problema: “el cambio”
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?
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
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
El problema
La solución
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
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
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
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
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
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
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
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
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
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
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
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
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
// --------------------------------------------------------------------------
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
// -------------------------------------------------------------------------
//
// **************************************************************************
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
Proceso de SCM30
Producir el plan de configuraciones
Introducción
Propósito
Alcance
Glosario
Referencias
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
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
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)
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
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
Modelo básico: check-in/check-out36
Depósito
Compilador Editor
Espacio de trabajo
Check-in
Check-out
Coordinación y sincronización del
trabajo en equipo37
Depósito
Espacio de
trabajo
Espacio de
trabajo
El Versionamiento38
Variante
0.1 1.0 2.0 3.0
1.1
1.2Mecanismo delta
El Versionamiento39
0.1 1.0 2.0 3.0
Fusión de los cambios
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
La coordinación y sincronización del
trabajo41
Depósito formal
Depósito desarrollo
Espacio de trabajoEspacio de trabajo
Extraer
Promover/
actualizar
top related