Over-exposed classes in Java: An empirical study. (November 2016)
- Record Type:
- Journal Article
- Title:
- Over-exposed classes in Java: An empirical study. (November 2016)
- Main Title:
- Over-exposed classes in Java: An empirical study
- Authors:
- Vidal, S.
Bergel, A.
Díaz-Pace, J.A.
Marcos, C. - Abstract:
- 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. 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. Abstract : Highlights: We conduct an extensive study on the use of class access modifiers in Java systems. We identify a code anomaly called class over-exposure that applies to classes. We have found that 25% of classes are over-exposed. 90% of these classes are over-exposed since their first implementation.
- Is Part Of:
- Computer languages, systems & structures. Volume 46(2016)
- Journal:
- Computer languages, systems & structures
- Issue:
- Volume 46(2016)
- Issue Display:
- Volume 46, Issue 2016 (2016)
- Year:
- 2016
- Volume:
- 46
- Issue:
- 2016
- Issue Sort Value:
- 2016-0046-2016-0000
- Page Start:
- 1
- Page End:
- 19
- Publication Date:
- 2016-11
- Subjects:
- Class accessibility -- Modularity -- Over-exposed classes -- Java systems
Programming languages (Electronic computers) -- Periodicals
Computer networks -- Periodicals
Computer architecture -- Periodicals
Computer systems -- Periodicals
Langage de programmation
Réseau d'ordinateurs
Architecture d'ordinateur
Périodique électronique (Descripteur de forme)
Ressource Internet (Descripteur de forme)
005.13 - Journal URLs:
- http://www.sciencedirect.com/science/journal/14778424/40 ↗
http://www.elsevier.com/journals ↗ - DOI:
- 10.1016/j.cl.2016.04.001 ↗
- Languages:
- English
- ISSNs:
- 1477-8424
- Deposit Type:
- Legaldeposit
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library DSC - 3394.071000
British Library DSC - BLDSS-3PM
British Library STI - ELD Digital store - Ingest File:
- 1630.xml