Está en la página 1de 5

Desarrollo de Memorias y Tesis Usando Herramientas Colaborativas Writing Theses Using Collaborative Tools

Horst H. von Brand Mauricio A. Araya Jorge Avarias

Resumen Se describen experiencias exitosas en la gu a de tesis y memorias (y la elaboraci on de publicaciones concomitantes) usando herramientas colaborativas pensadas para desarrollo de software. Aprovechamos bien las herramientas de Unix (en nuestro caso, en realidad provistas por diversas distribuciones de Linux que est an orientadas a desarrollo de software (principalmente manipulaci on de c odigo fuente como archivos de texto). Nuestro ujo de trabajo ha signicado agilizar varios de los procesos de desarrollo de memorias y tesis, y ha permitido mejorar el reuso de los resultados en forma de documentos adicionales (reportes t ecnicos y otras publicaciones).
A Palabras clave: Memoria/tesis, desarrollo colaborativo, L TEX, Linux, git

Abstract Successful experiences in writing theses (both undergraduate and graduate) and the resulting formal publications) using collaborative tools for software development. We make good use of Unix (in our case, in reality tools provided by Linux distributions) tools which were really created for software development (primarily source code manipulation tools which work on text). Our workow has streamlined several processes in thesis writing, and has simplied the reuse of the results in the form of additional documents (technical reports and other publications).
A Keywords: Theses, collaborative development, L TEX, Linux, git

Introducci on

Hace tiempo se usan herramientas colaborativas para el desarrollo de software. En particular, proyectos de desarrollo de c odigo abierto ser an impensables sin las actuales herramientas de trabajo colaborativo. Adaptamos la forma de trabajar de proyectos de c odigo abierto (y algunas de las herramientas aplicadas en ellas) a la tarea de coordinar el desarrollo de memorias y tesis, con el memorista o tesista haciendo de cabeza del desarrollo y profesores referente y correferente (y posiblemente otros estidiantes interesados en el tema por estar trabajando en temas anes) siguiendo el desarrollo y aportando sugerencias. La misma forma de trabajo se ha empleado con exito en otras aplicaciones en el ambito
Departamento de Inform atica. Universidad {vonbrand,maray,javarias}@inf.utfsm.cl

acad emico, como edici on de apuntes y desarrollo de evaluaciones de ramos (y sus soluciones y pautas de correcci on).

Herramientas empleadas

Las memorias y tesis dirigidas por el primer auA tor com unmente se escriben usando L TEX 2 [9]. Esto signica que son archivos de texto que pueden manipularse con las herramientas cl asicas para desarrollo de software. En particular, es c omodo manejar el c odigo fuente de un documento usando un editor de texto com un y compartiendo estos archivos mediante un sistema de control de versiones. Las herramientas del sistema Unix (en este caso, corriendo en alguna distribuci on de Linux) est an
Federico Santa Mar a. Casilla 110-V, Valpara so, Chile.

T ecnica

orientadas a trabajar con archivos de texto, con lo que esto funciona bien. Aprovechamos adem as las bondades de A L TEX 2 . Particularmente importante es la posibilidad de compartir bases de datos bibliogr acas entre m ultiples documentos, con lo que basta agregar nuevas entradas a una base de datos com un para que cualquier documento pueda usarlas. Esto permite que se validen cuidadosamente las nuevas entradas, asegurando que las referencias est en completas. Adem as, con BibTEX es posible agregar informaci on adicional a la entrada de la referencia bibliogr aca, como por ejemplo la URL en la que se puede encontrar el art culo, o un breve resumen. Estos agregados locales no aparecen en las citas bibliogr acas, pero es posible escribir herramientas sencillas (formatos de bibliograf a, en realidad) que los incluyan. Otra ventaja importante es que puede variarse el estilo de un documento simplemente cambiando algunas deniciones, como por ejemplo ir del formato com unmente usado para memorias ac a en Chile (texto en una columna, a doble espacio, en hoja ocio) al que usa IEEE para sus publicaciones (texto a dos columnas, espacio A simple, hoja carta). L TEX 2 ofrece tambi en la posibilidad de escribir un documento extenso (como una memoria o una tesis) en archivos separados (por ejemplo, uno por cap tulo) que se integran en el momento de procesar el documento. Otra ventaja A importante es que existen paquetes para L TEX 2 que permiten crear presentaciones en PDF, con lo que tambi en es posible reusar material directamenA te con ellas. Esta exibilidad de L TEX es b asica en nuestro trabajo. Otra herramienta de inter es especial (dada la m as bien atroz ortograf a de que gozan los ingenieros) es aspell(1)1 , un programa exible de vericaci on ortogr aca. Este programa permite al usuario crear su propia base de datos de palabras, lo que es u til para agregar t erminos de la jerga y abreviaturas comunes. Las herramientas est andar de manipulaci on de texto bajo Unix (alguna distribuci on de Linux, en nuestro caso), como son grep(1), sed(1), sort(1), e incluso lenguajes completos con facilidades para manipulaci on de strings, como lo son Perl [20] o Python [12] pueden aprovecharse para manipular los fuentes de los documentos de diversas maneras. Fundamental es el uso de make(1), que permite automatizar diversas tareas de procesamiento, ofreciendo un simple comando que permite actualizar archivos con dependencias complejas, como lo es una tesis conformada por varios cap tulos y una bibliograf a, y que incluye material adicional como guras o tablas, que a su vez deben generar1 Usamos

se partiendo de otros archivos. Las herramientas de desarrollo de sistemas Linux [7] son una gran ayuda, junto con programas orientados a procesamiento de texto y manipulaci on gr aca. En este sentido, hemos usado dia(1) (para crear diagramas), xfig(1) (gr acos en general), gnuplot(1) (gracar funciones y datos), asymptote(1) (un completo lenguaje para describir gr acos) y ocasionalmente inkscape(1) (im agenes complejas). Los diversos formatos manejados nativamente por estos programas deben traducirse a alg un formato com un que pueda incorporarse en el documentos. Para ello se pueden usar facilidades de exportaci on de las herramientas o algo como la navaja suiza de formatos de imagen, ImageMagick(1) o GraphicsMagick(1). Una pieza clave result o ser git(1) [5, 13, 15], un sistema de control de versiones distribuido. Un sistema de control de versiones, como su nombre lo indica, permite administrar distintas versiones de un proyecto. En el u ltimo lustro se han hecho populares los sistemas distribuidos, en los cuales no hay un repositorio central del proyecto con el que deben interactuar los participantes, sino que cada cual tiene un repositorio completo independiente. En vez de sincronizarse a trav es del repositorio central, se comparten modicaciones al proyecto que el receptor integra en su versi on local. Hay diversos medios para compartir modicaciones, ya sea tom andolas directamente de un repositorio remoto, envi andolas para ser integradas all a, o a trav es de enviar parches por correo. Obviamente, un sistema distribuido puede manejarse como si fuera centralizado, v a designar un repositorio como la versi on ocial con la cual todos debieran sincronizarse. La ventaja de estos sistemas en todo caso est a en las posibilidades adicionales que ofrece el trabajo descentralizado. En particular, un desarrollador puede trabajar en forma privada sin publicar sus experimentos, y publicar sus resultados reci en cuando tengan exito (y nadie se enterar a si no lo tienen). Es sencillo manejar versiones propias en las cuales se integran casi autom aticamente los cambios que se reciban de otros participantes. Otra de las ventajas es la posibilidad de trabajar sin estar conectado a la red, teniendo siempre toda la historia del proyecto a la mano. Al no requerir instalaci on especial de un servidor y un area donde se almacenan proyectos, estos sistemas son particularmente u tiles para manejar proyectos personales, no pensados para ser compartidos con los dem as. Bajo git un repositorio de un proyecto es simplemente un directorio, que puede manipularse con las herramientas t picas (respaldar, copiar, e incluso traspasar a otros usuarios). Un sistema distribuido como git,

la convenci on de mencionar comandos de Unix dando su nombre y la secci on del manual que lo documenta.

al hacer que las operaciones b asicas de integrar modicaciones y crear y destruir ramas de desarrollo, de enviar y recibir cambios sean extremadamente ecientes, hace natural que el desarrollo se lleve a cabo en peque nos pasos cada uno de las cuales signica un cambio l ogico. Esto da al receptor la posibilidad de elegir los cambios a integrar, haciendo muy exible el desarrollo.

3.3

Encargado de bibliograf a com un

Flujo de trabajo

Nuestro ujo de trabajo actual considera las convenciones y tareas descritas m as abajo. Las principales herramientas empleadas son las indicadas en cada uno de los puntos.

3.1

Tesista

El tesista es el desarrollador principal. Administra el repositorio maestro del proyecto, e integra las modicaciones sugeridas por los dem as. Este repositorio est a disponible s olo para los participantes (el tesista, profesor gu a, correferente; posiblemente otros tesistas que trabajen en temas anes), no es publico. En este repositorio se manejan adem as documentos adicionales, como la presentaci on inicial del tema. En el caso de las memorias, los reglamentos internos de la UTFSM exigen que se presente un documento con el tema, los objetivos, y un breve estudio bibliogr aco. Para el caso de tesis, adem as de lo anterior se debe defender el tema ante la Comisi on de Postgrado del Departamento. En el desarrollo de todos estos documentos participan tambi en (m as que nada revisando los textos) los dem as participantes.

Una de las innovaciones ha sido el confeccionar una base de datos bibliogr aca com un, a ser usada por la variedad de documentos que se producen como parte del proyecto bajo el cual trabajamos. A un si no hubiera un proyecto marco com un, mucha de la bibliograf a b asica (como referencias a los est andares de lenguajes de programaci on, textos est andar en diferentes areas y textos gu a de ramos de la carrera) ser an de uso razonablemente amplio en los trabajos nales. Contar con referencias bibliogr acas completas y validadas de los anteriores es de ayuda a los estudiantes. Como esta es una tarea permanente, que va m as all a del desarrollo de un proyecto personal, esto es manejado por un profesor a cargo del proyecto. Tambi en esto se maneja como un repositorio git. Este repositorio, al no contener datos condenciales, perfectamente puede ser p ublico. Ac a se integran las nuevas referencias que se vayan agregando, pero tambi en se aceptan correcciones a las referencias existentes (m as que nada completar referencias incompletas, o substituir o complementar referencias informales, como las son reportes t ecnicos, con documentos publicados formalmente).

3.4

Otros participantes

3.2

Profesores gu a y correferentes

Los profesores participantes en la comisi on de la tesis tienen acceso directo al repositorio con el texto en desarrollo, desde el cual pueden sincronizar su copia local a gusto. De esta forma, pueden seguir el desarrollo del texto, sin tener que esperar un borrador formal para aportar comentarios y correcciones. El tener acceso directamente al texto en formato electr onico permite procesarlo con diversas herramientas. Las modicaciones propuestas pueden enviarse por correo electr onico al tesista, quien (usando las herramientas propias del sistema de control de versiones) decide si las integra, eventualmente con modicaciones propias. Ha resultado u til en esta tarea la posibilidad de ver las modicaciones, con lo cual la correcci on en cada ronda se puede concentrar en los cambios.

Una memoria o tesis debiera formar parte de un trabajo mayor, con lo que habr an otros interesados en el tema. Es muy deseable que quien contin ue una memoria se involucre tempranamente en su desarrollo. En muchos casos aportar an a memorias o tesis trabajos de ramos de taller. Tener acceso al texto (y posiblemente a desarrollos concomitantes) durante su desarrollo, no s olo una vez terminado el trabajo, es importante en estos usos. Tambi en resulta interesante que el trabajo hecho quede disponible en formato electr onico u til para aprovechar partes y piezas en trabajos futuros. En particular, sirve para reutilizar descripciones y problemas y adaptar textos comunes como descripciones generales de los temas o directamente para hacer referencia a los u ltimos resultados a un en desarrollo. Se comparten guras, y t ecnicas para lograr ciertos efectos con las herramientas que usamos. Tambi en se ha usado para destilar memorias dando lugar a publicaciones (que por fuerza son mucho menos extensas). Estas t ecnicas, en mayor o menor grado, se usaron en el desarrollo de varias memorias y tesis [1, 3, 6, 10, 17]. Donde estas dieron lugar a publicaciones [2, 16, 19, 18] se usaron los mismos repositorios de las tesis (y partes del texto de las mismas) para componer los trabajos del caso. Hay memorias y tesis adicionales en progreso, as como

publicaciones enviadas para revisi on que no se citar an ac a.

Otros usos

De forma similar a lo descrito se han manejado apuntes de clases, con el profesor administrando el repositorio central (en este caso es p ublico), e integrando sugerencias de parte de los estudiantes y ayudantes del ramo. Versiones del apunte se publican peri odicamente en el sitio del ramo. Muchos de los aportes resultan ser comentarios en clase o en el foro del ramo consultando sobre inconsistencias. Algunos estudiantes han le do los apuntes y han hecho cr ticas detalladas sobre el texto. Hasta ahora esta t ecnica se ha usado u nicamente en ramos iniciales de pregrado (segundo a no), con lo que no cabe esperar aportes del curso diA rectamente en L TEX, y a un menos uso del sistema de control de versiones. Es intenci on del primer autor extender esta forma de trabajo a otros ramos, e incluir a otros colegas en el esfuerzo.

Conclusiones

Las herramientas asociadas tradicionalmente al desarrollo de software pueden usarse con mucho provecho en otras areas. Esta forma de trabajar ha demostrado ser exible, y aplicable al desarrollo de una variedad de textos.

5.1

Tareas en curso o pendientes

El trabajo descrito ha agudizado ciertas necesidades en cuya soluci on estamos trabajando. En particular, interesan: Denir formatos est andar para memorias y tesis, ajustados a las normas internas de la UTFSM.
A Como parte de la ventaja de L TEX es que el mismo texto puede reusarse en diversos formatos, ser a u til construir textos ejemplo. En particular, hay formatos que permiten usar el mismo fuente para textos formales (tesis o memoria, art culo, reporte) como para presentaciones.

En la UTFSM hay formatos bien denidos para memorias y tesis. Tradicionalmente cada quien ha implementado (con mayor o menor exito) el formato en su trabajo. Ser a deseable contar con un estilo que maneje autom aticamente las diversas particularidades del formato exigido (m argenes, formato de p agina, p agina de t tulo). Parte de esto se ha logrado, en que esto es de lo que se ha ido copiando y adaptando entre los estudiantes. Pero ser a mejor hacer esto en forma formal. De la misma forma, con el n de mejorar el reuso de los textos, es deseable contar con estilos para reportes t ecnicos del Departamento de Inform atica. Para reuso en publicaciones formales, como los formatos solicitados son muy variados, hay que adherir a lo que la publicaci on sugiera. Por suerte la mayor a de las conferencias y revistas tienen formatos predenidos. Un area de inter es particular es el desarrollo de tareas y dem as evaluaciones de ramos, manteni endolas bajo control de versiones junto con sus soluciones y pautas de correcci on. Esto introduce problemas nuevos, particularmente en lo que respecta a la seguridad de los repositorios. La soluci on actual es que s olo el profesor mantiene un repositorio personal con las evaluaciones, y estas se discuten s olo en reuniones cara a cara. Usando correo electr onico cifrado [8, 11], acceso seguro a un servidor central [4, 14] y control de acceso en el repositorio la mayor parte de estos problemas pueden resolverse sin grandes dicultades t ecnicas. Sin embargo, ser a interesante poder integrar las evaluaciones y sus soluciones (una vez dada la prueba o transcurridos los plazos m aximos de entrega para tareas y similares) en un repositorio maestro de la asignatura. A un no est a completamente claro c omo hacerlo.

Agradecimientos
Varias de las memorias y tesis que dieron lugar al presente trabajo fueron desarrolladas en el ambito del proyecto ALMA-CONICYT 31060008, cuyo nanciamiento fue crucial en este trabajo. Agradecemos adem as a quienes ayudaron a renar nuestro actual ujo de trabajo desarrollando memorias y tesis con el primer autor, dictando ramos en conjunto, o participando en diversos proyectos como parte de CSRG de la UTFSM, en particular quienes desarrollan proyectos como parte de PIE>A. Parte de este trabajo fueron apoyadas por ALMA-CONICYT 31060008 y 31080031, y el Centro Cient co-Tecnol ogico de Valpara so mediante el proyecto FB0821. Agradecemos el apoyo del Departamento de Inform atica de UTFSM y la Escuela de Ingenier a Inform atica de PUCV donde se han

Ser a u til condensar las experiencias en forma de tutoriales o gu as para los participantes. Esto requiere eso s complementar lo hecho con profesores adicionales. Contamos con una selecci on de textos y otras referencias para las herramientas usadas. Esta debiera organizarse y completarse. pensando espec camente en esta aplicaci on.

llevado a cabo las memorias y tesis que dieron base a este trabajo.

Referencias
[1] Mauricio A. Araya. Verifying real-time periodic properties on the ALMA Common Software time system. Masters thesis, Departamento de Inform atica, Universidad T ecnica Federico Santa Mar a, May 2008. [2] Mauricio A. Araya, Rodrigo J. Tobar, Jorge A. Avarias, and Horst H. von Brand. Towards a distributed control framework with real-time support. In Gabriela P. Henning, Maria Rosa Galli, and Silvio Gonnet, editors, XXXVI Conferencia Latinoamericana de Inform atica CDROM. CLEI, 2008. [3] Jorge Alejandro Avarias Alfaro. Data Distribution Service as an alternative to the CORBA Notication Service for ALMA Common Software. Memoria para optar al T tulo de Ingeniero Civil Inform atico, Universidad T ecnica Federico Santa Mar a, December 2008. [4] Daniel J. Barret, Richard E. Silverman, and Robert G. Byrnes. SSH, the Secure Shell: The Denitive Guide. OReilly Media, 2005. [5] Scott Chacon. Pro Git. Apress, 2009. [6] Chihau Andr es Chau Chan. An alisis de la plataforma Android de Google para el desarrollo de aplicaciones m oviles. Memoria para optar al T tulo de Ingeniero Civil Inform atico, Ponticia Universidad Cat olica de Valpara so, December 2009. [7] Matthew B. Doar. Practical Development Environments. OReilly Media, 2005. [8] Simson Garnkel. PGP: Pretty Good Privacy. OReilly Media, 1994.
A [9] Leslie Lamport. L TEX: A Document Preparation System. Addison-Wesley, second edition, 1994.

[10] Daniela Andrea Le on Padilla. Estudio del comportamiento de mecanismos de control de congesti on TCP sobre redes inal ambricas. Memoria para optar al T tulo de Ingeniero Civil Inform atico, Universidad T ecnica Federico Santa Mar a, November 2008. [11] Michael W. Lucas. PGP & GPG: Email for the Practical Paranoid. No Starch Press, 2006. [12] Mark Lutz. Programming Python. OReilly, third edition, 2006. [13] Ben Lynn. Git Magic. CreateSpace, 2010. [14] Michael Stahnke. Pro OpenSSH. Apress, 2005. [15] Travis Swicegood. Pragmatic Version Control Using git. Pragmatic Bookshelf, 2008. [16] Rodrigo Tobar, Joao L opez, Mauricio A. Araya, and Horst H. von Brand. CSAT deployment and nal status. In Encuentro Chileno de Computaci on, page 40, November 2008. [17] Rodrigo J. Tobar. A real-time time service for the ALMA Common Software. Masters thesis, Departamento de Inform atica, Universidad T ecnica Federico Santa Mar a, October 2009. [18] Rodrigo J. Tobar, Mauricio A. Araya, Horst H. von Brand, and Thomas Juerges. Adding support to ACS for Real-Time operations through the usage of a Posix-compliant RTOS. In Astronomical Data Analysis Software & Systems (ADASS), October 2009. [19] Rodrigo J. Tobar, Horst H. von Brand, Mauricio A. Araya, and Joao S. L opez. An amateur telescope control system: Towards a generic telescope control model. In Alan Bridger and Nicole M. Radziwill, editors, Advanced Software and Control for Astronomy II, number 1. SPIE, 2008. [20] Larry Wall, Tom Christiansen, and Jon Orwant. Programming Perl. OReilly, third edition, 2000.

También podría gustarte