MAPO: mining API usages from open source repositories

Abstract

To improve software productivity, when constructing new software systems, developers often reuse existing class libraries or frameworks by invoking their APIs. Those APIs, however, are often complex and not well documented, posing barriers for developers to use them in new client code. To get familiar with how those APIs are used, developers may search the Web using a general search engine to find relevant documents or code examples. Developers can also use a source code search engine to search open source repositories for source files that use the same APIs. Nevertheless, the number of returned source files is often large. It is difficult for developers to learn API usages from a large number of returned results. In order to help developers understand API usages and write API client code more effectively, we have developed an API usage mining framework and its supporting tool called MAPO (for <u>M</u>ining <u>AP</u>I usages from <u>O</u>pen source repositories). Given a query that describes a method, class, or package for an API, MAPO leverages the existing source code search engines to gather relevant source files and conducts data mining. The mining leads to a short list of frequent API usages for developers to inspect. MAPO currently consists of five components: a code search engine, a source code analyzer, a sequence preprocessor, a frequent sequence miner, and a frequent sequence post processor. We have examined the effectiveness of MAPO using a set of various queries. The preliminary results show that the framework is practical for providing informative and succinct API usage patterns.

DOI: 10.1145/1137983.1137997

Extracted Key Phrases

2 Figures and Tables

01020'06'07'08'09'10'11'12'13'14'15'16'17
Citations per Year

149 Citations

Semantic Scholar estimates that this publication has 149 citations based on the available data.

See our FAQ for additional information.

Cite this paper

@inproceedings{Xie2006MAPOMA, title={MAPO: mining API usages from open source repositories}, author={Tao Xie and Jian Pei}, booktitle={MSR}, year={2006} }