Large-scale, AST-based API-usage analysis of open-source Java projects
Proceedings of the 2011 ACM Symposium on Applied Computing
Automatic parameter recommendation for practical API usage
Proceedings of the 34th International Conference on Software Engineering
An empirical study of the influence of static type systems on the usability of undocumented software
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Exposing behavioral differences in cross-language API mapping relations
FASE'13 Proceedings of the 16th international conference on Fundamental Approaches to Software Engineering
Hi-index | 0.00 |
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 the most effective. We developed a technique and tool support to automatically detect such patterns of API usage in software projects. The main hypothesis underlying our technique is that client code imitating the behavior of an API method without calling it may not be using the API effectively because it could instead call the method it imitates. Our technique involves analyzing software systems to detect cases of API method imitations. In addition to warning developers of potentially re-implemented API methods, we also indicate how to improve the use of the API. Applying our approach on 10 Java systems revealed over 400 actual cases of potentially suboptimal API usage, leading to many improvements to the quality of the code we studied.