Tempura: Temporal Dimensions for IDEs

Author(s): Yun Young Lee, Darko Marinov, Ralph E. Johnson
Venue: International Conference on Software Engineering
Date: 2015

Type of Experiement: Controlled Experiment
Class/Experience Level: Professional
Data Collection Method: Observation, Project Artifact(s)


Modern IDEs make software engineering tasks easier for the developer such as code completion and navigation. However, this type of support can only operate on one revision of code at a time and leaves handling of all code history to external tools or plugins. This study attempts to propose a novel approach to IDEs by adding a “temporal dimension” to IDEs by enabling code completion and navigation to operate on more than one revision of code at a time. To perform the experiment, the researchers implemented a prototype called Tempura, which uses information from code history, and evaluated it’s usability through a controlled user study. The evaluation of the tool focuses on answering two primary research questions: “How efficiently can code history information be collected from a project’s repository? How scalable can the computation be for large real-world projects?”, and “Does the history information that Tempura provides through code completion and navigation features help developers to learn code history more accurately and efficiently?”

Essentially, Tempura creates this “temporal dimension” by "extracting API information from any project’s Git repository and presenting the information through code completion and navigation, even for classes, methods, or fields that no longer exist in the current revision.” To answer the first research question, the researchers used the Tempura tool to "compute historical information from three projects, each with more than 75,000 files and about 20,000 revisions.” The results were promising, “Tempura completed a one-time-only indexing for each project in 5-12 minutes” and in addition had response times of less than three seconds on types with more than 600 revisions. The second question was answered by conducting between-group user study that compared a tool called EGit and Tempura. “The participants not only learned about code history more quickly and efficiently with Tempura, but also 36% more accurately."