Title
Characterizing the Usage and Impact of Java Annotations Over 1000+ Projects.
Abstract
As a kind of meta-data feature, annotations have been formally introduced into Java since Java 5. Since the introduction, annotations have been widely used by the Java community for different purposes, such as compiler guidance and runtime processing. Despite the ever-growing use, there is still limited empirical evidence about developers use annotations in practice and the impact of annotation use on software quality. To fill this gap, we perform the first large-scale empirical study about Java annotation uses on 1,094 open-source projects hosted on GitHub. Our study answers some fundamental questions about Java annotation use. First, we answer the question what? and find that annotations are typically used to annotate 4 aspects of program elements. Second, we answer the question how annotations evolve? and identify 6 different annotation change types, their frequencies, and their characteristics. Third, we answer the question who uses annotations? and establish the relationships between annotation uses and code ownership and developer experience. In addition, we also use regression models to explore the correlation between annotation uses and code quality, and we find that annotations do have an impact on making code less error-prone.
Year
Venue
Field
2018
arXiv: Software Engineering
Annotation,Information retrieval,Empirical evidence,Computer science,Java annotation,Compiler,Theoretical computer science,Software quality,Java,Empirical research
DocType
Volume
Citations 
Journal
abs/1805.01965
0
PageRank 
References 
Authors
0.34
9
4
Name
Order
Citations
PageRank
Zhongxing Yu1121.54
Cheng-Gang Bai2958.02
Lionel Seinturier3104179.30
Martin Monperrus4133070.54