Multi-dimensional exploration of API usage

Status
Submitted to ICPC 2013

Authors
Coen De Roover and Ralf Lämmel and Ekaterina Pek

Abstract
This paper is concerned with understanding API (library, framework) usage in a systematic, explorative manner for the benefit of both API developers and API users. There exist complementary, less explorative methods such as code search engines or catalogues of API-usage scenarios based on data mining. In contrast, exploration is highly interactive and can be seen as an extension of what IDEs readily provide today, for example, when exploring the references to a declaration in a project. We designed an exploration approach with multiple dimensions: i) the hierarchical and nested scopes of projects and APIs; ii) key metrics of API usage (e.g., number of project classes extending API classes); iii) metadata for classifying APIs and slices thereof; iv) perspectives of exploration (project- versus API-centric). We provided the QUAATLAS corpus of Java projects which enhances the existing QUALITAS corpus to enable precise fact extraction and designated metadata for API-usage analysis. We implemented the exploration approach in an IDE-like tool EXAPUS for Java. EXAPUS and QUAATLAS are packaged as a web app that can be used by others for exploration experiments.

Keywords
API usage. Code exploration. Metadata. Program comprehension. Reverse engineering. QUAATLAS. QUALITAS. EXAPUS.

Bibtex entry
@misc{RooverLP13,
  author    = {Coen De Roover and Ralf L{\"a}mmel and Ekaterina Pek},
  title     = {Multi-dimensional exploration of API usage},
  note      = "10 pages. Online since March 2012."
}

Downloads and links