Visual assessment of software evolution
Configuration management tools have become well and widely accepted by the software industry. Software Configuration Management (SCM) systems hold minute information about the entire evolution of complex software systems and thus represent a good source for process accounting and auditing. However, it is still difficult to use the entire spectrum of information such tools maintain. Currently, significant effort is being done in the direction of mining this kind of software repositories for extracting data to support relevant assessments. In this article we propose a concerted set of visualization tools and techniques for the assessment of software evolution based on the information stored into SCM systems. Firstly, we introduce a generic way to obtain models of source code at different levels of detail and from different perspectives. Secondly, we propose a set of visual representations and techniques to efficiently and effectively depict the evolution of these code models. These techniques target specific questions and assessments, from the detailed code developer perspective to the overview required by system architects and project managers. We detail the concrete implementation of two such code models and corresponding visual representations. The file view describes code change at line level across multiple versions of a single file, or small number of files. The project view shows changes at file level across complete software projects. All our views share the same visual and interactive techniques, enabling users to easily switch among and correlate between them. We implement our visual techniques to quickly and compactly display and navigate the evolution of tens of thousands of artifacts on a single screen. We demonstrate our techniques with several use cases performed on real world, industry-size code bases and outline the concrete findings and ways our visualizations helped in understanding various types of code changes. (c) 2007 Published by Elsevier B.V.
software evolution scm data mining software visualization