Publications

View publication

Title Over-exposed Classes in Java: An Empirical Study
Authors Santiago Vidal, Alexandre Bergel, J. Andrés Díaz-Pace, Claudia Marcos
Publication date November 2016
Abstract Java access modifiers regulate interactions among software
components. In particular, class modifiers specify which classes from a
component are publicly exposed and therefore belong to the component public
interface. Restricting the accessibility as specified by a programmer is key
to ensure a proper software modularity. It has been said that failing to do
so is likely to produce maintenance problems, poor system quality, and
architecture decay. However, how developers uses class access modifiers or
how inadequate access modifiers affect software systems has not been
investigated yet in the literature.
\n\n
In this work, we empirically analyze the use of class access modifiers
across a collection of 15 Java libraries and 15 applications, totaling over
3.6M lines of code. We have found that an average of 25% of classes are
over-exposed, i.e., classes defined with an accessibility that is broader
than necessary. A number of code patterns involving over-exposed classes
have been formalized, characterizing programmers' habits. Furthermore, we
propose an Eclipse plugin to make component public interfaces match with the
programmer's intent.
Downloaded 8 times
Pages 1-19
Volume 46
Journal name Computer Languages, Systems & Structures
Publisher Elsevier Science (Amsterdam, The Netherlands)
PDF View PDF
Reference URL View reference page