Characterizing the Usage, Evolution and Impact of Java Annotations in Practice
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 us...
Saved in:
Published in | IEEE transactions on software engineering Vol. 47; no. 5; pp. 969 - 986 |
---|---|
Main Authors | , , , |
Format | Journal Article |
Language | English |
Published |
New York
IEEE
01.05.2021
IEEE Computer Society Institute of Electrical and Electronics Engineers |
Subjects | |
Online Access | Get full text |
Cover
Loading…
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. |
---|---|
AbstractList | 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. |
Author | Bai, Chenggang Monperrus, Martin Seinturier, Lionel Yu, Zhongxing |
Author_xml | – sequence: 1 givenname: Zhongxing orcidid: 0000-0002-8584-3570 surname: Yu fullname: Yu, Zhongxing email: zhoyu@kth.se organization: KTH Royal Institute of Technology, Stockholm, Sweden – sequence: 2 givenname: Chenggang orcidid: 0000-0003-2224-2337 surname: Bai fullname: Bai, Chenggang email: bcg@buaa.edu.cn organization: Beihang University, Beijing, China – sequence: 3 givenname: Lionel surname: Seinturier fullname: Seinturier, Lionel email: Lionel.Seinturier@inria.fr organization: Inria Lille Nord Europe, Villeneuve d'Ascq, France – sequence: 4 givenname: Martin orcidid: 0000-0003-3505-3383 surname: Monperrus fullname: Monperrus, Martin email: martin.monperrus@csc.kth.se organization: KTH Royal Institute of Technology, Stockholm, Sweden |
BackLink | https://inria.hal.science/hal-02091516$$DView record in HAL https://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-296843$$DView record from Swedish Publication Index |
BookMark | eNpV0c9r2zAUB3AxOlja7j7YRbDTYE6fJEv2O4Ys_THCNli7q5BtKVGXSqnkpHR__WxcCjsJpM_7gt73lJyEGCwhHxjMGQO8uP21mnNgOOfIQDL1hswYCiyE5HBCZgBYF1LW-I6c5nwPALKq5Ix8X25NMm1vk__rw4b2W0vvstnYL3R1jLtD72OgJnT05mE_MBod_WaOhi5CiL0ZXzP1gf4cM3xrz8lbZ3bZvn85z8jd5ep2eV2sf1zdLBfroi1B9kXjWCddx2rBLCurqu0MOmigYrWTUjgOpuGKVVgpY0soUVa1UKJ0TeeQI4ozUky5-cnuD43eJ_9g0rOOxuuv_vdCx7TRf_qt5qjqUgz-8-S3Zvcfvl6s9XgHHJANazuywX6a7D7Fx4PNvb6PhxSG72guuUJVSiwHBZNqU8w5Wfcay0CPjeihET02ol8aGUY-TiPeWvvKa1UrkEr8A3D4hqA |
CODEN | IESEDJ |
CitedBy_id | crossref_primary_10_1145_3478097 crossref_primary_10_1016_j_simpa_2023_100491 crossref_primary_10_1109_ACCESS_2021_3087795 crossref_primary_10_1109_TSE_2023_3252259 crossref_primary_10_1109_ACCESS_2024_3372618 crossref_primary_10_1016_j_infsof_2022_107089 crossref_primary_10_1007_s10515_024_00425_0 crossref_primary_10_1016_j_infsof_2022_107143 |
Cites_doi | 10.1109/32.935855 10.1002/spe.2346 10.3115/v1/P14-5010 10.1145/1985793.1985796 10.1145/512529.512558 10.1145/3084226.3084259 10.1109/ASWEC.2009.19 10.1145/231379.231389 10.1145/2509136.2509528 10.1109/ICSM.2000.883028 10.3109/00952990.2011.597280 10.1145/3133909 10.1145/1852786.1852801 10.1109/ASE.2015.69 10.1145/2025113.2025119 10.1145/1390630.1390656 10.1145/1985793.1985889 10.1145/2884781.2884812 10.1145/2884781.2884848 10.1109/ICSE.2017.53 10.1145/2384616.2384680 10.1145/2884781.2884869 10.1145/2635868.2635922 10.1109/MS.1985.230345 10.1145/2568225.2568295 10.1007/s10664-015-9393-5 10.1145/582419.582441 10.1007/s10664-012-9236-6 10.1007/978-3-540-70592-5_28 10.1145/2814270.2814279 10.1145/2884781.2884882 10.1109/ICSE.2017.52 10.1145/1985793.1985860 10.1145/2642937.2642982 |
ContentType | Journal Article |
Copyright | Copyright IEEE Computer Society 2021 Distributed under a Creative Commons Attribution 4.0 International License |
Copyright_xml | – notice: Copyright IEEE Computer Society 2021 – notice: Distributed under a Creative Commons Attribution 4.0 International License |
DBID | 97E RIA RIE AAYXX CITATION JQ2 K9. 1XC VOOES ADTPV AOWAS D8V |
DOI | 10.1109/TSE.2019.2910516 |
DatabaseName | IEEE All-Society Periodicals Package (ASPP) 2005-present IEEE All-Society Periodicals Package (ASPP) 1998–Present IEEE Xplore CrossRef ProQuest Computer Science Collection ProQuest Health & Medical Complete (Alumni) Hyper Article en Ligne (HAL) Hyper Article en Ligne (HAL) (Open Access) SwePub SwePub Articles SWEPUB Kungliga Tekniska Högskolan |
DatabaseTitle | CrossRef ProQuest Health & Medical Complete (Alumni) ProQuest Computer Science Collection |
DatabaseTitleList | ProQuest Health & Medical Complete (Alumni) |
Database_xml | – sequence: 1 dbid: RIE name: IEL url: https://proxy.k.utb.cz/login?url=https://ieeexplore.ieee.org/ sourceTypes: Publisher |
DeliveryMethod | fulltext_linktorsrc |
Discipline | Computer Science |
EISSN | 1939-3520 |
EndPage | 986 |
ExternalDocumentID | oai_DiVA_org_kth_296843 oai_HAL_hal_02091516v1 10_1109_TSE_2019_2910516 8686056 |
Genre | orig-research |
GrantInformation_xml | – fundername: National Natural Science Foundation of China grantid: 61772055 funderid: 10.13039/501100001809 – fundername: Wallenberg AI, Autonomous Systems and Software Program – fundername: Equipment Preliminary R&D Project of China grantid: 41402020102 – fundername: Knut och Alice Wallenbergs Stiftelse; Knut and Alice Wallenberg Foundation funderid: 10.13039/501100004063 |
GroupedDBID | --Z -DZ -~X .DC 0R~ 29I 4.4 5GY 6IK 85S 8R4 8R5 97E AAJGR AASAJ ABPPZ ABQJQ ABVLG ACGFO ACGOD ACIWK ACNCT AENEX AKJIK ALIPV ALMA_UNASSIGNED_HOLDINGS ASUFR ATWAV BEFXN BFFAM BGNUA BKEBE BKOMP BPEOZ CS3 DU5 EBS EDO EJD HZ~ IEDLZ IFIPE IPLJI JAVBF LAI M43 MS~ O9- OCL P2P Q2X RIA RIC RIE RIG RNS RXW S10 TAE TN5 TWZ UHB UPT WH7 YZZ AAYXX CITATION JQ2 K9. .4S 1XC 3EH 3V. 5VS 7WY 7X7 88E 88I 8FE 8FG 8FI 8FJ 8FL 8G5 9M8 AAYOK ABFSI ABJCF ABUWG ADBBV AETIX AFKRA AI. AIBXA ALLEH ARAPS ARCSS AZQEC BENPR BEZIV BGLVJ BPHCQ BVXVI CCPQU DWQXO E.L F20 FRNLG FYUFA GNUQQ GROUPED_ABI_INFORM_COMPLETE GROUPED_ABI_INFORM_RESEARCH GUQSH HCIFZ HMCUK H~9 I-F IBMZZ ICLAB IFJZH ITG ITH K60 K6V K6~ K7- L6V M0C M0N M1P M1Q M2O M2P M7S OHT P62 PQBIZ PQBZA PQQKQ PROAC PSQYO PTHSS RNI RZB UKHRP UQL VH1 VOOES XOL YYP ZCG ADTPV AOWAS D8V |
ID | FETCH-LOGICAL-c405t-bf1d5fd1831e1477cda9f0b0718f553f20ab2617976ae40495783634fbdf92993 |
IEDL.DBID | RIE |
ISSN | 0098-5589 1939-3520 |
IngestDate | Sat Aug 24 00:48:35 EDT 2024 Fri Sep 06 13:19:42 EDT 2024 Fri Sep 13 05:41:51 EDT 2024 Fri Aug 23 04:09:32 EDT 2024 Wed Jun 26 19:26:43 EDT 2024 |
IsDoiOpenAccess | true |
IsOpenAccess | true |
IsPeerReviewed | true |
IsScholarly | true |
Issue | 5 |
Keywords | Software Evolution Empirical Study Statistical Modelling Annotation |
Language | English |
License | Distributed under a Creative Commons Attribution 4.0 International License: http://creativecommons.org/licenses/by/4.0 |
LinkModel | DirectLink |
MergedId | FETCHMERGED-LOGICAL-c405t-bf1d5fd1831e1477cda9f0b0718f553f20ab2617976ae40495783634fbdf92993 |
ORCID | 0000-0003-2224-2337 0000-0003-3505-3383 0000-0002-8584-3570 |
OpenAccessLink | https://inria.hal.science/hal-02091516 |
PQID | 2526964594 |
PQPubID | 21418 |
PageCount | 18 |
ParticipantIDs | ieee_primary_8686056 swepub_primary_oai_DiVA_org_kth_296843 hal_primary_oai_HAL_hal_02091516v1 proquest_journals_2526964594 crossref_primary_10_1109_TSE_2019_2910516 |
PublicationCentury | 2000 |
PublicationDate | 2021-05-01 |
PublicationDateYYYYMMDD | 2021-05-01 |
PublicationDate_xml | – month: 05 year: 2021 text: 2021-05-01 day: 01 |
PublicationDecade | 2020 |
PublicationPlace | New York |
PublicationPlace_xml | – name: New York |
PublicationTitle | IEEE transactions on software engineering |
PublicationTitleAbbrev | TSE |
PublicationYear | 2021 |
Publisher | IEEE IEEE Computer Society Institute of Electrical and Electronics Engineers |
Publisher_xml | – name: IEEE – name: IEEE Computer Society – name: Institute of Electrical and Electronics Engineers |
References | ref13 ref12 ref15 ref14 ref53 gosling (ref17) 2000 ref52 ref11 ref54 (ref39) 2017 ref16 overflow (ref42) 2018 (ref36) 2015 ref51 basit (ref3) 2005 ref46 ref45 ref48 casalnuovo (ref5) 2015 ref47 ref44 gosling (ref19) 2014 ref43 john (ref26) 0 riegler (ref49) 2018 ref8 ref9 ref4 ref6 dietrich (ref10) 2017 guerra (ref21) 2016 ref35 ref34 ref37 ref31 ref30 ref33 ref32 ref2 cohen (ref7) 1975 josh (ref27) 2017 (ref41) 2018 ref24 ref23 nagappan (ref38) 2005 ref25 ref20 ref22 jungle (ref28) 2018 gosling (ref18) 2005 ref29 (ref40) 2017 torvalds (ref1) 2018 rocha (ref50) 2011 |
References_xml | – year: 2017 ident: ref39 article-title: Annotation type suppresswarnings – ident: ref12 doi: 10.1109/32.935855 – start-page: 109 year: 2005 ident: ref3 article-title: An empirical study on limits of clone unification using generics publication-title: Proc 17th Int Conf Softw Eng Knowl Eng contributor: fullname: basit – ident: ref45 doi: 10.1002/spe.2346 – ident: ref34 doi: 10.3115/v1/P14-5010 – ident: ref51 doi: 10.1145/1985793.1985796 – ident: ref16 doi: 10.1145/512529.512558 – ident: ref31 doi: 10.1145/3084226.3084259 – ident: ref52 doi: 10.1109/ASWEC.2009.19 – ident: ref14 doi: 10.1145/231379.231389 – ident: ref23 doi: 10.1145/2509136.2509528 – year: 2018 ident: ref42 article-title: Arguments against annotations contributor: fullname: overflow – ident: ref37 doi: 10.1109/ICSM.2000.883028 – ident: ref24 doi: 10.3109/00952990.2011.597280 – start-page: 755 year: 2015 ident: ref5 article-title: Assert use in GitHub projects publication-title: Proceedings of the International Conference on Software Engineering ICSE'94 contributor: fullname: casalnuovo – year: 2018 ident: ref28 article-title: Annotations and its benefits in java contributor: fullname: jungle – ident: ref35 doi: 10.1145/3133909 – ident: ref20 doi: 10.1145/1852786.1852801 – ident: ref2 doi: 10.1109/ASE.2015.69 – year: 2015 ident: ref36 article-title: Sal annotations – ident: ref4 doi: 10.1145/2025113.2025119 – start-page: 9:1 year: 2017 ident: ref10 article-title: Contracts in the wild: A study of Java programs publication-title: European Conf on Object-Oriented Programming contributor: fullname: dietrich – ident: ref43 doi: 10.1145/1390630.1390656 – ident: ref9 doi: 10.1145/1985793.1985889 – start-page: 284 year: 2005 ident: ref38 article-title: Use of relative code churn measures to predict system defect density publication-title: Proc 27th Int l Conf Software Eng contributor: fullname: nagappan – ident: ref8 doi: 10.1145/2884781.2884812 – ident: ref47 doi: 10.1145/2884781.2884848 – ident: ref32 doi: 10.1109/ICSE.2017.53 – ident: ref25 doi: 10.1145/2384616.2384680 – ident: ref22 doi: 10.1145/2884781.2884869 – ident: ref48 doi: 10.1145/2635868.2635922 – year: 2005 ident: ref18 publication-title: Java(TM) Language Specification contributor: fullname: gosling – year: 2014 ident: ref19 publication-title: The java language specification java se 8 edition contributor: fullname: gosling – ident: ref33 doi: 10.1109/MS.1985.230345 – ident: ref11 doi: 10.1145/2568225.2568295 – year: 2018 ident: ref1 article-title: Sparse-a semantic parser for c contributor: fullname: torvalds – year: 1975 ident: ref7 publication-title: Applied Multiple Regression/Correlation Analysis for the Behavioral Sciences contributor: fullname: cohen – year: 2018 ident: ref49 article-title: Be a better developer contributor: fullname: riegler – ident: ref29 doi: 10.1007/s10664-015-9393-5 – year: 2000 ident: ref17 publication-title: Java Language Specifi cation Second Edition The Java Series contributor: fullname: gosling – ident: ref30 doi: 10.1145/582419.582441 – ident: ref44 doi: 10.1007/s10664-012-9236-6 – ident: ref53 doi: 10.1007/978-3-540-70592-5_28 – ident: ref54 doi: 10.1145/2814270.2814279 – ident: ref13 doi: 10.1145/2884781.2884882 – year: 0 ident: ref26 publication-title: Applied RegressionAnalysis A Research Tool contributor: fullname: john – start-page: 426 year: 2011 ident: ref50 article-title: How annotations are used in Java: An empirical study publication-title: Proc Int Conf Softw Eng Knowl Eng contributor: fullname: rocha – start-page: 9:1 year: 2016 ident: ref21 article-title: Design patterns for annotation-based APIs publication-title: Proc 11th Latin-Amer Conf Pattern Languages Program contributor: fullname: guerra – ident: ref6 doi: 10.1109/ICSE.2017.52 – ident: ref46 doi: 10.1145/1985793.1985860 – year: 2018 ident: ref41 article-title: Annotations – year: 2017 ident: ref27 article-title: Project lombok: Clean, concise java code contributor: fullname: josh – year: 2017 ident: ref40 article-title: Lesson: Annotations – ident: ref15 doi: 10.1145/2642937.2642982 |
SSID | ssj0005775 ssib017516339 ssib053395008 |
Score | 2.4629133 |
Snippet | Annotations have been formally introduced into Java since Java 5. Since then, annotations have been widely used by the Java community for different purposes,... |
SourceID | swepub hal proquest crossref ieee |
SourceType | Open Access Repository Aggregation Database Publisher |
StartPage | 969 |
SubjectTerms | Annotation Annotations Computer Science empirical study Evolution Java Libraries Open source software Programming Languages Runtime Software Engineering software evolution Source code statistical modelling |
Title | Characterizing the Usage, Evolution and Impact of Java Annotations in Practice |
URI | https://ieeexplore.ieee.org/document/8686056 https://www.proquest.com/docview/2526964594/abstract/ https://inria.hal.science/hal-02091516 https://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-296843 |
Volume | 47 |
hasFullText | 1 |
inHoldings | 1 |
isFullTextHit | |
isPrint | |
link | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1bS-QwFD448-SLl1Wx3giLCIIde0nS9HGYHZmVVQQd8S0kTYIidEQ78-Cv96SXWV182LdSQkj7JZwvyXe-A3CshYojlZnQpMKEVDsXCpxHIXJZUWA44FT7846raz6Z0ssH9rACZ8tcGGttLT6zA_9Y3-WbWTH3R2Xnggtk37wHPRElTa7WXzlHlrHOH5MxkXdXklF-fnc79hqufJBgbGS-svmnENR79ALIurLKV5L52Ti0DjYX63DVDbPRmDwP5pUeFO__ODj-73dswFrLOsmwmSabsGLLH7DeVXQg7QLfguvR0r_5HWMaQXZIpl56dkbGi3aSElUa8rtOriQzRy7VQpFhWc6aO_038lSSmzb1ahumF-O70SRsKy6EBRK3KtQuNswZXOaxjWmWFUblLtJIQ4RjLHVJpLS3cEcOoyzFzQXzSSApddo45Fl5ugP9clbaXSAKW1LOI5cq3IIWTruMOuV47GJrVcoDOO1AkC-NsYasNyRRLhEw6QGTLWAB_ESUls28I_Zk-Ef6d8h2cyQtfBEHsOX_9LJV-5MDOOhAle3yfJOJr6vubXRoACcN0F96__V0P5QImXyuHnEQXNB07_vu92E18SqXWgJ5AP3qdW4PkaZU-qienx-jJOLl |
link.rule.ids | 230,315,786,790,802,891,27957,27958,55109 |
linkProvider | IEEE |
linkToHtml | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1dT9swFL3i4wFexoAhsrFhIYSERErS2I7zWLGiAm2FRDvxZtmxLRBSOo20D_z6XeejA7QH3qLIspwcW_fYPvdcgGMtVByp1IQmESak2rlQ4DwKkcuKHMMBp9qfd4zGfDCl1_fsfgXOlrkw1tpKfGY7_rG6yzezfO6Pys4FF8i--SqsY5yPsjpb65-gI01Z65DJmMjaS8koO5_c9b2KK-t0MToyX9v8VRBaffASyKq2ylua-do6tAo3l1swagdaq0yeOvNSd_KXdx6OH_2Sz_Cp4Z2kV0-UbVixxQ5stTUdSLPEd2F8sXRwfsGoRpAfkqkXn52R_qKZpkQVhlxV6ZVk5si1WijSK4pZfav_TB4LctskX32B6WV_cjEIm5oLYY7UrQy1iw1zBhd6bGOaprlRmYs0EhHhGEtcN1Lam7gji1GW4vaC-TSQhDptHDKtLNmDtWJW2H0gCltSziOXKNyE5k67lDrleOxia1XCAzhtQZC_a2sNWW1JokwiYNIDJhvAAjhClJbNvCf2oDeU_h3y3QxpC1_EAez6P71s1fzkAA5aUGWzQJ9l11dW90Y6NICTGug3vf98_NWTCJl8Kh9wEFzQ5Ov_uz-EjcFkNJTDq_HNN9jses1LJYg8gLXyz9x-R9JS6h_VXP0LxCnmOw |
openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Characterizing+the+Usage%2C+Evolution+and+Impact+of+Java+Annotations+in+Practice&rft.jtitle=IEEE+transactions+on+software+engineering&rft.au=Yu%2C+Zhongxing&rft.au=Bai%2C+Chenggang&rft.au=Seinturier%2C+Lionel&rft.au=Monperrus%2C+Martin&rft.date=2021-05-01&rft.issn=0098-5589&rft.eissn=1939-3520&rft.volume=47&rft.issue=5&rft.spage=969&rft.epage=986&rft_id=info:doi/10.1109%2FTSE.2019.2910516&rft.externalDBID=n%2Fa&rft.externalDocID=10_1109_TSE_2019_2910516 |
thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0098-5589&client=summon |
thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0098-5589&client=summon |
thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0098-5589&client=summon |