典型文献
基于预训练模型和多层次信息的代码坏味检测方法
文献摘要:
目前已有的代码坏味检测方法仅依赖于代码结构信息和启发式规则, 对嵌入在不同层次代码中的语义信息关注不够, 而且现有的代码坏味检测方法准确率还有进一步提升的空间. 针对该问题, 提出一种基于预训练模型和多层次信息的代码坏味检测方法DeepSmell, 首先采用静态分析工具提取程序中的代码坏味实例和多层次代码度量信息, 并对代码坏味实例进行标记; 然后通过抽象语法树解析并获取源代码中与代码坏味相关的层次信息, 将其中的文本信息与度量信息相结合生成数据样本; 最后使用BERT预训练模型将文本信息转化为词向量, 应用GRU-LSTM模型获取层次信息之间潜在的语义关系, 并结合CNN模型与注意力机制检测代码坏味. 在实验中, 选取JUnit、Xalan和SPECjbb2005等24个大型实际应用程序构建训练集和测试集, 并对特征依恋、长方法、数据类和上帝类等4种代码坏味进行检测. 实验结果表明, DeepSmell与目前已有的检测方法相比在平均查全率和F1值上分别提高了9.3%和10.44%, 同时保持了较高的查准率, DeepSmell可以有效地实现代码坏味检测.
文献关键词:
代码坏味;深度学习;预训练模型;抽象语法树;多层次信息
中图分类号:
作者姓名:
张杨;东春浩;刘辉;葛楚妍
作者机构:
河北科技大学 信息科学与工程学院, 河北 石家庄 050018;北京理工大学 计算机学院, 北京100081
文献出处:
引用格式:
[1]张杨;东春浩;刘辉;葛楚妍-.基于预训练模型和多层次信息的代码坏味检测方法)[J].软件学报,2022(05):1551-1568
A类:
代码坏味,DeepSmell,JUnit,Xalan,SPECjbb2005,上帝类
B类:
预训练模型,多层次信息,结构信息,启发式规则,不同层次,语义信息,信息关注,静态分析,代码度量,抽象语法树,源代码,文本信息,BERT,词向量,GRU,语义关系,注意力机制,应用程序,程序构建,训练集,测试集,依恋,查全率,查准率
AB值:
0.221239
相似文献
机标中图分类号,由域田数据科技根据网络公开资料自动分析生成,仅供学习研究参考。