6. cambios · 2011. 10. 24. · gestión de la configuración •la configuración del software...
TRANSCRIPT
6. Cambiosy su manejoy su manejo
Juan Manuel Fernández Peña
2011
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
El software en el tiempo
• El software envejece
– Especialmente si no cambia
• Para seguir usándolo debe cambiarse
Qué lleva al cambio
Expresión de los cambios
• Nuevos requerimientos o modificación de los existentes
• Quejas por mal funcionamiento• Quejas por mal funcionamiento
¿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)
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
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
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
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
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
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
¿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
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.
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.
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.
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.
•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
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
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
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.
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)
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.
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.
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.
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.
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
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.
Ejemplo del contenido del Plan de configuración:
• 1. Introducción
– Proyecto
– Fases
29
– Fases
– Objetivos y riesgos del plan de GCS
– Alcance
– Recursos
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
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
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
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)
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
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
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
Algunas herramientas
• CVS
• SVN (Subversion)
• BitKeeper
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
Arquitectura
INTERFAZ CLIENTEEditor(es) del usuario
Copia(s) de trabajo
Acceso a repositorio
Repositorio
Acceso directo (archivos)
Acceso remoto vía Internet
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.
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/
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
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”
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
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)
Repo Browse
Ejemplo árbol
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.
Checkout
Checkout
Modificando versiones
Archivo modificado antes de commit
Archivo de acuerdo a la versión registrada
Después del commit
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”
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.