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 gener...
Usage examples are helpful for programmers learning to use APIs from third-party frameworks or libra...
An Application Programming Interface (API) provides a set of functionalities to a developer with the...
Software application programming interfaces (APIs) are a ubiquitous part of Software Engineering. Th...
In this paper, we study how object-oriented classes are used across thousands of software packages. ...
International audienceIn this paper, we study how object-oriented classes are used across thousands ...
Support for generic programming was added to the Java language in 2004, representing perhaps the mos...
Abstract Support for generic programming was added to the Java language in 2004, representing perhap...
An Application Programming Interface (API) provides a specific set of functionalities to a developer...
Subtype polymorphism is a cornerstone of object-oriented programming. By hiding variability in behav...
11 pagesIn this work, we characterize a new form of software diver- sity: the existence of a set of ...
When several incompatible implementations of a single API are in use in a Java program, the danger e...
Abstract—Subtype polymorphism is a cornerstone of object-oriented programming. By hiding variability...
Diversity emerges as a critical concern that spans all activities in software engineering (from desi...
With the omnipresent usage of APIs in software development, it has become important to analyse how t...
Usage examples are helpful for programmers learning to use APIs from third-party frameworks or libra...
An Application Programming Interface (API) provides a set of functionalities to a developer with the...
Software application programming interfaces (APIs) are a ubiquitous part of Software Engineering. Th...
In this paper, we study how object-oriented classes are used across thousands of software packages. ...
International audienceIn this paper, we study how object-oriented classes are used across thousands ...
Support for generic programming was added to the Java language in 2004, representing perhaps the mos...
Abstract Support for generic programming was added to the Java language in 2004, representing perhap...
An Application Programming Interface (API) provides a specific set of functionalities to a developer...
Subtype polymorphism is a cornerstone of object-oriented programming. By hiding variability in behav...
11 pagesIn this work, we characterize a new form of software diver- sity: the existence of a set of ...
When several incompatible implementations of a single API are in use in a Java program, the danger e...
Abstract—Subtype polymorphism is a cornerstone of object-oriented programming. By hiding variability...
Diversity emerges as a critical concern that spans all activities in software engineering (from desi...
With the omnipresent usage of APIs in software development, it has become important to analyse how t...
Usage examples are helpful for programmers learning to use APIs from third-party frameworks or libra...
An Application Programming Interface (API) provides a set of functionalities to a developer with the...
Software application programming interfaces (APIs) are a ubiquitous part of Software Engineering. Th...