Apatite
Associative Search Tool for the Standard Java API



Latest Updates
12/1/2009 -- Actions now have more verbs! The index has been updated to include verbs that have been extracted from Javadoc method descriptions.

11/30/2009 -- The research behind Apatite's development earned an Honorable Mention in the Computing Research Association's 2010 Outstanding Undergraduate Research Award competition.

5/6/2009 -- Apatite won first place in the "Yahoo! Undergraduate Research Awards" competition at Carnegie Mellon University, May 6, 2009! See Dan Eisenberg with his winning poster.

What is Apatite?
Apatite, which stands for Associative Perusal of APIs That Identifies Targets Easily, is a tool for learning and exploring the Java 6 API. Apatite allows you to browse using associations, helping you find common classes and methods related to your query and aggregating information about various actions and properties.

Apatite is being developed as part of the Natural Programming Project in the Human-Computer Interaction Institute at Carnegie Mellon University.

(If you like Apatite, please check out our other documentation tool, called Jadeite!)

How to Use Apatite
[YouTube demonstration video coming soon!]

Apatite initially displays a single column containing the most popular items in five different categories: Packages, Classes, Methods, Actions, and Properties. The larger an item's font size is, the more commonly it is used.

Clicking on the [+] sign of a category will expand that section to show you a longer list. Clicking the [-] sign will bring you back to the original format.

The column can also be filtered by a set of keywords by typing them into the text box at the top. Font sizes are automatically adjusted to reflect the relative popularity of each item.

When you click on an item, a new column appears which only contains items that are associated with your selection. This column works in the same way as the first one, and items with larger font sizes are the most relevant.

As you traverse through the interface, new columns are organized to display the items it thinks are most relevant based on all of your previous selections.

Hovering over the ? button will display information about a particular item. Clicking on it opens up that item's full documentation in a new window.

Now, click here to try it!
Research
Daniel S. Eisenberg, Jeffrey Stylos, Brad A. Myers. "Apatite: A New Interface for Exploring APIs" (under review)

-----------------

Jeffrey Stylos, Daniel S. Eisenberg, Brad A. Myers. "Apatite: Associative Browsing of APIs." Submitted for publication.

Abstract:

Learning how to use new APIs can be difficult, in part because they are large and can be difficult to explore effectively using existing tools. Current object-oriented API documentation is usually organized by class, however programmers sometimes have a desired action or method in mind without knowing which class it might belong to. Programmers using existing API documentation often struggle to determine which of an API’s many classes and methods are the important ones to pay attention to, spending considerable time looking at obscure and irrelevant parts of APIs as a result. To help with these problems, we designed Apatite, an API browsing tool that lets programmers browse by association—investigating which packages, classes, methods go with others. Apatite also adds browsing by actions and properties, and uses statistics about the popularities of items and how often they are used together to provide weighted views of the most relevant items. We used an iterative design process to help tailor the tool to programmers’ needs, and a preliminary user study suggests that it offers advantages over existing tools.

Download:

Download pdf file(pdf)
Funding
This work was funded in part by a grant from SAP, in part by the National Science Foundation, under NSF grant CCF-0811610, and as part of the EUSES consortium (End Users Shaping Effective Software) under NSF grant ITR CCR-0324770. Any opinions, findings and conclusions or recommendations expressed in this paper are those of the authors and do not necessarily reflect those of the National Science Foundation.
People

Copyright © 2009 - Carnegie Mellon University

View Study Consent & Confidentiality Statement