Finding Replacements for Missing APIs in Library Update
Libraries are widely adopted in developing software projects. Library APIs are often missing during library evolution as library developers may deprecate, remove or refactor APIs. As a result, client developers have to manually find replacement APIs for missing APIs when updating library versions in their projects, which is a difficult and expensive software maintenance task. One of the key limitations of the existing automated approaches is that they usually consider the library itself as the single source to find replacement APIs, which heavily limits their accuracy.
In this paper, we first present an empirical study to understand characteristics about missing APIs and their replacements. Specifically, we quantify the prevalence of missing APIs, and summarize the knowledge sources where the replacements are found, and the code change and mapping cardinality between missing APIs and their replacements. Then, inspired by the insights from our study, we propose a heuristic-based approach, RepFinder, to automatically find replacements for missing APIs in library update. We design and combine a set of heuristics to hierarchically search three sources (deprecation message, own library, and external library) for finding replacements. Our evaluation has demonstrated that RepFinder can find replacement APIs effectively and efficiently, and significantly outperform the state-of-the-art approaches.
Tue 16 NovDisplayed time zone: Hobart change
21:00 - 22:00
APIs Research Papers at Koala
Chair(s): Timo Kehrer Humboldt University of Berlin
|Finding Replacements for Missing APIs in Library Update|
Kaifeng Huang Fudan University, Bihuan Chen Fudan University, China, Linghao Pan Fudan University, Shuai Wu Fudan University, Xin Peng Fudan University
|Adversarial Attacks to API Recommender Systems: Time to Wake Up and Smell the Coffee?|
Phuong T. Nguyen University of L’Aquila, Claudio Di Sipio University of L'Aquila, Juri Di Rocco University of L'Aquila, Massimiliano Di Penta University of Sannio, Italy, Davide Di Ruscio University of L'AquilaPre-print