Project Mission
Managing large-scale software development and the understanding of large software systems present many research opportunities for information visualization. How can visualization help understand the relationship betweeen the communication between developers and the evolution of the source code? Furthermore, program comprehension is key to software maintenance. How can visualization help understand programs in a way not complicated by scale and contextuality?
Publications
StarGate: An Author-Centric Approach to Software Project Visualization
Technical Report
With the success of open source software projects, such as Apache and Mozilla, comes the opportunity to study the development process. In this paper, we present StarGate: a novel system for visualizing software projects. Whereas previous software project visualizations concentrated mainly on the source code changes, we literally place the developers in the center of our design. Developers are grouped visually into clusters corresponding to the areas of the file repository they work on the most. Connections are drawn between people who communicate via email. The changes to the repository are also displayed. With StarGate, it is easy to look beyond the source code and see trends in developer activity. The system can be used by anyone interested in the project, but it especially benefits project managers, project novices and software engineering researchers. The StarGate construct can be used to visualize not only software projects, but also music catalogues, online forums, and generally any complex system that features a network connected to a hierarchy.
Visualizing Social Interaction in Open Source Software Projects
Proceedings of the Asia-Pacific Symposium on Visualization
Open source software projects such as Apache and Mozilla present an opportunity for information visualization. Since these projects typically require collaboration between developers located far apart, the amount of electronic communication between them is large. Our goal is to apply information visualization techniques to assist software engineering scientists and project managers with analyzing the data. We present a visualization technique that provides an intuitive, time-series, interactive summary view of the the social groups that form, evolve and vanish during the entire lifetime of the project. This visualization helps software engineering researchers understand the organization, structure, and evolution of the communication and collaboration activities of a large, complex software project.
Visualizing the Eclipse Bug Data
We have created a simple treemap visualization of the Saarland University Eclipse bug data.
Stable, Flexible, Peephole Pretty-Printing
(submitted for publication)
Pretty-printers reduce the time programmers spend reading and understanding code. Pretty-printers found in modern development environments are hand crafted for responsiveness, an imperative property for interactive environments. However, these pretty-printers are language specific, tightly integrated into development environments, and have limited customizability. The literature describes how to generate pretty-printers that are customizable and reusable, and that are make efficient use of the presentation space. However, these pretty-printers only provide a global rendering capacity, i.e., they can only render entire files. This reduces responsiveness, preventing their use in modern development environments. We present a flexible, stable, peephole-efficient pretty-printing algorithm for generated pretty-printers. It is flexible in that it is capable of screen-optimized layouts, and also supports fisheye views. The algorithm is peephole-efficient, in that it performs work proportional to the size of the visible window and not the size of the entire file. Finally, the algorithm is stable, in that the rendered view is identical to that which would be produced by formatting the entire file.