On Deprecated API Usages: An Exploratory Study of Top-Starred Projects on GitHub
摘要
A deprecated Application Programming Interface (API) is one that is no longer recommended to use by its original developers. While deprecated APIs (i.e., deprecated fields, methods, and classes) are still implemented, they can be removed in future implementations. Therefore, developers should not use deprecated APIs in newly written code and should update existing code so that it does not use deprecated APIs anymore. In this paper, we present the results of an exploratory Mining-Software-Repository study to gather preliminary empirical evidence on deprecated API usages in open-source Java applications. To that end, we quantitatively analyzed the commit histories of 14 applications whose software projects were top-starred on GitHub. We found that deprecated APIs usages are pretty widespread in the studied software applications; and only in half of these applications, developers remove deprecated API usages after few commits and days. Also, half of the studied applications mostly use deprecated APIs declared in their own source code, rather than using deprecated APIs that lie in third-party software. Finally, we noted that the introductions and removals of deprecated API usages are mostly the result of changes made by senior developers, rather than newcomer ones.