Free HTML5 by November 3, 2014

On the Extraction of Cookbooks for APIs from the Crowd Knowledge

Developers of reusable software elements, such as libraries, usually have the responsibility to provide comprehensive and high quality documentation to enable effective software reuse. The effective reuse of libraries depends upon the quality of the API (Application Program Interface) documentation.

Well established libraries typically have comprehensive API documentation, for example in Javadocs. However, they typically lack examples and explanations, which makes the effective reuse of the library difficult. (SO) is a Question and Answer service directed to issues related to software development.

On SO, developers post questions related to a programming topic and other members of the SO community can provide answers to help them solving their problems. Despite the increasing adoption of SO, the information related to a particular topic is spread across the website. Thus, SO still lacks organization of its crowd knowledge.

In this paper, we present an automatic approach that organizes the information available on SO in order to build cookbooks (recipe-oriented books) for APIs. The cookbooks are meant to be used through an exploration process (browsing). In order to evaluate the proposed approach, we have generated cookbooks for three APIs widely used by the software development community: SWT, STL and LINQ. Desired properties that cookbooks must meet were identified and a study was conducted to assess to what extent the generated cookbook meet those properties.