Title :
Detecting inefficient API usage
Author :
Kawrykow, David ; Robillard, Martin P.
Author_Institution :
Sch. of Comput. Sci., McGill Univ., Montreal, QC
Abstract :
Large software projects often rely on third-party libraries, made accessible through application programming interfaces (APIs). We have observed many cases where APIs are used in ways that are not efficient. We developed a technique to automatically detect inefficient API usage in software projects. The main hypothesis underlying the technique is that client code that imitates the behavior of a library method without calling it is likely not to use the library as efficiently as possible. In addition to warning developers of potentially inefficient API usage, our technique also indicates how to improve the use of the API. Application of the technique on Java open-source systems revealed many cases of inefficient API usage, and corresponding recommendations that led to code improvements.
Keywords :
Java; application program interfaces; API; Java open-source system; application programming interface; software project; Application software; Computer languages; Computer science; Functional programming; Java; Open source software; Runtime library; Software libraries; Software systems; Uniform resource locators;
Conference_Titel :
Software Engineering - Companion Volume, 2009. ICSE-Companion 2009. 31st International Conference on
Conference_Location :
Vancouver, BC
Print_ISBN :
978-1-4244-3495-4
DOI :
10.1109/ICSE-COMPANION.2009.5070977