Skip to main navigation Skip to search Skip to main content

Characterizing the Usage, Evolution and Impact of Java Annotations in Practice

  • Zhongxing Yu*
  • , Chenggang Bai
  • , Lionel Seinturier
  • , Martin Monperrus
  • *Corresponding author for this work
  • KTH Royal Institute of Technology
  • Institut national de recherche en informatique et en automatique
  • Université de Lille

Research output: Contribution to journalArticlepeer-review

Abstract

Annotations have been formally introduced into Java since Java 5. Since then, 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 knowledge about the actual usage of annotations in practice, the changes made to annotations during software evolution, and the potential impact of annotations on code quality. To fill this gap, we perform the first large-scale empirical study about Java annotations on 1,094 notable open-source projects hosted on GitHub. Our study systematically investigates annotation usage, annotation evolution, and annotation impact, and generates 10 novel and important findings. We also present the implications of our findings, which shed light for developers, researchers, tool builders, and language or library designers in order to improve all facets of Java annotation engineering.

Original languageEnglish
Article number8686056
Pages (from-to)969-986
Number of pages18
JournalIEEE Transactions on Software Engineering
Volume47
Issue number5
DOIs
StatePublished - 1 May 2021

Keywords

  • Annotation
  • empirical study
  • software evolution
  • statistical modelling

Fingerprint

Dive into the research topics of 'Characterizing the Usage, Evolution and Impact of Java Annotations in Practice'. Together they form a unique fingerprint.

Cite this