MAPO: mining API usages from open source repositories

TitleMAPO: mining API usages from open source repositories
Publication TypeConference Paper
Year of Publication2006
AuthorsXie, T, Pei, J
Secondary TitleProceedings of the 2006 international workshop on Mining software repositories
Pagination54–57
PublisherACM
Place PublishedNew York, NY, USA
ISBN Number1-59593-397-2
Keywordsapi, application programming interfaces, documentation, mining software repositories, pmd, program comprehension, search engine, sequences, source code, source code search engine
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 Mining API usages from Open 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.

URLhttp://doi.acm.org/10.1145/1137983.1137997
DOI10.1145/1137983.1137997
Full Text
AttachmentSize
PDF icon 54MAPO.pdf154.04 KB