Visualizing Project Evolution Through Abstract Syntax Tree Analysis

Gespeichert in:
Bibliographische Detailangaben
Titel: Visualizing Project Evolution Through Abstract Syntax Tree Analysis
Autoren: Feist, M.D., Santos, E.A., Watts, I., Hindle, Abram
Publikationsjahr: 2016
Bestand: University of Alberta: Era - Education and Research Archive
Schlagwörter: project evolution visualization, abstract syntax tree analysis, source code repositories, software projects, Java source code repositories, AST, TypeV, file coverage
Beschreibung: 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.
Publikationsart: other/unknown material
Sprache: English
DOI: 10.7939/r3-9tjm-6n75
Verfügbarkeit: https://era.library.ualberta.ca/items/753b9742-89fc-47ad-adef-f1f7c8388276
https://doi.org/10.7939/r3-9tjm-6n75
Rights: http://creativecommons.org/licenses/by/4.0/
Dokumentencode: edsbas.7B8F2B18
Datenbank: BASE
Beschreibung
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.7939/r3-9tjm-6n75