How Do Developers Use APIs? A Case Study in Concurrency

Stefan Blom, Joseph Kiniry, Marieke Huisman
2013 2013 18th International Conference on Engineering of Complex Computer Systems  
This paper is c 2013, IEEE CPS. See [1] and the CPS website http://dx.Abstract-With the omnipresent usage of APIs in software development, it has become important to analyse how the routines and functionalities of APIs are actually used. This information is in particular useful for API developers, to make decisions about future updates of the API. However, also for developers of static analysis and verification tools this information is highly important, because it indicates where and how to
more » ... the most efficient effort in annotating APIs, to make them usable for the static analysis and verification tools. This paper presents an analysis of the usage of the routines and functionalities of the Java concurrency library java.util.concurrent. It discusses the Histogram tool that we developed for this purpose, i.e., to efficiently analyse a large collection of bytecode classes. The Histogram tool is used on a representative benchmark set, the Qualitas Corpus. The paper discusses the results of the analysis of this benchmark set in detail. This covers both an analysis of the important classes and methods used by the current releases of the benchmark collection, as well as an analysis of the time it took for the Java concurrency library to start being used in released software.
doi:10.1109/iceccs.2013.39 dblp:conf/iceccs/BlomKH13 fatcat:2tgoouksrvct7jlrcwkaa344ki