How do developers use APIs? A case study in concurrency

Stefan Blom, Joseph Kiniry, Marieke Huisman

    Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

    8 Citations (Scopus)
    239 Downloads (Pure)

    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 put 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.
    Original languageUndefined
    Title of host publicationProceedings of the 18th International Conference on Engineering of Complex Computer Systems, ICECCS 2013
    Place of PublicationUSA
    PublisherIEEE
    Pages212-221
    Number of pages10
    ISBN (Print)978-0-7695-5007-7
    DOIs
    Publication statusPublished - Jul 2013
    Event18th International Conference on Engineering of Complex Computer Systems, ICECCS 2013 - Singapore
    Duration: 17 Jul 201319 Jul 2013

    Publication series

    Name
    PublisherIEEE Computer Society

    Conference

    Conference18th International Conference on Engineering of Complex Computer Systems, ICECCS 2013
    Period17/07/1319/07/13
    Other17-19 July 2013

    Keywords

    • EWI-24441
    • Qualitas Corpus
    • Static Analysis
    • IR-89586
    • API usage
    • METIS-302698
    • java.util.concurrent

    Cite this