Proyecto EGC.docx

Anuncio
Estudio de la configuración en
proyectos de software libre.
7-ZIP
Autores:
Caro Fernández, Rafael
Mendoza Moreno, Juan Miguel
Montero Martín, Juan Francisco
Olivero González, Miguel Ángel
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
Control de versiones del documento
Versión
1.0
1.1
Fecha
24/12/2013
07/01/2014
Autor
Equipo
Equipo
Comentarios
Inicio
Corregido según
propuestas del
profesorado.
2
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
Índice
1. Resumen
2.
Introducción
3. Gestión del Código Fuente
3.1. Ejercicio
3.2. Ejercicio
4. Gestión de la Construcción
4.1. Gestión de pruebas
4.2. Ejercicio
4.3. Ejercicio
5. Gestión de Entregables
5.1. Ejercicio
6. Gestión de Incidencias y Depuración
6.1. Ejercicio
7. Gestión de la Variabilidad
7.1. Ejercicio
8. Gestión de la Integración Continua
8.1. Ejercicio
9. Mapa de herramientas
10. Conclusiones
11. Bibliografía
12. Anexos
3
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
1. Resumen
Este documento recoge información sobre el desarrollo, construcción y distribución del
proyecto 7zip y pretende ser una guía de mejora para la gestión de su configuración.
En concreto, se va a revisar el uso de herramientas que permitan al equipo de
desarrollo llevar a cabo tareas de gestión de forma más dinámica y organizada. Para llevar a
cabo esto se tendrán en cuenta la forma en la que se gestionan áreas tales como: código
fuente, construcción, entregables, incidencias, depuración, variabilidad e integración y
despliegue continuos.
La información recogida en este documento es el resultado de una recopilación
exhaustiva de las fuentes nombradas en la Bibliografía (Véase apartado 11). Estas fuentes no
son suficientes para describir en su totalidad las distintas secciones del presente documento ya
que se trata de un proyecto realizado por un único desarrollador que recibe apoyo de
colaboradores voluntarios. Estas aportaciones son poco frecuentes y se concentran en la
solución de errores; no obstante, propondremos el uso de herramientas de ayuda en los
apartados correspondientes en caso de que un equipo de desarrollo tomase el proyecto.
A partir de los contenidos vistos en la asignatura se analizará si se deberían cambiar las
herramientas utilizadas actualmente o se deberían mantener, de acuerdo a las necesidades del
equipo.
Para explicar el funcionamiento e integración de las herramientas que se expongan se
ofrecerá un mapa de herramientas mostrando las relaciones que se podría encontrar entre
ellas. Además, se ofrecerá una pequeña guía ejemplificando los contenidos prácticos de la
asignatura y proponiendo ejercicios relacionados con la gestión de la configuración que
permiten visualizar de forma genérica cómo podrían llevarse estas acciones a cabo en cada
uno de los apartados significativos de este documento.
Por último se expondrán las conclusiones obtenidas sobre el proyecto y el documento.
4
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
2. Introducción
La aplicación “7-zip” es un archivador de ficheros desarrollado por el programador Igor
Pavlov. Tiene como objetivo ofrecer a los usuarios una herramienta de compresión y
descompresión de archivos de forma gratuita y con una amplia variedad de formatos
disponibles.
El software compite directamente con otras herramientas ampliamente conocidas como
WinZip o WinRAR. Ofrece una interfaz gráfica bastante amigable con la que poder trabajar con
la funcionalidad de la aplicación. El proyecto 7-zip utiliza los métodos de compresión LZMA y
PPMD proporcionando un alto ratio de compresión y solidez lo que mejora la compresión de
conjuntos de archivos pequeños.
El proyecto es de código abierto y posee licencia GNU LGPL aloja su código en la web
http://sourceforge.net/projects/sevenzip/files/. En ella, además de un repositorio de versiones
estables, existe también una wiki pública gestionada por el propio autor donde se reportan
incidencias, se proponen parches, y de donde se pueden descargar las últimas versiones alpha
y beta. La última versión actualmente del software es la 9.22.
Su código está escrito en lenguajes C, C++ y Asm. Está compilado para su explotación
en sistemas que utilicen Windows 98 y superiores aunque, alternativamente, existe también
una versión para sistemas Unix y MacOs, es conocida como p7zip. Esta versión está alojada
en http://sourceforge.net/projects/p7zip/. (La actual última versión es la 9.20.1)
Este documento está estructurado con los siguientes bloques:
Resumen e Introducción: Resumen el proyecto presentado, explica brevemente las
funcionalidades de la aplicación, las plataformas para las que trabaja, la última versión lanzada,
y describe al grupo de desarrolladores.
Gestión del Código Fuente: Explica las técnicas y herramientas que se han empleado
para gestionar el código fuente, esto incluye la gestión de las ramas y parches. Se describen
también otros aspectos organizativos como la aprobación de cambios, los roles existentes, o el
formato de los archivos fuente en el código.
Gestión de la Construcción: Explica las técnicas y herramientas que se emplean en la
construcción del proceso. Para ello se describe el uso de estas herramientas y configura cada
cuánto se realiza una construcción, entre otras.
5
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
Gestión de Entregables: Explica qué elementos serán entregados a los clientes, y cómo
son generados. Se explicará también cómo se identifican los distintos entregables, su ubicación
y qué rol o roles del proyecto se involucran en este aspecto.
Gestión de Despliegue: Explica los mecanismos de despliegue y los procesos
relacionados. Se describirán también las plataformas en las que se lleva a cabo estas tareas y
qué herramientas se involucran en las mismas.
Gestión de Incidencias y Depuración: Explica los mecanismos de depuración empleados
en el desarrollo de la aplicación. Se describe cómo se llevan a cabo estos cambios, y cómo se
gestionan. Expone también quién o quiénes son los responsables de tomar una decisión de
acuerdo a la incidencia reportada.
Gestión de la Variabilidad: Explica los mecanismos empleados, o que pueden ser
utilizados para gestionar la variabilidad en el proyecto.
Gestión de la Integración o Despliegue Continuos: Explica la existencia de alguno de
estos mecanismos, y en caso de no existir, define cómo podría llegar a incluirse.
Se explicará posteriormente en un mapa de herramientas cómo las distintas
herramientas se interconectan para poder gestionar el código eficientemente y se finalizará el
documento con una conclusión en la que se le da una valoración global de la evolución y
gestión de la configuración llevada a cabo en el proyecto. También se puede encontrar
información de interés como el diario de grupo o datos de conexión a los servicios en los
anexos.
6
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
3. Gestión del Código Fuente
Para explicar la gestión del código fuente, empezaremos explicando las
herramientas empleadas para la gestión.
El código fuente es gestionado con el soporte ofrecido por “SourceForge.net”.
SourceForge actúa como un repositorio centralizado para software libre y es utilizado por
más de 3 millones de desarrolladores, lo cual es un entorno propicio para la obtención de
feedback de otros desarrolladores.
SourceForge ofrece un repositorio público del que se pueden descargar las distintas
versiones estables y finales pertenecientes a la rama principal de desarrollo de la
aplicación. Cada versión está almacenada en un directorio y contiene el ejecutable con
extensión .msi, .exe y el código fuente en C++, Asm y C comprimido en *.tar.bz2. El código
se gestiona en local de manera privada y las mejoras o soluciones de errores se reportan
en la wiki del proyecto 7zip en SourceForge.
El control de cambios bugs se reportan en una wiki. El sistema funciona mediante la
expedición de tickets, entradas que permiten a los usuarios sugerir o reportar cambios. Los
posibles parches que se pudiesen aplicar se suben a ésta con la aprobación del
administrador de la wiki.
SourceForge proporciona unas opciones configurables a los desarrolladores que
usan sus servicios. Entre estas opciones están el uso de GIT, SVN y Mercurial. Al gestionar
el código de manera local podemos elegir la plataforma que más nos guste, aunque, por su
7
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
simplicidad y comodidad a la hora de trabajar sin conexión, nosotros proponemos el uso de
GIT. Dado que Igor Pavlov es el único desarrollador del proyecto 7zip y no consideramos
necesaria la obligación de hacer actualizaciones en todas las ocasiones a un repositorio
externo, afianzamos la decisión de que GIT se adapta mejor a su desarrollo que
herramientas SVN.
Existe un archivo en el cual se explica y expone el formato y las pautas que debe
seguirse en el código fuente, dicho archivo es el llamado “7zFormat.txt”, que incluiremos
como anexo de este documento.
Mejoras realizadas al proyecto inicial:
Para ayudar a la creación y mejora de la aplicación, hemos creado un repositorio
GIT en Sourceforge y hemos añadido GIT a la máquina virtual. Esto permitirá al autor tener
un historial de los cambios realizados.
Permitiremos que cualquiera pueda leer del repositorio, para así poder recibir
parches y ayuda de otros usuarios.
Los datos de conexión para este repositorio alojado en Sourceforge pueden
encontrarse en el Anexo III.
3.1. Ejercicio: Simulación de corregir un bug, y hacer commit.
Una vez localizado un bug en la aplicación, los pasos para arreglarlos serían:
1234-
Asegurarnos de que se trata de un comportamiento reproducible y localizable.
Editar el fichero donde se encuentre el error.
Añadir el fichero al repositorio local GIT con el comando “git add <ruta del fichero>.
Realizar commit de los cambios con la orden “git commit -a”. En este paso
añadiremos detalles de los cambios.
5- Añadimos los cambios al fichero remoto utilizando “git push origin master”.
6- Tras esto nos pedirá la contraseña del administrador del repositorio. La
introducimos y se enviarán los cambios.
8
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
3.2. Ejercicio: Obtener código del repositorio.
Si lo que deseamos hacer es conseguir una copia del repositorio alojado en
Sourceforge, lo que debemos hacer es:
1- Desde consola, irnos a la carpeta donde queramos que se cree la copia del
proyecto.
2- Introducir el comando de GIT que podemos encontrar en la web de Sourceforge del
proyecto creado en relación con este documento. (Ver Anexo III):
“git clone git://git.code.sf.net/p/egctest/code”.
A través de este comando se procede a la descarga del proyecto.
9
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
4. Gestión de la construcción
En la gestión para la construcción se analizan tareas referentes a la compilación del
código fuente.
El proyecto “7zip” originalmente está desarrollado en Visual Basic 6 y se despliega tanto
en arquitecturas x86 como x64. El código fuente se puede descargar desde el repositorio de
SourceForge desde la página:
http://sourceforge.net/projects/sevenzip/files/.
El archivo *.tar.bz2 contiene tres carpetas en las que podemos encontrar el código
fuente en C, C++ y ASM respectivamente.
10
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
Dentro de cada carpeta se encuentra el código fuente del proyecto y un archivo llamado
“build.mak” el cual posee la configuración para la correcta compilación en las diferentes
plataformas y sistemas aceptados.
Este fichero nos indica que el proyecto se compila utilizando makefile. Estos ficheros
ayudan a compilar automáticamente proyectos que necesitan una gran cantidad de
configuración, evitando tener que escribir todas las líneas de configuración en la consola.
También podemos encontrar otra carpeta con documentos de ayuda llamada “DOCS”
con información sobre las licencias, las librerías necesarias para compilar, un histórico de
parches y una breve descripción del código.
Requisitos para la construcción del proyecto
En primer lugar sustituiremos el compilador Visual Basic 6 por Visual Studio 2010
Express Edition con SP1 por mayor comodidad a la hora de modificar el código y
compatibilidad con los entornos de desarrollo más modernos.
Para la correcta construcción necesitaremos las siguientes herramientas:
a. Visual Studio 2010 Express Edition with SP1
http://www.microsoft.com/eses/download/confirmation.aspx?id=23691
11
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
b. Windows SDK 7.0 for x64 (opcional)
http://download.microsoft.com/download/2/E/9/2E911956-F90F4BFB-8231-E292A7B6F287/GRMSDKX_EN_DVD.iso
c. Windows DDK 7.1 (opcional)
http://download.microsoft.com/download/4/A/2/4A25C7D5-EFBE4182-B6A9-AE6850409A78/GRMWDK_EN_7600_1.ISO
d. 7zip.exe
http://downloads.sourceforge.net/sevenzip/7z920.exe
e. Código fuente de 7zip.
f.
Consola de comandos de Windows.
Una vez hayamos obtenido las herramientas anteriores procederemos a la instalación
del Visual Studio 2010. A continuación instalaremos 7zip.exe y lo utilizaremos para
descomprimir el código fuente descargado.
Ya que el código está escrito en C y C++ el Visual Studio nos proporcionará toda la
gestión y configuración necesaria, así como bibliotecas y librerías.
La modificación del código fuente será tratada con Visual Studio y su posterior
compilación se llevará a cabo mediante la línea de comandos de Windows.
4.1. Ejercicio: Compilar el código
Procederemos a compilar el código de 7zip. Para ello haremos uso de lo instalado
anteriormente.
Lo primero que debemos hacer es incluir las variables de entorno de Visual Studio
para poder utilizarlas en la línea de comandos de Windows. Para ello abriremos una consola
de Windows e introduciremos:
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\vsvars32.bat".
12
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
Una vez incluidas las variables procederemos a la compilación del código, nos
dirigiremos con la consola al lugar donde se encuentre el código (cd “ruta del
código\CPP\7zip”) e introduciremos la siguiente orden:
“nmake NEW_COMPILER=1 MY_STATIC_LINK=1”
Tras esto, comenzará la compilación. Tardará varios minutos tras lo cual se crearán
los ficheros .exe para la utilización del programa.
4.2. Ejercicio: Uso de 7zip
El fichero que utilizaremos para comprimir es el que se crea en la ruta
“CPP\7zip\Bundles\Alone\O\7za.exe”. Al ejecutarlo por consola podremos comprimir y
descomprimir ficheros. Los comandos necesarios para el manejo de esta aplicación aparecerán
en consola a modo de guía.
13
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
4.3. Gestión de Pruebas
Dado que la gestión de Pruebas es privada y gestionada por el autor, este documento
propone una serie de test para corroborar el correcto funcionamiento de los distintos
ejecutables una vez compilado el código fuente.
Podemos encontrar el 7za.exe en la ruta:
“<ruta_del_proyecto>\CPP\7zip\Bundles\Alone\O\7za.exe”
Para la simplificación de los comandos de los ejercicios, el fichero 7za.exe lo
localizaremos en C:\bin y los ficheros a comprimir en C:\prueba.
- Prueba de Compresión:
Utilizaremos el ejecutable correspondiente y un archivo cualquiera para comprobar
su correcta compresión:
Para realizar la prueba emplearemos el siguiente comando:
14
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
C:\bin\7za.exe a archivoComprimido comprimeme
Esto crea un archivo .7z llamado “archivoComprimido”, el cual contiene a la carpeta
“comprimeme”
-
Prueba de descompresión:
Para ello utilizaremos el ejecutable 7za.exe y el archivo comprimido en el ejercicio
anterior.
Para realizar la prueba emplearemos el siguiente comando:
C:\bin\7za.exe x archivoComprimido.7z
15
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
5. Gestión de entregables
Los entregables ofrecidos hasta la fecha están compuestos por un ejecutable que sirve
para la instalación de la aplicación, y el código fuente del mismo en formato de archivo
comprimido. Estos entregables salen a la luz sin una periodicidad establecida. Es decir, salen
cuando están listos.
Los archivos descargables se pueden encontrar en la página web alojada en
Sourceforge asignada al proyecto y son anunciados en el foro de Sourceforge:
http://sourceforge.net/p/sevenzip/discussion/45797/thread/9d1f5836
Para la distribución se utiliza el propio servidor de Sourceforge, que, al mismo tiempo
ofrece la opción de descarga de archivos directamente desde la página principal del proyecto.
No se describe alguna asignación de roles para la entrega del proyecto 7zip. El autor es
el administrador del proyecto y es el único que posee la autorización para integrar un parche o
actualización en un nuevo entregable.
La numeración que se sigue está formada por dos números separados por un punto
(x.y) donde el primer valor representa la versión del producto y el segundo valor se ve
incrementado cuando se añade cierta funcionalidad al producto, pero no suficiente como para
formar una nueva versión completa. Éste último valor también se ve incrementado cuando se
resuelven bugs.
El desarrollador también le agrega a veces la etiqueta “beta” o “alpha”, y la mantiene
durante varias versiones del producto, indicando que no considera que la versión esté libre de
errores. Su uso continuado puede producir que se relacione esta etiqueta con el nombre del
producto y finalmente acabe integrándose en el mismo.
5.1 Ejercicio Simular un entregable en Sourceforge.
Véase el anexo IV
16
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
6. Gestión de incidencias y depuración
Las incidencias en este proyecto se gestionan empleando el sistema de “Tickets” que
ofrece la plataforma SourceForge. Está dividida en tres partes: patches, bugs y “Feature
Request”.
Cualquier usuario puede reportar problemas, para ello deberá registrarse en
“SourceForge” y enviar un correo a “45797@discussion.sevenzip.p.re.sf.net” incluyendo la
siguiente información:
1. Para cada Equipo implicado:
a. La versión y el tipo de 7zip (32-bit / 64-bit)
b. La versión y el tipo de Windows (32-bit / 64-bit)
c. El tipo de CPU.
d. El tamaño de tu memoria RAM.
2. Una descripción de su problema.
El administrador de la wiki validará nuestra petición y abrirá una discusión en
https://sourceforge.net/p/sevenzip/bugs/, donde se expondrán las posibles soluciones, y sus
resultados. Si el problema es resuelto se cerrará el tema.
Los Patch correspondientes a la solución parcial o completa de estos problemas se
podrán encontrar en https://sourceforge.net/p/sevenzip/patches/ y posteriormente con la
actualización de versión del programa.
La gestión de incidencias y depuración de las versiones alpha y beta se expondrán con
previa autorización del autor en sus respectivos temas abiertos.
Para la versión alpha 9.32:
http://sourceforge.net/p/sevenzip/discussion/45797/thread/49e6a4d4/
Para la versión beta 9.22:
http://sourceforge.net/projects/sevenzip/files/7-Zip/9.22/
6.1. Ejercicio
En el anexo III se puede encontrar una guía en la que se detalla paso a paso la creación
de un ticket, la creación de una respuesta al mismo, y la aceptación de ese ticket por parte del
desarrollador o persona autorizada.
17
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
7. Gestión de la variabilidad
En el proyecto 7zip no se utilizan ninguno de los principios de gestión de la variabilidad
impartidos en clase. El programa, una vez instalado, está completo y no se da elección a alterar
el contenido en su instalación.
Una posible aproximación a la gestión de la variabilidad podría ser dar la opción al
usuario, en el proceso de instalación, de incluir o no ciertos paquetes en el programa, como
podrían ser, por ejemplo, el correspondiente a la descompresión de la extensión “rar”
De cara al desarrollo, se podría crear una línea base para el producto sobre la cual
añadir funcionalidades. No obstante, dado que el proyecto solo consta del producto 7zip, la
gestión de la variabilidad no tendría gran utilidad.
Tampoco se descarta poder llegar a utilizarse de cara a la variación de las plataformas
en las que está o estará disponible el programa 7zip.
7.1. Ejercicio:
Mostrar cómo se gestionaría la variabilidad mediante un esquema en el hipotético caso
de que se podría modularizar el programa.
Véase el anexo V
18
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
8. Integración continua
La integración continua pretende integrar los distintos componentes de un proyecto. En
este proyecto la integración es privada y gestionada por el autor. Las aportaciones voluntarias
son comprobadas por el autor y añadidas a la rama principal según su criterio.
Este proyecto se alimenta de otros proyectos para poder realizar su función
correctamente. Necesita de otros compilados para poder trabajar con determinados tipos de
archivos, como el WinUNRAR. A pesar de ello, no es necesario mecanismos de integración
continua, ya que no compila su código fuente sino que utiliza sus ejecutables.
Para poder visualizar una tarea de integración continua, los autores de este documento,
proponemos la utilización de la herramienta Jenkins para que el código sea recogido del
repositorio y compilado automáticamente. De este modo el desarrollador ahorrará tiempo en la
realización de dichas tareas.
8.1. EJERCICIO: Configuración de Jenkins
Véase el anexo VI
19
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
9. Mapa de herramientas
Para la gestión del proyecto 7Zip se han empleado herramientas de ayuda tanto online
como de uso local.
Contamos con la herramienta Sourceforge, con la que hemos cubierto el repositorio GIT
y la gestión de incidencias. Aparte, también permite alojar los archivos entregables y permite
que la aplicación sea accesible para todos.
La vinculación al repositorio se realiza mediante consola gracias a GIT. El repositorio
pertenece a Sourceforge, permitiendo trabajar en él y permitiendo que todo el que quiera pueda
descargarse el código fuente de forma sencilla. También, a nivel local hemos utilizado Jenkins
como ayuda para la integración continua y Visual Studio para la compilación.
Jenkins permite gestionar la integración continua y comprobar errores. Está vinculado al
repositorio GIT para poder trabajar con la última versión de la aplicación disponible. Esto
permite realizar pruebas periódicamente con los datos del repositorio.
Visual Studio C++ provee de todo lo necesario para poder compilar la aplicación de
7zip. No se utiliza su interfaz gráfica, sino que se ejecuta por línea de comandos de Windows.
20
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
10. Conclusiones
La principal dificultad encontrada a la hora de evaluar la gestión de la configuración de éste
proyecto es la falta de documentación por parte del creador del proyecto.
Pese a la libertad de elegir proyecto, el desconocimiento de cómo se desarrollaba el mismo
ha jugado un poco en nuestra contra. Sería beneficioso para los siguientes alumnos que cursen
la asignatura que se acotasen los proyectos de software libre que se pueden elegir sobre la que
realizar este trabajo.
Por otra parte, hemos podido comprobar la importancia de la gestión de la configuración en
un proyecto, tal y como los expertos con los que hemos tratado suelen asegurar. Dado que el
proyecto 7zip tiene una carencia casi total de datos sobre la gestión publicada, nos ha
resultado muy difícil ser capaces de estudiar y elaborar este informe.
Está claro que no podemos obligar a todos los desarrolladores a seguir las mismas pautas,
y más teniendo en cuenta el hecho de que el equipo de desarrolladores de 7zip, como ya se ha
dicho en el documento, sólo cuenta, oficialmente, con un miembro.
No obstante, si se tiene visión de futuro y ambición con respecto al proyecto que se tiene
entre manos, pensamos que es aconsejable seguir los estándares establecidos para la
elaboración de un código y una documentación aceptable, comprensible y reutilizable. Ya que
no solo ayudará a la gestión del proyecto, sino que además proporcionará a futuros
desarrolladores una base fiable y comprensible para continuar el proyecto o realizar uno
similar.
21
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
11. Bibliografía
7-Zip
http://www.7-zip.org/
7-Zip | SourceForge.net
http://sourceforge.net/projects/sevenzip/
Manual Git
http://git-scm.com/doc
Página web de la asignatura
http://1984.lsi.us.es/wiki-egc/index.php
Apoyo para la construcción
http://www.ski-epic.com/2012_compiling_7zip_on_windows_with_visual_studio_10/index.html
Makefile Tutorial
http://mrbook.org/tutorials/make/
22
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
12. Anexos
Anexo I: Diario de Grupo.
25/11/2013 - Comienzo elaboración de documentación del proyecto.
Se preparan los archivos en los que se trabajarán en grupo.
29/11/2013 - Reunión del grupo.
Se reparten las tareas derivadas de éste proyecto entre los componentes del
grupo.
02/12/2013 - Ampliación de contenidos en el documento.
La estructura principal del documento es modificada para dar lugar a nuevos
contenidos no previstos.
19/12/2013 - Reunión del grupo.
Ampliación de contenidos en el documento para adecuarlo a los ejercicios
relacionados con la máquina virtual.
20/12/2013 - Revisión de ejercicios.
Se revisan los ejercicios propuestos y se redactan soluciones. También se
solucionan problemas con la máquina virtual y se prepara correctamente para el
proyecto.
22/12/2013 – Reunión de finalización.
Se reúne el equipo de trabajo, se solucionan fallos en el documento y se retocan
los apartados.
23/12/2013- Reunión para realizar entrega.
Se reúne el equipo de trabajo para finalizar y subir el proyecto. Debido a que el
equipo no llega a consenso para entregar, se pospone un día la entrega.
24/12/2013 – Entrega de la práctica.
Repaso del documento y posterior subida a Opera.
14/01/2014 – Publicación de las notas.
Se publican los resultados de las notas provisionales tras la primera entrega.
23
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
20/01/2014 – Tutoría para la revisión.
El equipo acude al despacho del profesor para revisar el trabajo y
comprometerse a realizar determinadas modificaciones para la próxima revisión el 7 de
febrero.
21/01/2014 – Ejercicio para la revisión.
El equipo prepara ejercicios para la vista del día 23. Se decide qué se hará y
cómo.
22/01/2014 – Ejercicio para la revisión II.
Se finaliza el desarrollo de los ejercicios y su presentación.
23/01/2014 – Presentación.
El equipo realiza una presentación de su trabajo al profesorado de la asignatura.
03/02/2014 – Corrección.
El equipo realiza algunas correcciones al documento tomando como punto de
partida las anotaciones realizadas en la tutoría.
04/02/2014 – Corrección.
El equipo realiza algunas correcciones al documento tomando como punto de
partida las anotaciones realizadas en la tutoría.
05/02/2014 – Corrección.
El equipo realiza algunas correcciones al documento tomando como punto de
partida las anotaciones realizadas en la tutoría.
06/02/2014 – Corrección y preparativos para la entrega.
El equipo realiza algunas correcciones al documento tomando como punto de
partida las anotaciones realizadas en la tutoría y se ultiman y comprueban las
correcciones realizadas para preparar la entrega.
07/02/2014 – Entrega.
El equipo realiza la entrega de la documentación y el diario de grupo de acuerdo
a las correcciones acordadas y otras correcciones extra derivadas de una profunda
revisión.
24
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
Anexo II: Datos para realizar conexión.
Acceso al email:
GMX.es
Username: egc1314@gmx.es
Password: egc20132014
Sourceforge:
Sourceforge.es
Username: egc-20132014
Password: egc20132014
Jenkins
http://localhost:8080
Username: egc-20132014
Password: egc20132014
25
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
Anexo III: Guía de creación y aceptación de un ticket.
1-Resumen (Página que aparece automáticamente al buscar el proyecto).
2-Vista de los tickets existentes.
26
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
3-Vista de creación de un nuevo ticket.
4-Una vez rellenado el formulario, pulsamos el botón “Save” y el ticket quedará registrado.
27
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
5-Vista detallada del ticket, incluyendo comentarios y la posibilidad de crear uno.
6-Una vez añadidos los datos del formulario, pulsamos en “Post” y el mensaje queda
registrado.
28
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
7-De nuevo, la vista detallada del ticket (donde vemos el mensaje posteado).
8-Un desarrollador puede marcar un ticket como aceptado.
29
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
9-Vista general de los tickets donde aparece el ticket aceptado.
30
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
ANEXO IV
Una vez compilado el código, utilizando la herramienta Sourceforge procederemos a
añadir un entregable.
Lo primero que haremos será crear una carpeta con el número de versión. Para ello nos
dirigimos al apartado “Files” del proyecto en Sourceforge y creamos la carpeta con “Add Folder”
Seguidamente entramos en la carpeta y con “Add File”, seleccionamos los archivos a subir.
31
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
ANEXO V
Siguiendo el modelo OVM se ha esquematizado cómo podría el desarrollador
modularizar parte de su código.
Se ejemplifican tres “Variation Points”, con algunas variantes posibles.
Se toma como opciones el formato de archivo con el que podría tratar, el tipo de
archivo y el tipo de compresión con el que podría trabajar.
Distinguimos entre varios formatos ampliamente conocidos, algunos tipos de
archivos dependiendo de si éstos son únicos o están particionados, así como si la
descompresión necesita de clave o está automatizada.
32
Evolución y Gestión de la Configuración.
Proyecto 7-Zip
ANEXO VI
Se han seguido los siguientes pasos para la configuración de Jenkins:
1234-
Instalación de Jenkins desde la página web http://jenkins-ci.org/
Activación de la seguridad y creación de un usuario
Instalación del plugin de GIT (Jenkins GIT plugin 2.0)
Creación de una tarea, correspondiente al proyecto.
Como podremos comprobar en la siguiente imagen, se configura la URL del repositorio
GIT correspondiente.
33
Evolución y Gestión de la Configuración.
5-
Proyecto 7-Zip
Configuración de las pruebas
Las pruebas se realizarán una vez al mes y la prueba consistirá en compilar el proyecto
mediante comandos de Windows.
Las pruebas son totalmente personalizables. El creador de la aplicación podría
cambiarlas por otras que tuviesen un mayor peso en la integración o que estén relacionadas
con partes concretas del proyecto.
34
Descargar