Skip to Main content Skip to Navigation

Analysis and Exploitation of Natural Software Diversity: The Case of API Usages

Abstract : In this paper, we study how object-oriented classes are used across thousands of software packages. We concentrate on "usage diversity", defined as the different statically observable combinations of methods called on the same object. We present empirical evidence that there is a significant usage diversity for many classes. For instance, we observe in our dataset that Java's String is used in 2460 manners. Beyond those empirical observations, we show that we can use this API usage diversity to reason on the core design of object-oriented classes. We think that our pieces of evidence on API usage diversity shake up some established ideas on the nature of software and how to engineer it. Hence, we discuss those empirical results in the general context of software engineering: what are the reasons behind this diversity? what are the implications of this diversity?
Document type :
Complete list of metadata

Cited literature [22 references]  Display  Hide  Download
Contributor : Martin Monperrus Connect in order to contact the contributor
Submitted on : Monday, December 15, 2014 - 4:45:51 PM
Last modification on : Wednesday, February 2, 2022 - 3:50:59 PM
Long-term archiving on: : Saturday, April 15, 2017 - 8:41:25 AM


Files produced by the author(s)


  • HAL Id : hal-01095501, version 1


Diego Mendez, Benoit Baudry, Martin Monperrus. Analysis and Exploitation of Natural Software Diversity: The Case of API Usages. [Research Report] hal-01095501, Inria. 2014. ⟨hal-01095501⟩



Record views


Files downloads