arrow
返回

BERT4Anno: An annotation misuse detection method for Java

delete2025-05-21
delete0
PRE
AI
J
Jingbo Yang
季新 封面图
季新 (Xin Ji)
W
Wenjun Wu
X
Xingchuang Liao
K
Kui Zhang
L
L. Y. Dong
项
项楠 (Nan Xiang)
J
Jian Ren *
DOI:10.1016/j.infsof.2025.107763delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
上下文:开发者利用Java注解来实现创建对象和操作数据库等功能。然而,掌握注解具有挑战性,误用注解可能导致应用程序崩溃。尽管现有技术试图解决此问题,但它们既未提供关于Java注解误用类型的结论,也未利用项目级信息,这导致检测注解误用的效率低下。目标:总结Java注解误用类型,并提供一种更高效的检测误用注解的方法。方法:首先,为了对Java注解误用进行分类,我们进行了一项实证研究,并整理了来自Stack Overflow的321个注解误用问题。其次,为了更好地检测这些误用,我们提出了一种基于BERT的方法BERT4Anno,该方法考虑了项目结构和资源配置等因素,而现有技术通常忽略这些因素。在BERT4Anno中,设计了一种新颖的注解使用项目表示(AUPR)技术,以利用源代码、配置和项目结构之间的互连信息。此外,通过微调BERT,设计了一个基于AUPR的命名实体识别(ANER)任务,以学习注解使用知识。利用这些知识,微调后的模型可以检测误用的注解。最后,为了评估我们提出的方法,使用了两个主要来自GitHub的数据集进行实验,这些数据集包含404个具有注解误用实例的Java项目/文件。结果:基于整理的问题如何违反正确的注解使用知识,将Java注解误用分为14种类型。对比实验表明,在精确度、召回率和F1分数方面,我们的方法优于现有技术的基线。同时,我们的可视化技术为模型表现优异的内在机制提供了有洞察力的解释。结论:通过利用项目级信息,我们提出的方法可以预测注解的适当类型和位置,并随后识别误用的注解,从而提高检测效率。
Keyword:
Java annotation
Stack overflow
Misuse detection
BERT

期刊

Information and Software Technology 封面图
Information and Software Technology
IF:
4.3
论文数:
3.8K
被引数:
7.7K

机构

S
state grid gansu power supply co
学者数:
3
论文数: 1
被引数: 0
引用论文

引用论文

How do annotations affect Java code readability?注释如何影响Java代码的可读性?
err2024-05-03
err0
PREAI
errGuerra, Eduardo; Gomes, Everaldo; Ferreira, Jeferson; Wiese, Igor; Lima, Phyllipe; Gerosa, Marco; Meirelles, Paulo
err分享
err收藏
Adoption and use of Java generics采用和使用Java泛型
err2012-12-06
err34
PREAI
errParnin, Chris; Bird, Christian; Murphy-Hill, Emerson
err分享
err收藏
On the Definition of Microservice Bad Smells
err2018-05-01
err145
PREAI
errTaibi, Davide; Lenarduzzi, Valentina
err分享
err收藏
The Kappa Statistic: A Second Look
err2004-03-01
err0
errOAAI
errBarbara Di Eugenio; Michael Glass
err分享
err收藏
A Systematic Evaluation of Static API-Misuse Detectors静态API误用检测器的系统评估
err2019-12-01
err73
errOAAI
errAmann, Sven; Hoan Anh Nguyen; Nadi, Sarah; Nguyen, Tien N.; Mezini, Mira
err分享
err收藏
Characterizing the Usage, Evolution and Impact of Java Annotations in Practice
err2021-05-01
err15
errOAAI
errYu, Zhongxing; Bai, Chenggang; Seinturier, Lionel; Monperrus, Martin
err分享
err收藏
CrySL: An Extensible Approach to Validating the Correct Usage of Cryptographic APIs
err2021-11-01
err21
errOAAI
errKrueger, Stefan; Spath, Johannes; Ali, Karim; Bodden, Eric; Mezini, Mira
err分享
err收藏
Automated API Property Inference Techniques自动化API属性推理技术
err2013-05-01
err144
errOAAI
errRobillard, Martin P.; Bodden, Eric; Kawrykow, David; Mezini, Mira; Ratchford, Tristan
err分享
err收藏
学者 查看更多内容