[发明专利]一种基于深度学习的面向对象程序方法命名异味检测方法在审
申请号: | 202210059016.4 | 申请日: | 2022-01-18 |
公开(公告)号: | CN114398076A | 公开(公告)日: | 2022-04-26 |
发明(设计)人: | 吴小囡;苏航;高红雨 | 申请(专利权)人: | 北京工业大学 |
主分类号: | G06F8/72 | 分类号: | G06F8/72;G06F8/41;G06N3/04;G06N3/08 |
代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 沈波 |
地址: | 100124 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 深度 学习 面向 对象 程序 方法 命名 异味 检测 | ||
本发明公开了一种基于深度学习的面向对象程序方法命名异味检测方法,将方法名作为方法体和方法上下文信息的“翻译”序列,即从输入的方法体和方法上下文信息序列中翻译出合适的方法名以检测方法命名是否有异味。发明具体分为五个步骤,分别是初始化、信息提取、预训练、预处理和方法名预测模型构建。本发明综合考虑了方法名所依赖的上下文信息和方法体信息,并根据两者结构特点应用了不同的处理方式。此外在模型的设计上也综合考虑了输入信息结构的特点。
技术领域
本发明涉及计算机软件代码质量分析领域,具体涉及一种基于深度学习的方法命名异味检测。
背景技术
在软件开发的过程中,开发人员通常将注意力放在代码能否成功运行上,经常会忽视可能会引起软件质量问题的一类代码。代码中的任何可能导致深层次问题的症状被称作代码异味。几乎现有的代码异味都没有被很好的解决,其中就包含困惑的名称,即有关标识符命名异味。命名异味主要指的是代码中的标识符如类名、方法名和变量名中出现的令人困惑或者模糊的名称。此类命名的特点是无法清晰明了的概括修饰变量的作用。据相关研究发现一个软件系统源代码中70%都由标识符组成,且在实践中多数开发人员往往忽视对文档的编写,而不得不需要阅读源码或者注释来理解代码。一个好的标识符能够减轻程序员在软件维护方面的负担,减少软件后期维护的成本。因此代码中标识符的正确命名对于之后软件的升级维护都有着一定的促进作用。
目前,针对现有的代码命名异味,研究者们提出了众多的处理方法,传统的方法如基于逻辑/规则、基于上下文/反馈只能简单的从其语法结构判断或者采用半自动识别命名异味。随着深度学习应用到该领域,自动化检测命名的语义信息成为了可能。基于深度学习的方法区别集中在输入信息以及模型上。在输入信息中,几乎所有的方法都考虑到方法体。一部分方法会尝试加入新的信息,比如类名,类中成员变量名称等,也都取得了较好的结果。但是综合来看,这部分方法所添加的信息比较零碎,都没有充分有效利用方法体之外的附加信息。在输入方法体的结构上,大多数的方法采用了保留方法体原有顺序的策略,忽略了代码中的结构信息。在模型的设计上,现有的深度学习模型在最终效果上提升的空间还很大。综上所述,虽然现有的深度学习方法在各个方面较之过去有了一定的提升,但是其效率还有很大的提升空间。为了更为准确的检测出方法命名中的异味,本发明提出了一种基于TBCNN+双向LSTM神经网络模型的面向对象程序方法的命名异味检测。
发明内容
为了提高方法命名异味检测的准确度,本发明提出了一种基于TBCNN+双向LSTM神经网络模型的面向对象程序方法的命名异味检测。该方法可以通过方法名的预测提高识别的准确度。
为了实现本发明的目的,采用的技术方案概述如下:
一种基于TBCNN+双向LSTM神经网络模型的面向对象程序方法的命名异味检测方法,其输入为代码数据集,输出为是否包含异味结果。其特征主要包括以下步骤:
步骤1:初始化
初始化本方法需要的参数,如下:
Ml:方法上下文长度的最大值,默认为50,当长度大于max_len时,做截断处理;
Ms:一个方法的抽象语法树所包含子树的最大值,默认为50;
Mn:子树中所包含的节点数量的最大值,默认值为70;
Mc:子树中一个节点所包含的孩子节点数量的最大值,默认为10;
Bs:一次读入数据大小,即批处理大小,默认128;
Nf:表示特征向量的维度,默认100;
Es:训练性能不再提升时,继续几轮后停止训练,默认值5;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210059016.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种提高钢板凸型瓢曲的矫直方法
- 下一篇:一种内窥镜节育避孕装置