kirancodes.me
To Proof Maintenance & Beyond!

Tempura: Temporal Dimension for IDEs

Yun Young Lee, Darko Marinov, Ralph E. Johnson

Abstract

Modern integrated development environments (IDEs) make many software engineering tasks easier by providing automated programming support such as code completion and navigation. However, such support -- and therefore IDEs as awhole -- operate on one revision of the code at a time, and leave handling of code history to external tools or plugins, such asEGit for Eclipse. For example, when a method is removed froma class, developers can no longer find the method through code completion. This forces developers to manually switch across different revisions or resort to using external tools when they need to learn about previous code revisions.We propose a novel approach of adding a temporal dimensionto IDEs, enabling code completion and navigation to operate on multiple revisions of code at a time. We previously introduced the idea of temporal code completion and navigation,and presented a vision for how that idea may be realized.This paper realizes that vision by implementing and evaluatinga prototype tool called Tempura. We describe our algorithmfor processing and indexing historical code information from repositories for Tempura, and demonstrate Tempura's scalability with three large Eclipse projects. We also evaluate Tempura's usability through a controlled user study. The study participantslearned about the code history with more accuracy when usingTempura compared to EGit. Although the sample size was notlarge enough to provide strong statistical significance, the resultsshow a promising outlook for our approach.

BibTeX
@inproceedings{Lee-al:ICSE15,
  author    = {Yun Young Lee and
               Darko Marinov and
               Ralph E. Johnson},
  title     = {Tempura: Temporal Dimension for {IDEs}},
  booktitle = {ICSE (Part I)},
  pages     = {212--222},
  publisher = {{IEEE} Computer Society},
  year      = {2015},
}

Related papers