基于数据流分析和文本分析的Java项目代码与注释不一致性检测

来源 :南京大学 | 被引量 : 0次 | 上传用户:kxsaqq
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
作为软件系统中的重要组成部分,注释对于程序理解和软件维护有着重大意义。软件开发过程中,项目代码与其注释往往存在不一致的问题,这在增加程序理解难度的同时,也大大降低了软件的可维护性。现有工作大多利用程序分析和文本分析技术来检测代码与注释参数约束的不一致性。然而,由于现有使用程序分析进行检测的方法大多仅基于AST,往往存在缺失控制流和数据流信息的问题,而文本分析技术则存在参数约束识别率低的问题;此外,现有工具没有考虑代码与注释描述内容不一致情况的检测。本文提出一种基于数据流分析和文本分析技术进行项目代码与注释不一致检测方法。该方法不仅能准确检测Java方法中代码与注释中4类参数约束的不一致问题,还对代码与注释描述内容的不一致性进行检测。论文的主要工作包括:(1)提出一种代码与注释参数约束的不一致性检测方法,设计实验了工具原型DCCI(Detecting Code Comment Inconsistency)。首先,通过对Java字节码文件进行静态数据流分析,全面提取代码中的4类参数约束,包括:参数不允许空值约束、参数允许空值约束、参数范围限制约束和参数类型限制约束。通过构建高精度方法调用图来分析方法调用引起的参数约束传递,最终整合代码中的参数约束;接着,在文本分析阶段,基于依存分析和启发式规则,对代码注释进行文本分析,提取4类参数约束;最后,对代码和注释中参数约束的逻辑表达式进行不一致性判定,从而检测出代码与注释参数约束的不一致问题。为评估代码与注释中参数约束不一致性检测方法的有效性,在7个应用广泛的Java项目上进行了实验,DCCI检测出2412条不一致问题,其中真实的不一致问题为2030条,占84.16%;而现有工具DRONE只检测出2183条不一致问题,其中真实的不一致问题为1747条,占80.02%。(2)提出一种代码与注释描述不一致性检测方法,包括代码与注释预处理、词嵌入、基于Bi-LSTM和注意力机制的Siamese网络模型、内容不一致判定部分。首先,使用静态程序分析技术,将Java代码解析为抽象语法树AST,通过遍历AST定位并提取相关节点内容;接着利用预训练的词嵌入模型,将代码token序列和注释token序列映射到同一个语义空间,表征为固定长度的向量;接着,Siamese网络模型利用两个结构完全相同的子模型,分别处理代码与注释,使用曼哈顿距离来度量代码与注释的相似度;最后通过设定阈值来检测代码与注释描述内容的不一致问题。为评估代码与注释描述内容不一致性检测方法的有效性,选用公开数据集进行实验,随机选取300个样本(约10%)作为测试集,其余作为训练集训练模型。方法在测试集上取得了89.42%的精度,相比现有方法SVM的精度(82.46%)有较大提升。
其他文献
学位
灌浆构件通过向构件内注入灌浆料提升结构整体性,满足结构力学性能要求,是一种在桥梁建筑领域应用广泛的构件,灌浆套筒构件、钢管混凝土构件是两种典型的灌浆构件。灌浆构件在结构中往往起到重要作用,其内部灌浆料的灌浆质量是满足结构安全性、耐久性、适用性的关键。由于灌浆构件注浆过程的隐蔽性与复杂性使得注浆完成后可能存在脱空、蜂窝等缺陷,因此需要对灌浆构件内部灌浆质量进行评定。声波法是应用广泛的无损检测方法,本
学位
学位
目前,高校的数据库课程以及研究生入学考试希望考核学生实际编写SQL语句的能力,评测其实机操作的能力。与笔试的考核方式不同,实机操作需要实际运行学生所编写的SQL语句,为此,需要一个可以供学生在线编写SQL来答题的考试系统,同时在学生提交自己编写的SQL后运行并给出结果,并以通过的题目数量来作为学生考试的成绩。基于以上背景,本文提出并设计和实现了一个在线SQL考试系统,并介绍了在线SQL考试系统的题
随着深度学习领域的不断成熟,互联网公司开始在各个业务领域使用深度学习建模方法来分析用户数据并为用户提供服务。但是,训练好的深度学习模型需要经过一系列复杂的工程化处理流程才能应用到生产环境中。由于互联网产品的业务需要,其使用的深度学习模型需要不断变更,而每次变更都需要重新将模型进行工程化处理。因此,模型工程化需求越来越多,仅凭人力已经难以应对如此庞大的工作量。本文以国内某大型互联网公司的模型工程化需
为研究不同避障模式下深海采矿整体系统动力学行为,基于虚拟样机技术建立2.5km硬管+软管水力输送系统虚拟样机模型,提出两种可能的避障模式(垂直、水平避障模式),分析在这两种避障模式下、软管起拱数量、避障速度、避障大小以及中间仓质量对模型动力学行为的影响,并进行模拟实验研究。主要研究内容及成果如下:(1)两种避障模式下,软管呈双拱时系统各重要连接点的受力大小和走向大致一样,但双拱状态下系统在避障时的
学位
建筑外墙作为建筑围护的一部分,不仅表现了材料的结构和形式,而且也是社会文化环境的体现。外墙为建筑物提供保温隔热、遮阳遮雨、通风隔声等基本功能,还提供了基本的美学舒适度。传统单层墙很难满足现代建筑日益增强的保温需求,逐渐发展的双层空腔墙解决保温问题之后,又带来了空腔排水通风等一系列问题,那么如何更好地解决墙体排水通风以及耐久性的问题?雨幕系统外墙以这些问题为基础进行思考设计,不断更新着更高效能的墙体
学位