Proceedings of the 21st IEEE International Conference on Software Maintenance
(ICSM 2005, Budapest, September 25-30), Industrial and Tool volume, pages 89-92, 2005.
Dirk Beyer |
Abstract: Clustering layouts of software systems combine two important aspects: they reveal groups of related artifacts of the software system, and they produce a visualization of the results that is easy to understand. Co-change visualization is a lightweight method for computing clustering layouts of software systems for which the change history is available. This paper describes CCVisu, a tool that implements co-change visualization. It extracts the co-change graph from a version repository, and computes a layout, which positions the artifacts of the software system in a two- or three-dimensional space. Two artifacts are positioned closed together in the layout if they were often changed together. The tool is designed as a framework, easy to use, and easy to integrate into reengineering environments; several formats for data interchange are already implemented. The graph layout is currently provided in VRML and SVG format, in a standard text format, or directly drawn on the screen.
| U(p) | = | Σ{u, v} ∈ E w({u,v}) ||p(u) − p(v)|| |
| + | Σ{u, v} ∈ V(2) − degw(u) degw(v) ln||p(u) − p(v)||, |
The tool CCVisu works as follows: First, the CVS logging information is parsed and analyzed to extract the file revision information. The gained information is combined to construct the co-change graph. In the second stage, the tool computes the layout for the vertices of the co-change graph. This part is done by an implementation of an energy model and an algorithm that computes a layout that has minimal energy according to the energy model. At the end, the graph needs to be displayed on the screen, or written to a file.
Framework (white-box view). CCVisu is designed as a framework to make improvements and extensions easy, and to enable integration into other reengineering tools. Figure 2 shows the components of the tool. Basically, the input graph is read by a reader component, passed to the layout algorithm, and the output is written by a writer component. The reader interface has currently three implementations: for reading CVS log files, co-change graphs in RSF, and layouts in text format. The writer interface has five implementations so far: for writing co-change graphs in RSF format, layouts in text format, VRML and SVG layouts, and for writing the layout directly to the screen.
Example Visualization. We have applied the CCVisu method to the well-known software project Mozilla, in particular to the mailnews component without the base package. The co-change graph was extracted from a CVS log file with 270 000 lines (13 MB). In this example, the artifacts of the co-change graph are files. The graph consists of 1 804 artifact vertices, 9 950 vertices for change transactions, and 30 938 edges (changes). Figure 3 shows a screen-shot of the layout, which was computed within 5 min on a 1.7 GHz Pentium M machine, using only 100 iterations of the minimizer.
This document was translated from LATEX by HEVEA.