Mostrar el registro sencillo del ítem
dc.contributor.author
Vidal, Santiago Agustín
dc.contributor.author
Bergel, Alexandre
dc.contributor.author
Diaz Pace, Jorge Andres
dc.contributor.author
Marcos, Claudia Andrea
dc.date.available
2018-09-06T18:50:12Z
dc.date.issued
2016-11
dc.identifier.citation
Vidal, Santiago Agustín; Bergel, Alexandre; Diaz Pace, Jorge Andres; Marcos, Claudia Andrea; Over-exposed classes in Java: An empirical study; Pergamon-Elsevier Science Ltd; Computer Languages Systems & Structures; 46; 11-2016; 1-19
dc.identifier.issn
1477-8424
dc.identifier.uri
http://hdl.handle.net/11336/58571
dc.description.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.
dc.format
application/pdf
dc.language.iso
eng
dc.publisher
Pergamon-Elsevier Science Ltd
dc.rights
info:eu-repo/semantics/openAccess
dc.rights.uri
https://creativecommons.org/licenses/by-nc-sa/2.5/ar/
dc.subject
Class Accessibility
dc.subject
Java Systems
dc.subject
Modularity
dc.subject
Over-Exposed Classes
dc.subject.classification
Ciencias de la Computación
dc.subject.classification
Ciencias de la Computación e Información
dc.subject.classification
CIENCIAS NATURALES Y EXACTAS
dc.title
Over-exposed classes in Java: An empirical study
dc.type
info:eu-repo/semantics/article
dc.type
info:ar-repo/semantics/artículo
dc.type
info:eu-repo/semantics/publishedVersion
dc.date.updated
2018-09-05T15:54:12Z
dc.journal.volume
46
dc.journal.pagination
1-19
dc.journal.pais
Estados Unidos
dc.journal.ciudad
Nueva York
dc.description.fil
Fil: Vidal, Santiago Agustín. Consejo Nacional de Investigaciones Científicas y Técnicas. Centro Científico Tecnológico Conicet - Tandil. Instituto Superior de Ingeniería del Software. Universidad Nacional del Centro de la Provincia de Buenos Aires. Instituto Superior de Ingeniería del Software; Argentina
dc.description.fil
Fil: Bergel, Alexandre. Universidad de Chile; Chile
dc.description.fil
Fil: Diaz Pace, Jorge Andres. Consejo Nacional de Investigaciones Científicas y Técnicas. Centro Científico Tecnológico Conicet - Tandil. Instituto Superior de Ingeniería del Software. Universidad Nacional del Centro de la Provincia de Buenos Aires. Instituto Superior de Ingeniería del Software; Argentina
dc.description.fil
Fil: Marcos, Claudia Andrea. Consejo Nacional de Investigaciones Científicas y Técnicas. Centro Científico Tecnológico Conicet - Tandil. Instituto Superior de Ingeniería del Software. Universidad Nacional del Centro de la Provincia de Buenos Aires. Instituto Superior de Ingeniería del Software; Argentina. Universidad Nacional del Centro de la Provincia de Buenos Aires. Facultad de Ciencias Exactas; Argentina
dc.journal.title
Computer Languages Systems & Structures
dc.relation.alternativeid
info:eu-repo/semantics/altIdentifier/doi/https://doi.org/10.1016/j.cl.2016.04.001
dc.relation.alternativeid
info:eu-repo/semantics/altIdentifier/url/https://www.sciencedirect.com/science/article/pii/S1477842415300531
Archivos asociados