Software evolution visualization is a promising technique for assessing the software development process. We study how complex correlations of software evolution attributes can be made using multivariate visualization techniques. We use a combination of color and textures to depict up to four artifact attributes at the same time in one view using the same spatial layout. Next, we describe an interactive navigation method of the attribute space that can extend the correlation capabilities to four or more attributes. A second issue we address is how to use clustering to reduce the complexity of evolution visualizations. We propose two new methods, isometric and isorelevance, to generate relevant abstraction levels in a hierarchical clustering of software evolution artifacts. The isometric method generates partitions with similar size elements. The isorelevance method generates partitions with elements of similar relevance. We propose a novel widget, the cluster map, which visualizes all partitions in a clustering and supports users when making size/relevance compromises when choosing a partition. We illustrate the applicability of the proposed techniques with two usage scenarios on the evolution of two real-life industry size projects.  Keywords: Evolution visualization, Software visualization, CVS Visualization of the evolution of software has recently emerged as a promising research direction. It uses software history recordings, e.g. from Software Configuration Management (SCM) systems, to build graphical representations of evolution of software artifacts. The main goal of such representations is to let users explore the software evolution and make visual correlations that lead to relevant findings regarding the process assessment or system understanding. In this paper, we build on previous research efforts in the field of software evolution visualization. We address two aspects of the problem of coping with the large software size to be visualized: many data elements (e.g. files and file versions in a repository) and many attributes per element (e.g. file size, type, and author, and commit time and comments). We address the first problem by using a multiscale (or hierarchical) software decomposition and a new visual widget for displaying this hierarchy and letting users choose from its relevant levels of detail. We address the second problem by a new visual approach that enables complex visual correlations over multivariate data. The structure of this paper is as follows. In Section 2, we review previous work on software evolution visualization. In Section 3, we outline the basic visualization model on which we build our multivariate and multiscale visualization techniques. Section 4 details our multivariate visualization approach. Section 5 describes the cluster map, a new widget for visualizing and choosing from several possible decompositions and several levels of detail thereof. Section 6 presents a number of usage scenarios that demonstrate the applicability of the proposed techniques. Section 7 concludes the paper with a summary of our contribution and outlines future research directions. The massive growth in popularity and use of SCM systems, influenced by open source projects like CVS and Subversion, opens new possibilities for project accounting, auditing and understanding. Efforts have been focused so far in two research directions: data mining and data visualization. Data mining research focuses on processing and extracting relevant information from the evolution data stored into SCM systems. However, most data mining approaches work by trying to fit an existing 'data model' on the raw information stored by the SCM systems, which is fine if the model is correct and exactly what the user wants to see, but may be of limited use otherwise. Many techniques have been proposed to offer access to higher level, aggregated information about the project evolution [Gall et al. 2003; Zimmermann et al. 2004] . Data visualization, the second research direction, takes the different path of making the large amount of evolution data effectively available to the user. Visualization techniques use a 'weak' data model, as the goal is to let the users discover patterns and trends by themselves, rather than hard-coding such patterns in the mining process. Many visualizations tools have been proposed to assist users in analyzing the software evolution data [Eick et al. 1992; Froehlich and Dourish 2004; Lanza 2001; Wu et al. 2004; Voinea et al. 2005; Pinzger et. al 2005; Voinea and Telea 2006] . These tools can provide insightful evolution overviews. However, they do not enable users to perform efficient correlations over the entire evolution that involve more than one or two software attributes at the same time. There are two exceptions. First is Augur [Froehlich and Dourish 2004] , a tool that divides the space *
Voinea and Telea REF introduced an interactive navigation method to surf file version evolution as well as two methods to cluster versions of the same file in an abstraction layer.
Multiscale and multivariate visualizations of software evolution
SoftVis '06
Computer Science