咨询与建议

看过本文的还看了

相关文献

该作者的其他文献

文献详情 >基于图表示学习的代码异味强度排序模型 收藏
基于图表示学习的代码异味强度排序模型

基于图表示学习的代码异味强度排序模型

作     者:王书涵 

作者单位:上海师范大学 

学位级别:硕士

导师姓名:陈军华

授予年度:2023年

学科分类:08[工学] 0835[工学-软件工程] 081202[工学-计算机软件与理论] 0812[工学-计算机科学与技术(可授工学、理学学位)] 

主      题:代码异味 图表示学习 无监督学习 机器学习 

摘      要:软件结构设计不佳的症状可通过正确的重构步骤解决。多数代码异味检测工具仅输出检测结果,忽略了结合开发者的需求对检测出的异味按照其强度进行排序,从而将判断异味重构优先级的耗时过程留给了开发人员。部分异味排序模型仅关注代码度量等结构特征,而代码间的层次结构及关联关系等语义信息在较多软件工程研究中被证明有效,却在代码异味排序领域少被研究。本文根据类级代码异味特征以及图结构可对对象及其相关关系建模的特性,考虑开发人员对于异味强度的主观感知,提出了基于图表示学习方法的代码异味强度排序模型CSSRM(Code Smell Severity Ranking Model,CSSRM),为开发人员的重构优先级决策提供参考。本文模型以存在异味的类为节点、类间相关语义关系为边,构建语义结构图,同时考虑代码的结构特性,将类的代码度量值作为节点的属性特征,实现对代码间复杂关系的进一步刻画。通过三种图表示学习方法学习语义结构图的节点嵌入表示,同时将项目开发者感知到的异味强度作为标签值,结合下游机器学习模型实现对异味的强度排序。本文对比了三种图嵌入表示方法的性能差异,针对4种代码异味,在7个Java开源系统上进行实验,结果表明效果最佳的模型相较于基线方法,其F1值最高提升了10.35%,验证了模型的有效性。同时,本文探究了不同嵌入维度以及不同分类器对模型效果的影响。以三种嵌入表示方法中性能较优的CSSRMSM为基础,针对4类代码异味,对比采用不同嵌入维度对模型性能带来的影响,发现当嵌入维度取32时模型整体效果相对更佳;并比较了模型在4类机器学习分类器上的性能表现,结果显示随机森林对应的模型具有最优效果。

读者评论 与其他读者分享你的观点

用户名:未登录
我的评分