Zurück zur Übersicht

Polymorphism in the Spotlight: Studying its Prevalence in {Java} and {Smalltalk}

Publikationsart Peer-reviewed
Publikationsform Tagungsbeitrag (peer-reviewed)
Publikationsjahr 2015
Autor/in Milojković Nevena, Caracciolo Andrea, Lungu Mircea, Nierstrasz Oscar, Röthlisberger David, Robbes Romain
Projekt Agile Software Assessment
Alle Daten anzeigen

Tagungsbeitrag (peer-reviewed)

Titel der Proceedings Proceedings of the 2015 IEEE 23rd International Conference on Program Comprehension
Status Publiziert
DOI 10.1109/ICPC.2015.29

Open Access


Subtype polymorphism is a cornerstone of object-oriented programming. By hiding variability in behavior behind a uniform interface, polymorphism decouples clients from providers and thus enables genericity, modularity and extensi- bility. At the same time, however, it scatters the implementation of the behavior over multiple classes thus potentially hampering program comprehension. The extent to which polymorphism is used in real programs and the impact of polymorphism on program comprehension are not very well understood. We report on a preliminary study of the prevalence of polymorphism in several hundred open source software systems written in Smalltalk, one of the oldest object-oriented programming languages, and in Java, one of the most widespread ones. Although a large portion of the call sites in these systems are polymorphic, a majority have a small number of potential candidates. Smalltalk uses polymorphism to a much greater extent than Java. We discuss how these findings can be used as input for more detailed studies in program comprehension and for better developer support in the IDE.