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

by Diego Mendez, Benoit Baudry and Martin Monperrus
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?
 View PDF
Open-access (on archives-ouvertes.fr)
Citations: [citations]
Other publications of Martin Monperrus

Cite it:

Diego Mendez, Benoit Baudry and Martin Monperrus, "Analysis and Exploitation of Natural Software Diversity: The Case of API Usages", Technical report, Inria hal-01095501, 2014.
Analysis and Exploitation of Natural Software Diversity: The Case of API Usages
https://hal.science/hal-01095501/file/analysis-exploitation-api-diversity.pdf
[Analysis and Exploitation of Natural Software Diversity: The Case of API Usages](https://hal.science/hal-01095501/file/analysis-exploitation-api-diversity.pdf)
\href{https://hal.science/hal-01095501/file/analysis-exploitation-api-diversity.pdf}{Analysis and Exploitation of Natural Software Diversity: The Case of API Usages} % \cite{mendez:hal-01095501}

Bibtex Entry:

@techreport{mendez:hal-01095501,
 title = {Analysis and Exploitation of Natural Software Diversity: The Case of API Usages},
 author = {Mendez, Diego and Baudry, Benoit and Monperrus, Martin},
 url = {https://hal.science/hal-01095501/file/analysis-exploitation-api-diversity.pdf},
 type = {Research Report},
 number = {hal-01095501},
 institution = {{Inria}},
 year = {2014},
}
Powered by bibtexbrowser