visualización de la colaboración en la evolución de un

10
Visualización de la colaboración en la evolución de un ítem de software y la estructura de las baselines * Roberto Therón* Antonio González** Francisco J. García*** Departamento de Informática y Automática Universidad de Salamanca Facultad de Ciencias. Plaza de los Caídos, s/n 37008 Salamanca, España [email protected]* [email protected]** [email protected]*** Resumen En este trabajo proponemos una visualiza- ción para el historial de la evolución de un ítem de software y la estructura de las base- lines, utilizando como fuente de información los repositorios de datos de las herramien- tas de Administración de la Configuración de Software (SCM). La propuesta se apoya en múltiples técnicas de interacción y visualiza- ción para proporcionar vistas enlazadas entre la representación del árbol de revisiones y la estructura de las baselines, mantener ubicado al usuario en el contexto mediante una línea temporal, ver y comparar las estructuras de las baselines y presentar las relaciones de mo- dificación sobre los elementos de la estructura de una baseline. 1. Introducción El desarrollo de un producto de software es un complejo proceso que requiere una estrecha co- laboración, comunicación y coordinación entre diseñadores, desarrolladores y administradores de equipos de trabajo distribuidos geográfica- mente. Por lo que es de gran importancia con- tar con información precisa sobre las tareas * Queremos agradecer la ayuda del Ministerio de Educación y Ciencia, a través del Programa Nacional de Tecnologías de Servicios de la Sociedad de la Info- mación (proyecto ref. TSI2005-00960 y del Programa Nacional de Tecnologías Informáticas (proyecto ref. TIN2006-06313) que ejecuta cada participante y la colabora- ción que tiene lugar entre ellos. El proceso de administración de la confi- guración del software y la documentación es definido por el estándar IEEE 828-1990[1] co- mo “un sistema que proporciona los méto- dos y herramientas para identificar y contro- lar el software durante su desarrollo y uso. En donde las actividades de este proceso incluyen la identificación y establecimiento de puntos de referencia; la revisión, aprobación y con- trol de cambios; el seguimiento y reporte de esos cambios; las auditorías y revisiones de la evolución de un producto software”. De aquí la importancia que tienen los repositorios de las herramientas SCM 1 para la extracción de información que permita identificar el estable- cimiento de baselines y revisiones, fechas y ho- ras, para el seguimiento de los cambios que sufre un sistema o ítem de software. Sin em- bargo, a pesar de la riqueza de esta fuente de datos las herramientas SCM todavía no in- corporan mecanismos para representar como ocurren las contribuciones y la colaboración entre los miembros de un proyecto de software. Este trabajo se enfoca en la visualización de la evolución de los ítems de software, la cola- boración que tiene lugar durante su desarrollo y la representación de las estructuras de las baselines, haciendo uso de los repositorios de las herramientas SCM. Para ello nos apoya- mos en el uso de múltiples técnicas de inte- 1 Software Configuration Management tools

Upload: others

Post on 22-Apr-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Visualización de la colaboración en la evolución de un

Visualización de la colaboración en la evolución de un ítem desoftware y la estructura de las baselines*

Roberto Therón* Antonio González** Francisco J. García***Departamento de Informática y Automática

Universidad de Salamanca

Facultad de Ciencias. Plaza de los Caídos, s/n

37008 Salamanca, España

[email protected]* [email protected]** [email protected]***

Resumen

En este trabajo proponemos una visualiza-ción para el historial de la evolución de unítem de software y la estructura de las base-lines, utilizando como fuente de informaciónlos repositorios de datos de las herramien-tas de Administración de la Configuración deSoftware (SCM). La propuesta se apoya enmúltiples técnicas de interacción y visualiza-ción para proporcionar vistas enlazadas entrela representación del árbol de revisiones y laestructura de las baselines, mantener ubicadoal usuario en el contexto mediante una líneatemporal, ver y comparar las estructuras delas baselines y presentar las relaciones de mo-dificación sobre los elementos de la estructurade una baseline.

1. Introducción

El desarrollo de un producto de software es uncomplejo proceso que requiere una estrecha co-laboración, comunicación y coordinación entrediseñadores, desarrolladores y administradoresde equipos de trabajo distribuidos geográfica-mente. Por lo que es de gran importancia con-tar con información precisa sobre las tareas

*Queremos agradecer la ayuda del Ministerio deEducación y Ciencia, a través del Programa Nacionalde Tecnologías de Servicios de la Sociedad de la Info-mación (proyecto ref. TSI2005-00960 y del ProgramaNacional de Tecnologías Informáticas (proyecto ref.TIN2006-06313)

que ejecuta cada participante y la colabora-ción que tiene lugar entre ellos.

El proceso de administración de la confi-guración del software y la documentación esdefinido por el estándar IEEE 828-1990[1] co-mo “un sistema que proporciona los méto-dos y herramientas para identificar y contro-lar el software durante su desarrollo y uso. Endonde las actividades de este proceso incluyenla identificación y establecimiento de puntosde referencia; la revisión, aprobación y con-trol de cambios; el seguimiento y reporte deesos cambios; las auditorías y revisiones de laevolución de un producto software”. De aquíla importancia que tienen los repositorios delas herramientas SCM1 para la extracción deinformación que permita identificar el estable-cimiento de baselines y revisiones, fechas y ho-ras, para el seguimiento de los cambios quesufre un sistema o ítem de software. Sin em-bargo, a pesar de la riqueza de esta fuente dedatos las herramientas SCM todavía no in-corporan mecanismos para representar comoocurren las contribuciones y la colaboraciónentre los miembros de un proyecto de software.

Este trabajo se enfoca en la visualización dela evolución de los ítems de software, la cola-boración que tiene lugar durante su desarrolloy la representación de las estructuras de lasbaselines, haciendo uso de los repositorios delas herramientas SCM. Para ello nos apoya-mos en el uso de múltiples técnicas de inte-

1Software Configuration Management tools

Page 2: Visualización de la colaboración en la evolución de un

racción y representación de información; vis-tas enlazadas, utilización del zoom, contextosensible al ratón, animaciones, uso de estruc-turas matriciales para mostrar la colaboraciónentre desarrolladores, una línea temporal, unaestructura radial, y una representación polifo-cal, entre otras más.

En la sección 2 de este documento realiza-mos una revisión bibliográfica sobre la visuali-zación de la evolución de versiones de software,en la sección 3 presentamos nuestra propues-ta de visualización, en la sección 4 efectuamosuna comparación entre nuestro diseño y otraspropuestas. Finalmente, en la sección 5 hace-mos un resumen del trabajo y discutimos lasprincipales conclusiones.

2. Trabajos relacionados

Una considerable cantidad de trabajos han si-do dedicados al estudio de la visualización desoftware e información. Gracanin [2] sostieneque la visualización de software es “una dis-ciplina que hace uso de formas imaginativasque proporcionan el detalle y entendimientosuficiente de un sistema reduciendo la comple-jidad aparente de éste”.

Durante el diseño de la representación sedeben identificar las tareas que serán realiza-das por la visualización, el alcance y contenidode ésta, quienes serán la audiencia, qué datosserán representados y cómo, qué medios se uti-lizaran para la representación y las técnicas devisualización e interacción.

En este artículo nos concentramos en laevolución de ítems individuales y la colabo-ración durante su desarrollo, y dedicamos estasección a revisar algunas ideas útiles que hansido aplicadas a la representación de reposito-rios de las herramientas SCM.

Xie et al. [3] lista una serie de preguntaspara guiar el diseño de visualizaciones de losrepositorios de las herramientas SCM; paranuestros propósitos es relevante determinar losautores que trabajan en el mismo ítem, cuan-do fue realizada una modificación y cuántosprogramadores han trabajado en una versióndel sistema. De forma adicional, Eick et al.[4] manifiesta de forma acertada que un pro-

blema fundamental en la visualización de loscambios del software es la selección de repre-sentaciones o metáforas visuales efectivas, re-visarlas en detalle y combinarlas para obtenerdiferentes perspectivas de los datos, por ejem-plo; por desarrollador, por estadísticas sobrelos cambios, tamaño de los cambios y activi-dades efectuadas por los desarrolladores, entreotras más.

Voinea y Telea [5] respaldan la idea de quelos repositorios de administración de la confi-guración son de gran valor para contabilizarinformación del proyecto, realizar auditorías yentender la evolución de los proyectos de soft-ware. Nosotros apoyamos ese criterio y consi-deramos que el diseño efectivo de los reposito-rios puede proporcionar información acerca deldesarrollo que no es posible obtener de otrasfuentes y que mediante una visualización ade-cuada es posible obtener un gran número dedetalles sobre lo que sucede durante el proyec-to. Los mismos autores proponen dos visua-lizaciones en [6] y [7]. Dichas propuestas de-muestran que el uso adecuado de visualiza-ciones en 2D en conjunto con colores y tex-turas contribuyen al desarrollo de poderosassoluciones de visualización multidimensional.

Gall et. al. [8] desarrollaron un enfoque in-teresante que utiliza representaciones en 3Dcon codificación de colores aplicada a los cam-bios en la estructura y atributos del ítem. Losatributos bajo consideración son el número derevisión, tamaño del ítem y complejidad. Esteenfoque visualiza las versiones del sistema co-mo una sucesión de representaciones en 2D, endonde cada una corresponde a una versión yutiliza colores diferentes por atributo.

En lo que respecta a la representación de es-pacios temporales, Morris et al. [9] visualizanjerarquías temporales de documentos en unalínea de tiempo de acuerdo con la estructurajerárquica producida en la etapa de clustering.Por otro lado, Card et al. [10] desarrollaronuna visualización para explorar jerarquías quecambian con el tiempo, soportando búsquedas,navegación a través de la estructura y filtradode resultados mediante un time slider. Therón[11] propone un metáfora del tipo tree-ringpara representar estructuras basadas en jer-

Page 3: Visualización de la colaboración en la evolución de un

arquías temporales con el fin de facilitar lanavegación y descubrir relaciones en la historiade los lenguajes de programación. Mientras,Kumar y Garland [12] proponen una soluciónpara la visualización de grafos que varían en eltiempo, permitiendo que los usuarios interac-túen con la representación y puedan deslizarsea diferentes periodos para explorar un grafo odescubrir tendencias.

Figura 1: Visualización del historial de versionesde software utilizando 3D.

La propuesta de Lanza en [13] visualiza laevolución de atributos de software medianteuna matriz de evolución con cajas rectangu-lares de tamaño variable en cada celda; elancho de las cajas representan el número demétodos y el alto el número de variables en laclase. Esta representación es poderosa y puedeser mejorada tomando prestadas algunas ideassobre colores y texturas de [8].

En este punto, es relevante hacer referenciaal trabajo desarrollado por Koike en [14, 15]y que describe VRCS, una representación quemuestra la evolución de los ítems de softwarecon base en la información de los reposito-rios de información de las herramientas SCM.En esta visualización cada ítem de softwarees representado utilizando 2D y el repositorioen general mediante 3D, como se ilustra en lafigura 1. Esta visualización será analizada másadelante, en la presentación del caso de estu-dio.

Por otro lado, Perforce(http://www.perforce.com/) es una he-rramienta SCM que incluye un módulo devisualización (ver figura 2), cuyas representa-

Figura 2: Visualización realizada por Perforce.

ciones son en 2D y utiliza grafos para mostrarlas relaciones entre las baselines, ramas yrevisiones. Esta representación ofrece unavista del tipo overview + detail en lugarde una vista del tipo foco + contexto [29]que hubiera resultado en un enfoque másconveniente. En la sección del caso de estudiodiscutiremos con más detalle esta propuesta.Los repositorios de las herramientas SCMson estructuras jerárquicas de directorios yarchivos o sus correspondientes representa-ciones almacenadas en una base de datos.Existe una importante cantidad de trabajosque se enfocan en la visualización de estruc-turas jerárquicas. Una de las representacionesmás conocidas es el treemap [16], del cualexisten diversas variantes [17, 18, 26, 20].

Otras representaciones jerárquicas bastanteconocidas son la hiperbólica [21], Cone Trees[22] (en [23] se hace un análisis de rendimientode ésta), así como las circulares y semicircu-lares [24, 25, 26, 27, 28]

Las visualizaciones jerárquicas son de espe-cial relevancia en lo que respecta a la visua-lización de la estructura de las baselines, ennuestro caso hemos seleccionado el uso de ungrafo radial para su representación.

Page 4: Visualización de la colaboración en la evolución de un

Figura 3: Visualización de la colaboración en el desarrollo de ítems de software y la estructura de baselines.

3. Evolución ítems de software y es-tructura de las baselines

En esta sección presentamos nuestra propu-esta para representar la evolución de un ítemde software y la estructura de las baselines,utilizando como fuente de información los re-positorios de las herramientas SCM. Para ellonos apoyamos en dos representaciones, el Re-vision Tree y el Baseline Navigator, así comoen múltiples técnicas de interacción. La figura3 muestra la vista principal de la visualiza-ción, en ella se puede distinguir la estructurade una baseline y la colaboración en la modi-ficación de cada elemento mediante el uso deanillos codificados con colores, donde cada co-lor se corresponde con un desarrollador. Cuan-do el ratón pasa por encima de los anillos sepresenta en una etiqueta el nombre del pro-gramador que hizo el cambio correspondiente.Un trabajo importante que hace un uso similarde anillos de colores es descrito en [30]. Adi-cionalmente, la representación cambia el colorde la letra de un elemento cuando este es se-leccionado, como se puede notar en el caso del

elemento distribución.

Antes de continuar, es importante resaltarque una baseline es una referencia al estatusde un ítem particular en un momento deter-minado, por lo que su estructura correspondea la estructura del proyecto en un determinadoinstante.Finalmente, la estructura de las base-lines no es común a todos los ítems de softwareen el mismo número de baseline.

El Revision Tree visualiza las contribucionesde los programadores en diferentes revisiones,baselines y largos periodos de tiempo, en elmismo ítem, prestando especial consideraciónal factor temporal. La visualización de laevolución de un ítem presenta múltiples re-tos; la representación de grandes árboles de re-visión donde las baselines tienen muchas ramasy cada rama un gran número de revisiones;la navegación a través del árbol de revisionesofreciendo una vista del tipo foco + contexto,soporte a la interacción para permitir la re-visión de más de una baseline a la vez, mostrarla colaboración de los desarrolladores en ca-da baseline, y relacionar la información con la

Page 5: Visualización de la colaboración en la evolución de un

Figura 4: Visualización de la colaboración en el desarrollo de ítems de software.

línea de tiempo.El cuadro 1 y la figura 4 muestran y des-

criben los elementos gráficos utilizados en elRevision Tree.

El Revision Tree utiliza columnas de anchovariable para acomodar las revisiones en cadabaseline, y filas con distribución uniforme paralos programadores, además permite expanderfilas y columnas con un enfoque polifocal paraapreciar la relación jerárquica entre elementos.La primera fila corresponde a la línea temporalcuyos componentes son la numeración de lasbaselines, fecha y hora de la creación de unarevisión o rama y la representación del áreacorrespondiente a un día.

Aunque de momento no ha sido implemen-tado, la propuesta soporta interacción adi-cional para proporcionar detalles en árboles derevisión complejos; el usuario puede seleccio-nar la rama principal o una rama regular y seresalta el camino de dicha rama con todas susasociaciones y también es posible seleccionarun nodo para resaltar sus conexiones. Nuestrapropuesta es que el usuario pueda obtener lainformación que requiere mediante el uso deinteracción.

Con el Revision Tree es posible obtenerrápidamente datos de relevancia, como darseguimiento a las contribuciones al desarro-llo de un ítem de software, determinar quiénes

han estado involucrados en el proceso y pro-porcionar información de utilidad a los admi-nistradores de proyectos; si alguien está de ba-ja es posible descubrir si las últimas revisionesde ese programador fueron fusionadas. Tam-bién es posible obtener información sobre losperiodos con más actividad en el ítem y re-conocer cuando ha entrado en una fase de es-tabilidad porque no sufre cambios frecuentes.En realidad, es posible obtener más informa-ción revisando cuidadosamente cada detalle dela visualización y especialmente si se utiliza unconjunto de datos real de gran tamaño.

Mediante la interacción del Revision Tree yel Baseline Navigator es posible examinar laestructura de una baseline, comparar la estruc-tura de dos baselines y determinar cuáles ele-mentos han sido modificados recientemente.

Al comparar la estructura de dos baselines,la sección común de éstas aparece resaltadapor dos aristas, la parte de la sección quecorresponde a la adición de elementos utilizaaristas de color rojo y la sección que ha sidoeliminada aristas de color verde. La figura 5 esun ejemplo de la comparación de dos baselines.

Por otro lado, la figura 6 hace referencia ala antigüedad de las modificaciones de los no-dos utilizando una escala de tonos verdes, endonde el tono más claro hacer referencia a lamodificación más reciente.

Page 6: Visualización de la colaboración en la evolución de un

ElementoVisual

Descripción

Desarrolladores Nombre desarrollador.Baseline Número baseline.Fecha Fecha creación ramas, baselines

o revisiones.Día Línea azul con flechas en ex-

tremos; día de actividad encreación de ramas, baselines yrevisiones.

Hora Hora creación nueva rama o re-visión.

Creación ra-ma principal

Óvalo color fucsia.

Nueva rama Óvalo alargado color azul.Rama princi-pal

Línea color naranja.

Arcos azules Conecta revisiones de ramas enel mismo workspace de la ramaprincipal.

Revisiones ra-ma principal

Nodos color amarillo.

Rama Líneas color azul conectan ele-mentos de ramas y éstas con laprincipal.

Revisión Nodos color azul.Fusión Flechas entrantes en rama prin-

cipal.

Cuadro 1: Variables representadas por el Re-vision Tree.

El Baseline Navigator, soporta técnicas deinteracción y animación que permiten ubicarun nodo seleccionado en el centro de la visuali-zación, hacer zoom en cualquier punto de la es-tructura y arrastrar elementos. Finalmente, esimportante mencionar que su desarrollo se rea-lizó con Prefuse, al cual se le realizaron cam-bios en algunas clases y adicionaron otras paralograr la representación deseada.

4. Caso de estudio: Ventajas frentea los árboles de revisión en 3D

El desarrollo de representaciones visuales en3D ha sido muy popular en los últimos años.Nosotros utilizamos una representación en 2Ddel Revision Tree para visualizar árboles derevisión complejos y comparamos los resulta-dos con los producidos por la herramienta devisualización en 3D de PlasticSCM, produci-da por Códice Software, VRCS y Perforce. Enesta comparación no consideramos el BaselineNavigator debido a que las otras propuestas no

Figura 5: Comparación estructura de baselines.

Figura 6: Antigüedad modificaciones de nodos.

visualizan la estructura de las baselines.La figura 7 muestra el árbol de evolución

en 3D para el mismo ejemplo de la figura 4.Dicha propuesta parece atractiva, pero es unarepresentación estática: el usuario solo puedecambiar el ángulo de visión o que tan lejosquiere ver la visualización (i.e, es posible girarel árbol y hacer zoom para obtener un acer-camiento de nodo o área). Además, al hacerzoom el tamaño del área aumenta, pero losnodos del frente esconden los nodos que se en-cuentra en la parte de atrás, ocurriendo ocul-tamiento u oclusión. Adicionalmente, es difí-cil manipular el árbol y se pierde el contextopor la carencia de una vista del tipo foco +contexto; por lo que el usuario se desorienta.Finalmente, cuando el usuario hace zoom-outpuede ver una figura en 3D que no tiene unsignificado especial.

Aunque el Revision Tree se aprecia mejoren pantallas de gran tamaño, aún es espacios

Page 7: Visualización de la colaboración en la evolución de un

Figura 7: Ejemplo del árbol producido por PlasticSCM y un zoom en una área seleccionada.

reducidos ayuda a obtener una idea generalsobre la evolución de un ítem. Lo anterior seilustra en la figura 8, que expande en un 80%del área de visualización la fila correspondientea Borja.

Hasta este punto, el trabajo realizado porWare [31] ha sido de gran ayuda: en él se ana-liza el uso de 3D en la visualización de in-formación y propone el uso de una actitudde 2 1/2D al diseñar representaciones; sugie-re el uso consciente de visualizaciones en 3Den combinación con 2D para producir mejoressoluciones.

Con respecto a VRCS, figura 1, nuestraprincipal preocupación es la ausencia de unavista del tipo foco + contexto, la navegacióna través de la estructura del árbol, posiblesoclusiones y el comportamiento de ésta al re-presentar estructuras complejas que deman-den procesamiento y memoria de forma inten-siva. Como ya hemos discutido, la visualiza-ción de largas historias de revisiones para unítem utilizando un árbol de versiones en 3Dtiene algunas limitaciones. Por lo que la vi-

sualización de grandes repositorios contenien-do muchos ítems, con numerosas baselines yrevisiones podría resultar en una visualizaciónde difícil navegación y probablemente no pro-porcione rápidamente la información requeri-da por el usuario.

En el caso de la representación producidapor Perforce (figura 2), ofrece una vista deltipo overview + detail, por lo que se pierdegran cantidad de espacio utilizable; muestrainformación sobre las ramas y fusiones, y esposible obtener la fecha y hora de creación delas revisiones haciendo clic en los nodos y re-visando la información en el tab Details que seencuentra en el panel a la izquierda de la pan-talla. Sin embargo, la representación no pro-porciona información sobre los programadoresque están contribuyendo al desarrollo de unítem, por cuánto tiempo han estado trabajan-do en él o ver la línea temporal de un vistazo.Adicionalmente, esta visualización es estáticay no ofrece opciones de interacción.

Finalmente, en el cuadro 2 presentamos unacomparación entre los enfoques de representa-

Page 8: Visualización de la colaboración en la evolución de un

Figura 8: Revision Tree: Columna expandida tanto a lo ancho como a lo alto.

Preguntas Pl1 VR2 Pe3 RT4

¿Cuántos programadoresparticipan en desarrollo?

X X

¿Quiénes están con-tribuyendo en evolucióndel ítem?

X

¿Quién es el programadorcon más contribuciones?

X

¿Cuántas baselines con-stituyen la evolución?

X

¿Existen revisiones sinfusionar?

X X X

¿Cuánto ha durado el de-sarrollo del ítem?

X X

¿Cuál baseline tiene másramas y revisiones?

X X

¿Cuál rama tiene más re-visiones?

X X X X

¿En qué periodo no hayactividad?

X X

¿Existe algún periodo deestabilidad del ítem y depronto comenzó a teneractividad?

X

Cuadro 2: Comparación de representaciones delos árboles de revisión

ción analizados, utilizando como base una seriede preguntas.

5. Conclusiones

La representación propuesta visualiza el his-torial de evolución de un ítem de software y

1PlasticSCM2VRCS3Perforce4Revision Tree

la estructura de las baselines. En el caso delRevision Tree, este proporciona una vista deltipo foco + contexto, una estructura matricialy una línea de tiempo para guiar y posicionara los usuarios en el espacio temporal. Por otrolado el Baseline Navigator, representa la es-tructura de las baselines y ofrece informaciónsobre cuáles elementos han sido modificados deforma más reciente, quienes han realizado lasmodificaciones y permite comparar la estruc-tura de dos baselines. Adicionalmente, conside-ramos el uso de gran cantidad de técnicas deinteracción para hacer posible la integraciónde múltiples vistas y la navegación a través dela representación.

Con esta representación el usuario obtienerespuestas sobre lo que ha ocurrido en la evolu-ción de un ítem y la estructura de las baselines,con el beneficio de que el equipo de desarrollose mantiene al tanto de quienes han trabajadoen las diferentes revisiones y baselines.

Con el apoyo de las técnicas de interacción yla visibilidad permanente de la visualización,los usuarios pueden revisar información sobrelas revisiones, baselines y la estructura de lasbaselines; en un periodo corto de tiempo, sinque ocurra oclusión u ocultamiento de infor-mación.

Por otro lado, la línea de tiempo es una re-presentación clara que muestra el intervalo detiempo desde que un ítem fue creado, soportacomparaciones temporales y proporciona de-talles sobre la concurrencia de los desarrol-

Page 9: Visualización de la colaboración en la evolución de un

ladores. Además, de que la interactividad per-mite filtrar contenidos para enfocarse en una omúltiples áreas de interés; en síntesis la visua-lización en 2D ofrece una representación claray funcional.

Considerando lo anterior, esta propuestaproporciona suficiente evidencia para afirmarque la representación de la evolución y la cola-boración en el desarrollo de ítems de softwareutilizando una representación en 2D, apoyadaen el uso de múltiples posibilidades de intera-cción puede resultar en una poderosa soluciónpara visualizar datos multidimensionales.

Referencias

[1] H.R. Berlack and M.Updike-Rumley.IEEE standard for software configurationmanager plans, 1990.

[2] D. Gracanin, K. Matkovic, and M. El-toweissy Software visualization Innova-tions in Systems and Software Engineer-ing: A NASA Journal, vol. 1 (2005).

[3] Xinrong Xie, Denys Poshyvanyk, and An-drian Marcus. Visualization of cvs repos-itory information. In Proceedings of the13th Working Conference on Reverse En-gineering (WCRE 2006), Washington, DC,USA, 2006. IEEE Computer Society.

[4] Stephen G. Eick, Todd L. Graves, Alan F.Karr, Audris Mockus, and Paul Schuster.Visualizing software changes. IEEE Trans.Softw. Eng., 28(4), 2002.

[5] Lucian Voinea and Alexandru Telea. Anopen framework for cvs repository query-ing, analysis and visualization. In Pro-ceedings of the 2006 international work-shop on Mining software repositories, NewYork, NY, USA, 2006. ACM Press.

[6] Lucian Voinea and Alexandru Telea. Mul-tiscale and multivariate visualizations ofsoftware evolution. In SOFTVIS 2006. As-sociation for Computing Machinery Inc.,2006.

[7] Lucian Voinea and Alexandru Telea. Mi-ning software repositories with cvsgrab.

In Proceedings of the 2006 internationalworkshop on Mining software repositories,New York, NY, USA, 2006. ACM Press.

[8] Harald Gall, Mehdi Jazayeri, and ClaudioRiva. Visualizing software release histo-ries: The use of color and third dimension.In Proceedings of the IEEE Internation-al Conference on Software Maintenance,Washington, DC, USA, 1999. IEEE Com-puter Society.

[9] Morris, S.A., Yen, G., Wu, Z., Asnake, B.Time line visualization of research fronts.Journal of the American Society for Infor-mation Science and Technology, 54(2003).

[10] Card, S., Suh, B., Pendleton, B., Heer,J., Bodnar. J. TimeTree: Exploring TimeChanging Hierarchies. IEEE Symposiumon Visual Analytics Science and Technolo-gy, (2006).

[11] Roberto Theron. Hierarchical-temporalData Visualization using a Tree-ringMetaphor. Lecture Notes in Computer Sci-ence. Smart Graphics, vol. 4073, Springer-Verlag, Germany (2006).

[12] Kumar, G., Garland, M. Visual Explo-ration of Complex Time-Varying Graphs.IEEE Transactions on Visualization andComputer Graphics, Vol. 12, Num. 5(2006)

[13] Michele Lanza. The evolution matrix: re-covering software evolution using softwarevisualization techniques. In Proceedings ofthe 4th International Workshop on Princi-ples of Software Evolution, New York, NY,USA, 2001. ACM Press.

[14] Koike, H. The role of another spa-tial dimension in software visualization.In ACM Trans. on Information Systems,11(3), (1993).

[15] Hideki Koike and Hui-Chu Chu. Vrcs: In-tegrating version control and module man-agement using interactive 3d graphics. InProceedings of the 1997 IEEE Symposiumon Visual Languages (VL 97), Washington,DC, USA, 1997. IEEE Computer Society.

Page 10: Visualización de la colaboración en la evolución de un

[16] Brian Johnson and Ben Shneiderman.Tree-maps: a space-filling approach to thevisualization of hierarchical informationstructures. In Proceedings of the 2nd con-ference on Visualization 91, Los Alamitos,USA, 1991. IEEE Computer Society Press.

[17] Michael Balzer, Oliver Deussen, andClaus Lewerentz. Voronoi treemaps for thevisualization of software metrics. In Pro-ceedings of the 2005 ACM symposium onSoftware visualization , New York, USA,2005. ACM Press.

[18] Kai Wetzel. Pebbles: Using circu-lar treemaps to visualize disk usage.In http://www.SourceForge.net, Setiem-bre 2004.

[19] Michael Goodrich and Stephen KobourovRINGS: A Technique for Visualization ofLarge Hierarchies. In Graph Drawing2002, Springer-Verlag, April 2002.

[20] Ben Shneiderman. Treemaps for space-constrained visualization of hierarchies. InHuman-Computer Interaction Lab / Uni-versity of Maryland , 28 de abril 2006.Consultado el 15 de octubre del 2006.

[21] John Lamping, Ramana Rao, and PeterPirolli. A focus+context technique basedon hyperbolic geometry for visualizing largehierarchies. In Proceedings of the SIGCHIconference on Human factors in comput-ing systems, New York, USA, 1995. ACMPress/Addison-Wesley Publishing Co.

[22] George G. Robertson, Jock D. Mackinlay,and Stuart K. Card. Cone trees: animated3d visualizations of hierarchical informa-tion. In Proceedings of the SIGCHI confe-rence on Human factors in computing sys-tems, New York, NY, USA, 1991. ACMPress.

[23] Andy Cockburn and Bruce McKenzie. Anevaluation of cone trees. In Proceedings ofthe 2000 British Computer Society Con-ference on HumanComputer Interaction,2000.

[24] Keith Andrews and Helmut Heidegger.Information slices: Visualising and explor-ing large hierarchies using cascading, semi-circular discs. In Late Breaking Hot TopicPaper, IEEE Symposium on InformationVisualization (InfoVis 98), 1998.

[25] John Stasko and Eugene Zhang. Fo-cus+context display and navigation tech-niques for enhancing radial, space-fillinghierarchy visualizations. In Proceedingsof the IEEE Symposium on Informa-tion Vizualization 2000, Washington, DC,USA, 2000. IEEE Computer Society.

[26] Michael Goodrich and Stephen Kobourov,editors. RINGS: A Technique for Vi-sualization of Large Hierarchies. InGraph Drawing 2002, Springer-Verlag,April 2002.

[27] Andrew Pavlo, Christopher Homan, andJonathan Schull. A parent-centered radiallayout algorithm for interactive graph visu-alization and animation. In ArXiv Com-puter Science e-prints, jun 2006.

[28] Jing Yang, Matthew O. Ward, Elke A.Rundensteiner, and Anilkumar Patro. In-terring: a visual interface for navigatingand manipulating hierarchies. In Informa-tion Visualization, 2(1), 2003.

[29] Ramana Rao and Stuart K. Card. Thetable lens: merging graphical and symbolicrepresentations in an interactive focus +context visualization for tabular informa-tion. In Proceedings of the SIGCHI confe-rence on Human factors in computing sys-tems, New York, NY, USA, 1994. ACMPress.

[30] Chen Chaomei. Detecting and visualizingemerging trends and transient patterns inscientific literature. Journal of the Amer-ican Society for Information Science andTechnology, 1(57), 2006.

[31] Ware, C. Designing with a 2 1/2D Atti-tude. Information Design Journal, (2001)10(3) 255-262.