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?
Type de document :
[Research Report] Inria. 2014
Liste complète des métadonnées
Contributeur : Martin Monperrus <>
Soumis le : lundi 15 décembre 2014 - 16:45:51
Dernière modification le : jeudi 9 février 2017 - 16:03:40
Document(s) archivé(s) le : samedi 15 avril 2017 - 08:41:25


Fichiers produits par l'(les) auteur(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] Inria. 2014. <hal-01095501>



Consultations de
la notice


Téléchargements du document