6. cambios · 2011. 10. 24. · gestión de la configuración •la configuración del software...

54
6. Cambios y su manejo Juan Manuel Fernández Peña 2011

Upload: others

Post on 17-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

6. Cambiosy su manejoy su manejo

Juan Manuel Fernández Peña

2011

Page 2: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

El software en el tiempo

• El mundo cambia

• En software debe modificarse debido a cambios en:– Hardware donde corre

– Costumbres y necesidades de usuarios

– Formas de usarlo– Formas de usarlo

– Tecnologías involucradas

– Nuevas actividades de la empresa que lo usa

– Restructuración de la organización que lo usa

– Cambios en legislación y políticas

– Formas de hacer negocios

Page 3: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

El software en el tiempo

• El software envejece

– Especialmente si no cambia

• Para seguir usándolo debe cambiarse

Page 4: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Qué lleva al cambio

Page 5: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Expresión de los cambios

• Nuevos requerimientos o modificación de los existentes

• Quejas por mal funcionamiento• Quejas por mal funcionamiento

Page 6: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

¿Qué hace el desarrollador?

• Puede rechazar cambios hasta terminar proyecto (no funciona en la vida real)

• Puede aceptar todo lo que le piden (peligroso, nunca termina)nunca termina)

• Debe utilizar un procedimiento de control o gestión de cambios (solución más racional y necesaria para certificarse)

Page 7: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Proceso de gestión de cambios

• Propósito:

– Analizar cambios propuestos, estimar su impacto y el costo derivado, decidir si es factible y entonces planificarlo y realizarloplanificarlo y realizarlo

Page 8: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Proceso de gestión de cambios

• Preparar petición de cambio (usuario o cliente)– Cambios solicitados

– Justificación

• Cliente revisa solicitud, evitando duplicidades o cambios inadecuadosinadecuados– Acepta o

– Rechaza, informando al solicitante

• Se analiza– Se revisa impacto (elementos que deberán cambiarse; ver

Configuración)

– Se calcula esfuerzo necesario, costo y tiempo necesario

Page 9: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Proceso de gestión de cambios

• Un comité decide si se aplica– De inmediato o

– En una versión posterior o

– No se considera factible y se rechaza

• Si se acepta de inmediato, deben:• Si se acepta de inmediato, deben:– Modificarse la planificación

– Asignar recursos (responsable)

– Para cada elemento afectado seguir procedimiento de desarrollo de cambio en la configuración

– Verificar su terminación

– Integrar en el proyecto (quizá afecte la siguiente versión)

– Avisar a todos los involucrados para desechar versiones anteriores

Page 10: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Conceptos importantes relacionados

• Línea base– Versión oficial, validada por autoridad, de un elemento del proyecto:

plan, componente, modelo

• Configuración• Configuración– Conjunto de elementos que integran el software

• Versiones– Diferentes formas de un elemento

Page 11: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Configuración

• ¿Qué es una configuración?– Disposición de las partes que componen un algo y

le dan su forma peculiar.

– Disposición de las partes de un sistema que resuelven un problema.resuelven un problema.

• En el caso del software– Colección de archivos (ejecutables, fuente, figuras,

textos, etc.), modelos y manuales

Page 12: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Gestión de la configuración

• La configuración del software moderno es compleja.

– Ejercicio: busque un producto de software libre, descárguelo y analice todos los elementos que lo descárguelo y analice todos los elementos que lo forman

• Para poder administrar un proyecto (y el software mismo) se requiere gestionar la configuración

Page 13: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

¿Qué es la Gestión de la Configuración del Software (GCS)?

• La disciplina de identificar la configuración deun sistema en puntos discretos del tiempo,con el propósito de:

– controlar los cambios,– controlar los cambios,

– mantener la integridad y

– seguimiento de esta configuración

• a través del ciclo de vida del sistema

Page 14: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Objetivos de la GCS (1)

• Administrar los cambios al sistema.

• Controlar la evolución del producto desoftware mediante versiones.

14

• Construir el sistema con los componentesapropiados.

• Informar del estado de la configuración alpersonal del proyecto y al cliente del sistema.

Page 15: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Objetivos de la GCS (2)

• Garantizar que se entregue laconfiguración correcta al cliente.

• Asignar un nombre adecuado a cadaelemento de software que se produzca.

15

elemento de software que se produzca.

• Manejar adecuadamente las bibliotecas

de versiones del software.

Page 16: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Actividades

1. Identificación de la configuración.

2. Control de la configuración.

3. Informe del estado de la configuración.

4. Auditoría de la configuración.

16

4. Auditoría de la configuración.

5. Planear la administración de laconfiguración.

Page 17: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

1. Identificación de la Configuración.

Es la actividad de documentar unesquema de identificación de cadaelemento del sistema.

17

Un elemento del sistema es una unidadpara el propósito de la administración dela configuración.

Page 18: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

•Planes del proyecto•Especificación de requerimientos de software•Especificación de diseño

Elementos de software sujetos a GCS

18

•Especificación de diseño•Código fuente•Procedimiento de prueba•Casos de prueba y resultados obtenidos

Page 19: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Elementos de software sujetos a GCS

• Manuales de instalación y de operación

• Descripción de la base de datos

• Manual de usuario final

19

• Manual de usuario final

• Manual de referencia

• Documentos de mantenimiento

• Estándares y procedimientos de la ingeniería de software

Page 20: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Identificación

• Cada elemento debe tener una identificación única; no es fácil

• Formas de identificar– Nombre y número (ej. Eclipse 3.4)

– Nombre y conjunto de atributos (ej. AC3D(lenguaje= java, – Nombre y conjunto de atributos (ej. AC3D(lenguaje= java, plataforma=XP, fecha= Ene2003) )

– El nombre puede incluir varias partes: proyecto, sistema, subsistema, tipo de elemento, nombre particular (ej. largo: org.apache.ant.source_1.7.1.v20100518-1145)

– El número o atributos identifican una versión

Page 21: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

2. Control de la configuración.

•Se controlan los elementos de software

•Se establecen los procedimientosnecesarios para proponer, evaluar, revisar,aprobar e implementar los cambios a losaprobar e implementar los cambios a loselementos en una línea de base.

•Se define un procedimiento formal paraobtener la autorización para hacer elcambio.

Page 22: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

CONTROL DE ACCESO Y SINCRONIZACIÓN PARA CAMBIOS

Alta

Informaciónde auditoría

desbloqueo

Objeto de configuración (versión modificada)

Información de

Objeto de configuración (versión línea base)

22

Control de acceso

Baja

Ingenierode software

Base de Datosdel Proyecto

BloqueoObjeto de configuración (versión extraida)

Información de Pertenencia

Objeto de configuración (versión línea base)

Page 23: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

3. Informe del estado de la configuración.

•Es el vehículo por el cual el administrador delproyecto valora los efectos de la GCS.

23

•Es el registro y reporte de la informaciónnecesaria para manejar una configuración. Incluyeuna lista de la identificación aprobada de laconfiguración, el estado de cambios propuestos, yel estado de la implementación de los cambiosaprobados.

Page 24: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

4. Auditoría de la configuración.

24

•La auditoría de la configuración es el proceso

de verificar y validar el hecho que una

configuración propuesta está completa y es

consistente.

Page 25: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Auditoría de la configuración física.

25

•Determinar que todos los elementos

identificados como parte de la configuración

estén presentes y en la línea base del

producto.

Page 26: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Auditoría de la configuración funcional.

26

•Cada elemento de la configuración se

desempeña de acuerdo con lo establecido

en su especificación de requerimientos de

software.

Page 27: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

5. Planear la administración de la configuración

•Planear la administración de la

configuración significa documentar los

métodos a ser usados para identificar los

27

métodos a ser usados para identificar los

elementos de software, controlar e

implementar los cambios, y registrar y

reportar el estado y las auditorías de la

configuración

Page 28: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Puntos del plan.

Los puntos del documento que contiene el plande ACS son:

* Introducción.

28

* Introducción.

* Administración.

* Actividades a realizar de la GCS.

* Herramientas, Técnicas y Metodología.

* Registro de la configuración.

* Auditoría de la configuración.

Page 29: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Ejemplo del contenido del Plan de configuración:

• 1. Introducción

– Proyecto

– Fases

29

– Fases

– Objetivos y riesgos del plan de GCS

– Alcance

– Recursos

Page 30: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Ejemplo del contenido del Plan de configuración:

• 2. Actividades

– Identificación de la configuración

• Definición de líneas base

30

• Definición de líneas base

• Componentes

• Nombres

• Dirección de la Biblioteca

Page 31: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Ejemplo del contenido del Plan de configuración:

– Control de la configuración

• Procedimiento de solicitud de cambio

• Procedimiento de evaluación del cambio

• Procedimiento de aprobación del cambio

31

• Procedimiento de implementación del cambio

– Informe del estado de la configuración

– Auditorías a la configuración

Page 32: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Ejemplo del contenido del Plan de configuración:

• 3. Calendarización de las actividades

• 4. Recursos para la GCS

32

• 5. Mantenimiento del plan.

– Responsable del seguimiento del plan

– Responsable de la actualización del plan

Page 33: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Versiones

• Cada elemento de la configuración va cambiando.

• Debe distinguirse la versión actual de las anterioresanteriores

• En ocasiones se emplean versiones anteriores

• A veces hay cambios opcionales que generan ramas (diferente sistema operativo, 32/64 bits, distinto hardware)

Page 34: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Control de versionesgrafo de evolución

V 2.0 V 2.1

Rama nueva

Rama inicial

V 1.0 V 1.1 V 1.2 V 1.3

Las versiones pueden ser numéricas o por atributos (fecha, plataforma, cliente)

Rama inicial

Page 35: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Software para control de versiones

• Control de versiones a pié es molesto e inseguro; propenso a olvidos

– Ejemplos: empacar versiones, uso de diferente carpeta, salvar en CDcarpeta, salvar en CD

• Debe ser forma automática, que impida cambios arbitrarios, que evite olvidos

Page 36: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Software para control de versiones

Elemento nuevo o modificado

Repositorio

Se registra, asignando versión

Se modifica, Repositorio

Elemento oficial

Se extrae copia

Se modifica, revisa y prueba

Page 37: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Algunas herramientas

• CVS

• SVN (Subversion)

• BitKeeper

Page 38: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Subversion

• Herramienta de software libre para control de versiones tigris.org

• Influencia de CVS (no se tratará)

• Controla versiones de elementos simples y de directorios enteros

• Controla versiones de elementos simples y de directorios enteros

• Actualización de repositorio de manera atómica

• Metadatos asociados a los elementos, también con versión (propiedades y palabras clave)

• Diversas maneras de acceder al repositorio

Page 39: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Arquitectura

INTERFAZ CLIENTEEditor(es) del usuario

Copia(s) de trabajo

Acceso a repositorio

Repositorio

Acceso directo (archivos)

Acceso remoto vía Internet

Page 40: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Interfaz Cliente

• Hay varias interfaces para acceder a subversion

• Interfaz de comandos: svn (estilo Unix)• Interfaz de comandos: svn (estilo Unix)

• Interfaz para explorador de windows: Tortoise(tortoise.tigris.org)

• Interfaz para Eclipse: subclipse, plug-in que se integra como una perspectiva. Se instala a partir de help de Eclipse.

Page 41: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Interfaz svn

• Para algunas cosas es útil el manejo de comandos

• Creación de repositorio:

• ...>svn create path del folder para el repositorio• ...>svn create path del folder para el repositorio

• Debe ser un folder compartido, que se manejará por el nombre que se le dio.

• Puede usarse uno prestado, como– http://svn.sourceforge.net/svnroot/gallery

– http://subclipse.tigris.org/

Page 42: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Acceso al repositorio

• Existen varias formas de acceso: como archivo o remoto.

• Siempre se indica como URL:

• file:///repositorio• file:///repositorio

• http://sitio/repositorio

• file://sitio/repositorio

• https, ssh, svn, svn+ssh

• Requieren adaptador cuando se usa Java

Page 43: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

TortoisePreparación y consulta

• Instalación: se baja paquete y se autoinstala; queda ligado al Explorador de Windows, usando botón derecho

• Creación de repositorios: En un folder (vacío), • Creación de repositorios: En un folder (vacío), botón derecho, “Tortoise-SVN” -> “Create Repository Here”

Page 44: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Tortoisecarga inicial y consulta

• Registrar un folder con su contenido: Botón dereho, “Tortoise-SVN” -> Import.

• Consultar lo que se tiene: botón derecho, “Tortoise-SVN” -> “Repo Browser”; elegir “Tortoise-SVN” -> “Repo Browser”; elegir repositorio.

• Árbol de versiones: “Tortoise-SVN” -> Repo Graph

Page 45: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Tortoisecarga inicial y consulta

• Alternativa mejor para registrar archivos:– Abrir el repositorio (repo browser)

– Dentro de éste, crear una nueva carpeta para cada proyecto que se desea controlar

– Posicionados sobre una carpeta donde se trabajará, hacer tortoise->checkout de la carpeta creada en el repositorio (aparecerá la carpeta >checkout de la carpeta creada en el repositorio (aparecerá la carpeta con un recuadro verde y una marca (�)

– Jalar los archivos que se desean guardar (evite los de tipo binario, como gif, jpg y similares) a la carpeta extraída

– Posicionados sobre la carpeta extraída, con botón derecho en TortoiseSVN->add añadir los archivos que se acaban de jalar

– En la misma carpeta, botón derecho Tortoise Commit (para que los guarde en la carpeta controlada en el repositorio)

Page 46: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Repo Browse

Page 47: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Ejemplo árbol

Page 48: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

TortoiseOperación diaria (1)

• Extraer copia: En directorio de trabajo, botón derecho “SVN Checkout”, saca del repositorio lo que se desea. Última versión: HEAD; otras, modificar marca.

• Actualizar varsión que se trabaja: Botón derecho “SNV Update”

• Guardar nueva versión: botón derecho sobre el archivo, “SVN commit”. Si se hace sobre folder, sólo actualiza los que cambiaron.

Page 49: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Checkout

Page 50: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Checkout

Page 51: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Modificando versiones

Archivo modificado antes de commit

Archivo de acuerdo a la versión registrada

Page 52: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Después del commit

Page 53: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

TortoiseOperación diaria (2)

• Comparar contra versión oficial: botón derecho, SVN Diff.

• Comparar con otras versiones concurrentes: botón derecho “SVN Check for modifications”botón derecho “SVN Check for modifications”

• Solución de conflictos: botón derecho, “Edit conflicts”

Page 54: 6. Cambios · 2011. 10. 24. · Gestión de la configuración •La configuración del software moderno es compleja. –Ejercicio: busque un producto de software libre, descárguelo

Tortoiseotros

• Ramificaciones y marcas: en directorio, en vez de checkout se hace branch/tag, lo cual crea una copia de la última versión guardada, con otro nombre; debe quedar en directorio otro nombre; debe quedar en directorio diferente o con nombre diferente en el repositorio.