Visualizing Project Evolution through Abstract Syntax Tree Analysis

Abstract

What is a developer's contribution to a repository? By only counting commits and number of lines changed, existing tools that visualize source code repositories (such as GitHub's graphs) fall short on showing the effective contributions made by each developer. When many commits are viewed as a group, the details are lost. Commit information can be misleading since lines of code give no indication of what was actually being worked on without careful examination of the changed code. Providing a semantic view of this information could provide deeper insights into how software projects evolve since changes to design and features are not clearly visible from line changes alone. We present TypeV: a method for visualizing Java source code repositories. Instead of counting line changes in a commit we extract detailed type information over time by using the differences between abstract syntax trees (ASTs). We are then able to track the additions and deletions of declarations and invocations for each type. Furthermore, we can track each author's type usage over time. Using TypeV, we examine specific cases in well-known repositories where our tool reveals interesting and useful information. We then compare type coverage information from the AST compared to file coverage to determine if unique information is provided by type information.

DOI: 10.1109/VISSOFT.2016.6

12 Figures and Tables

Cite this paper

@article{Feist2016VisualizingPE, title={Visualizing Project Evolution through Abstract Syntax Tree Analysis}, author={Michael D. Feist and Eddie Antonio Santos and Ian Watts and Abram Hindle}, journal={2016 IEEE Working Conference on Software Visualization (VISSOFT)}, year={2016}, pages={11-20} }