Back to Search Start Over

Understanding type changes in Java

Authors :
Nikolaos Tsantalis
Ameya Ketkar
Danny Dig
Source :
ESEC/SIGSOFT FSE
Publication Year :
2020
Publisher :
ACM, 2020.

Abstract

Developers frequently change the type of a program element and update all its references for performance, security, concurrency,library migration, or better maintainability. Despite type changes being a common program transformation, it is the least automated and the least studied. With this knowledge gap, researchers miss opportunities to improve the state of the art in automation for software evolution, tool builders do not invest resources where automation is most needed, language and library designers can-not make informed decisions when introducing new types, and developers fail to use common practices when changing types. To fill this gap, we present the first large-scale and most fine-grained empirical study on type changes in Java. We develop state-of-the-art tools to statically mine 297,543 type changes and their subsequent code adaptations from a diverse corpus of 129 Java projects containing 416,652 commits. With this rich data set we answer research questions about the practice of type changes. Among others, we found that type changes are actually more common than renaming,but the current research and tools for type changes are inadequate.Based on our extensive and reliable data, we present actionable,empirically-justified implications.

Details

Database :
OpenAIRE
Journal :
Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering
Accession number :
edsair.doi...........82506cf3a34dcbfea3e663f6da98eb64
Full Text :
https://doi.org/10.1145/3368089.3409725