Comprehensive Integration of API Usage Patterns

  title={Comprehensive Integration of API Usage Patterns},
  author={Qi Shen and Shijun Wu and Yanzhen Zou and Bing Xie},
  journal={2021 IEEE/ACM 29th International Conference on Program Comprehension (ICPC)},
  • Qi Shen, Shijun Wu, B. Xie
  • Published 22 March 2021
  • Computer Science
  • 2021 IEEE/ACM 29th International Conference on Program Comprehension (ICPC)
Nowadays, developers often reuse existing APIs to implement their programming tasks. A lot of API usage patterns are mined to help developers learn API usage rules. However, there are still many missing variables to be synthesized when developers integrate the patterns into their programming context. To deal with this issue, we propose a comprehensive approach to integrate API usage patterns in this paper. We first perform an empirical study by analyzing how API usage patterns are integrated in… 


Mining succinct and high-coverage API usage patterns from source code
This paper proposes two quality metrics (succinctness and coverage) for mined usage patterns, and proposes a novel approach called Usage Pattern Miner (UP-Miner) that mines succinct and high-coverage usage patterns of API methods from source code.
MAPO: Mining and Recommending API Usage Patterns
The results show that using MAPO, programmers produce code with fewer bugs when facing relatively complex API usages, comparing with using the two state-of-the-art code search tools.
API usage pattern recommendation for software development
Live API documentation
Baker can be used to enhance traditional API documentation with up-to-date source code examples and incorporate links to the API documentation into the code snippets that use the API.
A graph-based approach to API usage adaptation
LIBSYNC is presented that guides developers in adapting API usage code by learning complex API usage adaptation patterns from other clients that already migrated to a new library version (and also from the API usages within the library's test code).
How Can I Use This Method?
MUSE (Method USage Examples), an approach for mining and ranking actual code examples that show how to use a specific method, combines static slicing with clone detection, and uses heuristics to select and rank the best examples in terms of reusability, understandability, and popularity.
Analyzing and Supporting Adaptation of Online Code Examples
This work extensively studies the nature and extent of adaptations and variations of SO snippets, serving as the basis for a tool that helps integrate these online code examples in a target context in an interactive manner.
From API to NLI: A New Interface for Library Reuse
Visualizing API Usage Examples at Scale
An interactive visualization for exploring a large collection of code examples mined from open-source repositories at scale and found that it helped users answer significantly more API usage questions correctly and comprehensively and explore how other programmers have used an unfamiliar API.
Complete completion using types and weights
A technique that synthesizes and suggests valid expressions of a given type at a given program point and introduces a succinct representation for type judgements that merges types into equivalence classes to reduce the search space, then reconstructs any desired number of solutions on demand.