关键词:
死代码
深度学习
文本信息
代码度量
特征提取
摘要:
死代码是一种不良代码异味,会导致软件质量逐渐衰退。传统的死代码检测方法主要依赖于静态分析技术、代码结构的度量以及启发式规则,这些方法在开发者之间存在高度差异,且对源代码文本信息关注较少,忽略代码在实际执行过程中的情况,存在较大的局限性。针对以上问题,设计一种新型死代码检测方法,并采用基于卷积神经网络和长短期记忆相结合的技术,其主要思路是将代码文本信息和代码度量信息相结合,提高死代码检测的准确性。首先使用DUM-Tool等工具并结合人工以确定应用程序中的死代码实例进行死代码标记,以深度优先遍历抽象语法树获取源代码的文本信息,将标签值与文本信息相匹配,再使用CK代码度量提取工具获取源代码的代码度量信息。然后通过Word2Vec将文本信息转化为词向量,使用卷积神经网络提取代码度量信息的特征,将两者拼接得到死代码检测的数据集。最后使用长短期记忆网络对数据集进行训练,再通过Sigmoid函数进行分类。实验结果表明,将代码文本信息和度量信息相结合可以有效实现死代码的检测,与传统的检测方法相比,平均F1值最高提升12.58百分点。