返回
BERT4Anno: An annotation misuse detection method for Java
DOI:10.1016/j.infsof.2025.107763.png)
摘要
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
期刊
IF:
4.3
论文数:
3.8K
被引数:
7.7K

