期刊文献+
共找到48篇文章
< 1 2 3 >
每页显示 20 50 100
检测JavaScript类的内聚耦合Code Smell 被引量:4
1
作者 黄子杰 陈军华 高建华 《软件学报》 EI CSCD 北大核心 2021年第8期2505-2521,共17页
Code Smell是软件程序中存在不良设计和不良实现的征兆.正确地检测和识别Code Smell可以指导软件重构,提高软件的可用性和可靠性.通过Code Smell的度量指标,可以量化软件的设计问题.JavaScript已成为最常用的编程语言之一,类是JavaScrip... Code Smell是软件程序中存在不良设计和不良实现的征兆.正确地检测和识别Code Smell可以指导软件重构,提高软件的可用性和可靠性.通过Code Smell的度量指标,可以量化软件的设计问题.JavaScript已成为最常用的编程语言之一,类是JavaScript的设计模式,优秀类的设计体现为高内聚和低耦合.现有关于JavaScript内聚耦合的Code Smell研究均在微观的层面,即函数和语句上进行.它们可以提供程序实现的重构建议,但无法分析内聚耦合相关的软件系统设计问题.针对FE、DC和Blob这3种类的内聚耦合Code Smell,提出一种JavaScript类的内聚耦合Code Smell检测方法JS4C.该方法基于静态分析,同时适用于客户端和服务端程序.它通过遍历软件系统中所有的类,利用源程序的文本相似度特征和结构特征,识别Code Smell并检测其强度.在结构特征检测中,JS4C使用了经扩展的对象类型推断及非严格的耦合分散度度量法NSCDISP,有效地降低了解释型语言的静态分析过程中,类型信息缺失对检测产生的影响.实验通过对6个开源项目的分析表明,JS4C对内聚耦合设计问题有良好的检测效果. 展开更多
关键词 code smell JAVASCRIPT 内聚 耦合
下载PDF
Code Smell Detection Using Whale Optimization Algorithm
2
作者 Moatasem M.Draz Marwa S.Farhan +1 位作者 Sarah N.Abdulkader M.G.Gafar 《Computers, Materials & Continua》 SCIE EI 2021年第8期1919-1935,共17页
Software systems have been employed in many fields as a means to reduce human efforts;consequently,stakeholders are interested in more updates of their capabilities.Code smells arise as one of the obstacles in the sof... Software systems have been employed in many fields as a means to reduce human efforts;consequently,stakeholders are interested in more updates of their capabilities.Code smells arise as one of the obstacles in the software industry.They are characteristics of software source code that indicate a deeper problem in design.These smells appear not only in the design but also in software implementation.Code smells introduce bugs,affect software maintainability,and lead to higher maintenance costs.Uncovering code smells can be formulated as an optimization problem of finding the best detection rules.Although researchers have recommended different techniques to improve the accuracy of code smell detection,these methods are still unstable and need to be improved.Previous research has sought only to discover a few at a time(three or five types)and did not set rules for detecting their types.Our research improves code smell detection by applying a search-based technique;we use the Whale Optimization Algorithm as a classifier to find ideal detection rules.Applying this algorithm,the Fisher criterion is utilized as a fitness function to maximize the between-class distance over the withinclass variance.The proposed framework adopts if-then detection rules during the software development life cycle.Those rules identify the types for both medium and large projects.Experiments are conducted on five open-source software projects to discover nine smell types that mostly appear in codes.The proposed detection framework has an average of 94.24%precision and 93.4%recall.These accurate values are better than other search-based algorithms of the same field.The proposed framework improves code smell detection,which increases software quality while minimizing maintenance effort,time,and cost.Additionally,the resulting classification rules are analyzed to find the software metrics that differentiate the nine code smells. 展开更多
关键词 Software engineering intelligence search-based software engineering code smell detection software metrics whale optimization algorithm fisher criterion
下载PDF
Code Smell视角下分层Web应用失血及充血现象的量化分析 被引量:2
3
作者 黄子杰 陈军华 高建华 《电子学报》 EI CAS CSCD 北大核心 2020年第4期772-780,共9页
分层Web应用的领域层由领域模型构成.仅存储数据且不实现行为的领域模型被称作失血领域模型,其状态和数据由非领域层中的类维护,造成后者的充血现象.失血和充血现象损害了Web应用的可维护性,然而,由于缺乏量化分析和研究,其论据多基于... 分层Web应用的领域层由领域模型构成.仅存储数据且不实现行为的领域模型被称作失血领域模型,其状态和数据由非领域层中的类维护,造成后者的充血现象.失血和充血现象损害了Web应用的可维护性,然而,由于缺乏量化分析和研究,其论据多基于主观经验得出.本文度量三种Code Smell(Feature Envy、Blob和Data Class)的强度,将它们作为衡量失血和充血现象的标准,对现象进行量化分析,进而得出它们之间的相关性.本文对一个公开数据集的91个Java Web项目及10个不同领域的开源Java Web应用的多个版本进行了实验,实验发现至少有75%的项目受领域层失血和服务层充血现象的影响,这些现象极少被解决或减弱,两者的强度在不同类间存在相关性,且两者强度的增量在同一软件项目的不同版本间亦存在相关性. 展开更多
关键词 软件可维护性 WEB应用 分层结构 code smell 领域建模
下载PDF
Predicting Code Smells and Analysis of Predictions: Using Machine Learning Techniques and Software Metrics 被引量:2
4
作者 Mohammad YMhawish Manjari Gupta 《Journal of Computer Science & Technology》 SCIE EI CSCD 2020年第6期1428-1445,共18页
Code smell detection is essential to improve software quality, enhancing software maintainability, and decrease the risk of faults and failures in the software system. In this paper, we proposed a code smell predictio... Code smell detection is essential to improve software quality, enhancing software maintainability, and decrease the risk of faults and failures in the software system. In this paper, we proposed a code smell prediction approach based on machine learning techniques and software metrics. The local interpretable model-agnostic explanations (LIME) algorithm was further used to explain the machine learning model's predictions and interpretability. The datasets obtained from Fontana et al. were reformed and used to build binary-label and multi-label datasets. The results of 10-fold cross-validation show that the performance of tree-based algorithms (mainly Random Forest) is higher compared with kernel-based and network-based algorithms. The genetic algorithm based feature selection methods enhance the accuracy of these machine learning algorithms by selecting the most relevant features in each dataset. Moreover, the parameter optimization techniques based on the grid search algorithm significantly enhance the accuracy of all these algorithms. Finally, machine learning techniques have high potential in predicting the code smells, which contribute to detect these smells and enhance the software's quality. 展开更多
关键词 code smell code smell detection feature selection prediction explanation parameter optimization
原文传递
Code Smell Detection Based on Multi-dimensional Software Data and Complex Networks
5
作者 Heng Tong Cheng Zhang Futian Wang 《国际计算机前沿大会会议论文集》 2020年第2期490-505,共16页
Code smell is the product of improper design and operation,which may be introduced in many situations.It will cause serious problems for further software development and maintenance.Currently,most code smell detection... Code smell is the product of improper design and operation,which may be introduced in many situations.It will cause serious problems for further software development and maintenance.Currently,most code smell detection methods detect through a single type of software data.There are restrictions on detecting code smells with complex definitions and characteristics.In this paper,an approach of applying multi-dimensional software data is proposed.A complex network was built through structural data and historical version data,and code smell instances were determined by searching the network.We designed two smells detection strategies were designed and evaluated them in four open source projects.The results demonstrate that the proposed method has 23%and 15%higher F-measures on Shotgun Surgery and Parallel Inheritance Hierarchy than the existing mainstream detection ways.The code smell detection based on multi-dimensional software data and complex network is effective,and this method of processing multidimensional software data is also applicable for data-driven software research. 展开更多
关键词 code smell Detection technique Software refactoring Software maintenance
原文传递
基于预训练模型与BiLSTM-CNN的多标签代码坏味检测方法
6
作者 刘海洋 张杨 +1 位作者 田泉泉 王晓红 《河北工业科技》 CAS 2024年第5期330-335,共6页
为了提高多标签代码坏味检测的准确率,提出一种基于预训练模型与BiLSTM-CNN的多标签代码坏味检测方法DMSmell(deep multi-smell)。首先,利用静态分析工具获取源代码中的文本信息和结构度量信息,并采用2种检测规则对代码坏味实例进行标记... 为了提高多标签代码坏味检测的准确率,提出一种基于预训练模型与BiLSTM-CNN的多标签代码坏味检测方法DMSmell(deep multi-smell)。首先,利用静态分析工具获取源代码中的文本信息和结构度量信息,并采用2种检测规则对代码坏味实例进行标记;其次,利用CodeBERT预训练模型生成文本信息对应的词向量,并分别采用BiLSTM和CNN对词向量和结构度量信息进行深度特征提取;最后,结合注意力机制和多层感知机,完成多标签代码坏味的检测,并对DMSmell方法进行了性能评估。结果表明:DMSmell方法在一定程度上提高了多标签代码坏味检测的准确率,与基于分类器链的方法相比,精确匹配率提高了1.36个百分点,微查全率提高了2.45个百分点,微F1提高了1.1个百分点。这表明,将文本信息与结构度量信息相结合,并利用深度学习技术进行特征提取和分类,可以有效提高代码坏味检测的准确性,为多标签代码坏味检测的研究和应用提供重要的参考。 展开更多
关键词 软件工程 代码坏味 预训练模型 多标签分类 深度学习
下载PDF
Bagging异构集成的代码异味检测与重构优先级划分
7
作者 吴海涛 蔡咏琦 高建华 《计算机工程与应用》 CSCD 北大核心 2024年第3期138-147,共10页
代码异味是不良的设计和代码实现的症状,可能阻碍代码理解、增加代码更改和出错的可能性。以前的研究专注于单一模型在代码异味上的检测,并且无法为开发人员提供重构建议。针对上述问题,提出一种基于Bagging异构集成模型的代码异味检测... 代码异味是不良的设计和代码实现的症状,可能阻碍代码理解、增加代码更改和出错的可能性。以前的研究专注于单一模型在代码异味上的检测,并且无法为开发人员提供重构建议。针对上述问题,提出一种基于Bagging异构集成模型的代码异味检测与重构优先级划分方法,该方法利用分类器间的异质性,通过F1集成策略来检测Complex Class、Long Method、Spaghetti Code等三种代码异味,并将模型输出的异味概率转化为可能性分布后,为开发人员提供重构意见。实验在6个开源系统的32个版本上验证、评估:(1)基分类器的稳定性以及与代码异味的关系;(2)Bagging异构集成模型检测上述代码异味的性能;(3)将异味概率转化为可能性分布并作为重构优先级的有效性。实验结果表明,最佳基分类器因代码异味类型而异。同时,Bagging异构集成模型相较于基分类器,F1提高0.06~40.51个百分点,AUC提高0.45~28.37个百分点。最后将Bagging异构集成模型的重构优先级与6名受访者的重构优先级进行Kappa一致性检验,两者具有高度一致性。 展开更多
关键词 代码异味 机器学习 集成学习 软件重构 可能性分布
下载PDF
机器学习在Android代码异味检测中的应用
8
作者 孙梦琪 边奕心 《长江信息通信》 2024年第2期138-140,144,共4页
由于现有代码异味检测方法存在多方面的限制,无法准确高效的检测Android代码异味共存,提出基于机器学习的Android代码异味共存检测方法。首先提出并实现工具ASSD得到分离好的正负样本集,提取源代码中的文本信息作为机器学习分类器的输入... 由于现有代码异味检测方法存在多方面的限制,无法准确高效的检测Android代码异味共存,提出基于机器学习的Android代码异味共存检测方法。首先提出并实现工具ASSD得到分离好的正负样本集,提取源代码中的文本信息作为机器学习分类器的输入,从而实现机器学习检测Android代码异味共存。设计对比实验,实验结果表明机器学习可以检测Android代码异味共存,并且检测效果较现有基于静态程序分析的检测方法有较大提升,其中随机森林模型效果最好,其F1值提升了22%。 展开更多
关键词 机器学习 代码异味共存 Android代码异味
下载PDF
基于机器学习的无低内存解析器异味检测方法
9
作者 邢代鑫 边奕心 《长江信息通信》 2024年第1期139-142,共4页
代码异味是指影响代码维护过程并降低软件质量的糟糕代码设计或实现。因此,代码异味检测在软件重构中非常重要。文章使用五种传统机器学习模型,对Android特有代码异味进行检测。为了获取机器学习模型所需的大量样本数据,文章构建了一个J... 代码异味是指影响代码维护过程并降低软件质量的糟糕代码设计或实现。因此,代码异味检测在软件重构中非常重要。文章使用五种传统机器学习模型,对Android特有代码异味进行检测。为了获取机器学习模型所需的大量样本数据,文章构建了一个Java代码异味数据集,该数据集包含14,000个样本,并从源代码中提取46个特征。此外,还使用开源Android应用程序进行实验验证。结果表明,随机森林是检测无低内存解析器异味中性能最好的模型,实现了最高的F1值0.928。 展开更多
关键词 Android代码异味 机器学习 异味检测
下载PDF
基于集成学习的忽略成员的方法检测策略
10
作者 边奕心 王露颖 +1 位作者 赵松 朱晓 《计算机工程与设计》 北大核心 2023年第9期2679-2686,共8页
忽略成员的方法是一种Android特有代码异味,为检测这种异味,提出一种基于集成学习的检测策略。将代码度量与文本信息相融合作为特征集;将融合后的特征集输入所构建的Stacking集成学习模型中进行异味检测。为快速、准确获得机器学习所需... 忽略成员的方法是一种Android特有代码异味,为检测这种异味,提出一种基于集成学习的检测策略。将代码度量与文本信息相融合作为特征集;将融合后的特征集输入所构建的Stacking集成学习模型中进行异味检测。为快速、准确获得机器学习所需的大量标签数据,提出一种基于Android项目自动构建正负样本的方法。选用开源Android数据集对所提出的方法进行实验验证,实验结果表明,较已有检测方法,该策略能够提高异味检测的精确度。 展开更多
关键词 代码异味 安卓特有代码异味 忽略成员的方法 文本信息 特征融合 机器学习 集成学习
下载PDF
代码坏味研究综述 被引量:3
11
作者 田迎晨 李柯君 +4 位作者 王太明 焦青青 李光杰 张宇霞 刘辉 《软件学报》 EI CSCD 北大核心 2023年第1期150-170,共21页
代码坏味(code smells)是低质量的急需重构的代码片段.代码坏味是软件工程领域的一个研究热点,并且相关研究方向众多、时间跨度大、研究成果丰富.为梳理相关研究思路和研究成果、分析研究热点并预判未来研究方向,对1990年至2020年6月间... 代码坏味(code smells)是低质量的急需重构的代码片段.代码坏味是软件工程领域的一个研究热点,并且相关研究方向众多、时间跨度大、研究成果丰富.为梳理相关研究思路和研究成果、分析研究热点并预判未来研究方向,对1990年至2020年6月间发表的代码坏味相关的339篇论文进行了系统地分析和归类,对代码坏味的发展趋势进行了分析与统计,量化揭示了相关研究的主流与热点.揭示了学术界关注的关键代码坏味,并研究了工业界与学术界的关注点的差异及其影响. 展开更多
关键词 代码坏味 软件重构 软件质量 度量 缺陷
下载PDF
基于图表示学习的代码异味强度排序模型
12
作者 王书涵 陈军华 高建华 《小型微型计算机系统》 CSCD 北大核心 2023年第12期2825-2831,共7页
代码异味的存在使得软件系统难以开发和维护.现有的代码异味检测器通常仅输出结果,忽略了结合开发者的需求对检测出的异味按照其强度进行排序,而将判断异味重构优先级的耗时过程留给了开发人员.因此,本文提出了基于图表示学习的代码异... 代码异味的存在使得软件系统难以开发和维护.现有的代码异味检测器通常仅输出结果,忽略了结合开发者的需求对检测出的异味按照其强度进行排序,而将判断异味重构优先级的耗时过程留给了开发人员.因此,本文提出了基于图表示学习的代码异味强度排序模型,为开发人员的重构优先级决策提供参考.该模型利用抽象语法树与代码间的依赖调用关系构建语义结构图,采用无监督的图表示学习方法将语义结构图与代码度量信息结合生成嵌入表示,利用机器学习方法,根据开发人员感知的异味严重性程度实现代码异味的强度排序.本文将模型应用于4种常见的代码异味,即Blob、Complex Class、Spaghetti Code与Shotgun Surgery.通过实验表明,本文提出的代码异味强度排序模型在大型开源项目上具有科学性与有效性,相较于基线方法,F1值最高提升了10.35%. 展开更多
关键词 代码异味强度 图表示学习 无监督学习 机器学习
下载PDF
气味在多感官游戏体验设计中的研究与应用 被引量:1
13
作者 冯安然 李万军 +2 位作者 王紫怡 周梦烨 张蔚茹 《包装工程》 CAS 北大核心 2023年第24期431-439,共9页
目的 面向游戏体验设计领域多感官研究的发展需要,明确气味体验在游戏设计中的必要性与迫切性,分析现有研究的热点与不足,探讨未来发展趋势。方法 首先,使用文献综述与案例分析,从国内外现有多感官游戏体验研究的设计方法、交互技术,以... 目的 面向游戏体验设计领域多感官研究的发展需要,明确气味体验在游戏设计中的必要性与迫切性,分析现有研究的热点与不足,探讨未来发展趋势。方法 首先,使用文献综述与案例分析,从国内外现有多感官游戏体验研究的设计方法、交互技术,以及应用场景三个方面进行简述,明确气味在多感官游戏体验设计中的发展与不足;其次,从方法融合、技术突破、创意设计三方面对气味在多感官游戏体验设计中的研究进行文献整理与归纳,析出高被引文献以便后续进行深入分析与解读;最后,对高被引文献全文文本中的相关主题知识碎片进行知识元编码,并使用桑基图(Sankey Diagram)体现数据流的关系和权重。结论 本研究聚焦气味在多感官游戏体验设计研究中的分析与探索,虽面临挑战,但气味仍有望成为丰富多感官游戏体验的关键元素,赋予玩家沉浸式、情感化、个性化体验,创造新的游戏体验设计策略。 展开更多
关键词 气味 多感官游戏体验设计 知识元编码
下载PDF
一种基于分层抽象语法树的Android代码异味检测方法
14
作者 黄雅菁 《上海师范大学学报(自然科学版)》 2023年第4期418-423,共6页
Android应用程序中存在大量的代码异味,现有的Android代码异味检测工具效率较低.为此,将抽象语法树(AST)进行分层,提出一种基于分层AST的Android异味检测方法.实例研究表明,与其他方法相比,该方法能检测出更多类型的Android代码异味.
关键词 抽象语法树(AST) Android应用程序 代码异味
下载PDF
类间结构型代码味道自动检测的研究 被引量:6
15
作者 陈丹 袁捷 缪淮扣 《计算机工程》 CAS CSCD 北大核心 2007年第7期59-61,共3页
软件重构是改造软件遗留系统、软件重用的重要手段。代码味道用于描述软件设计缺陷,检测代码味道是软件重构的重要步骤。按照代码味道的特征给代码味道分类,对引发重构的主要缺陷――类之间结构型代码味道,给出了自动化检测的原理,设计... 软件重构是改造软件遗留系统、软件重用的重要手段。代码味道用于描述软件设计缺陷,检测代码味道是软件重构的重要步骤。按照代码味道的特征给代码味道分类,对引发重构的主要缺陷――类之间结构型代码味道,给出了自动化检测的原理,设计和实现了一个检测工具。 展开更多
关键词 重构 代码味道 自动化检测 LEPUS 设计模型 形式化规则
下载PDF
代码缺陷与代码味道的自动探测与优化研究 被引量:5
16
作者 刘伟 刘宏韬 胡志刚 《计算机应用研究》 CSCD 北大核心 2014年第1期170-176,共7页
为了实现代码缺陷与代码味道的自动探测与优化,提升优化与重构的效率,设计并开发了一套名为SCORT的源代码优化与重构工具。SCORT将源代码解析为抽象语法树,再探测其中存在的代码缺陷和代码味道,最后对缺陷和味道进行自动优化和重构。在S... 为了实现代码缺陷与代码味道的自动探测与优化,提升优化与重构的效率,设计并开发了一套名为SCORT的源代码优化与重构工具。SCORT将源代码解析为抽象语法树,再探测其中存在的代码缺陷和代码味道,最后对缺陷和味道进行自动优化和重构。在SCORT中已经实现了对15种常见代码缺陷和六种常见代码味道的检测以及自动优化与重构,提供了多种代码味道的自动重构算法,且具有良好的可扩展性。通过对三个待测项目的探测和优化实验结果表明,对于常见代码缺陷的探测和优化,SCORT的精确率、召回率和准确率均可达100%;对于部分常见的代码味道,SCORT尚需进一步完善。SCORT有助于开发人员提高代码质量,减少源代码中存在的缺陷和味道。 展开更多
关键词 代码缺陷 代码味道 探测 优化 重构 抽象语法树
下载PDF
基于抽象语法树的数据泥团自动检测研究 被引量:3
17
作者 刘宏韬 刘伟 胡志刚 《计算机应用与软件》 2017年第1期15-20,共6页
数据泥团是一种常见的代码味道,它将带来重复代码和维护难度增加等问题。针对大部分已有的代码味道自动检测工具无法检测数据泥团,且检测类型不全面等问题,提出一种基于抽象语法树的数据泥团自动检测方法。该方法在已有检测工具的基础上... 数据泥团是一种常见的代码味道,它将带来重复代码和维护难度增加等问题。针对大部分已有的代码味道自动检测工具无法检测数据泥团,且检测类型不全面等问题,提出一种基于抽象语法树的数据泥团自动检测方法。该方法在已有检测工具的基础上,增加了新的数据泥团类型,并加入了剔除冗余数据泥团和提取子数据泥团等步骤。通过对4个开源项目进行数据泥团实验,结果表明方法具有较高的精确率,与Stench Blossom、inFusion等工具的数据泥团自动检测功能相比,能够检测出一些其他工具无法检测的数据泥团。同时,该方法具有较好的性能,执行时间与系统规模成正比。 展开更多
关键词 代码味道 数据泥团 抽象语法树 源代码解析 重构
下载PDF
基于测试代码变化的重构意图推测方法 被引量:1
18
作者 高原 刘辉 +1 位作者 樊孝忠 牛振东 《北京理工大学学报》 EI CAS CSCD 北大核心 2017年第5期537-543,共7页
已有的重构工具主要在传统开发模式下,针对源代码的变化来推测重构.对于目前流行的测试驱动开发方法,缺乏有效的工具指导实施测试驱动重构.为此,本文提出了一种基于测试代码变化的重构意图推测方法,在测试驱动开发过程中,通过实时监控... 已有的重构工具主要在传统开发模式下,针对源代码的变化来推测重构.对于目前流行的测试驱动开发方法,缺乏有效的工具指导实施测试驱动重构.为此,本文提出了一种基于测试代码变化的重构意图推测方法,在测试驱动开发过程中,通过实时监控捕获测试代码的变化,并依据启发式规则推测可能的重构操作.该方法在两个实际的测试驱动开发项目上进行了验证.结果表明该方法比现有方法更为高效准确,其准确率提高约15%,查全率提高了33.3%~42.8%. 展开更多
关键词 重构意图 代码坏味 测试驱动 测试用例
下载PDF
代码坏味对软件演化影响的实证研究 被引量:8
19
作者 章晓芳 朱灿 《软件学报》 EI CSCD 北大核心 2019年第5期1422-1437,共16页
代码坏味是指程序设计中存在的不良设计模式或设计缺陷.坏味的存在,被认为会阻碍软件的演化与维护.近年来,研究人员致力于探究坏味产生的影响以及坏味与软件演化之间的关系.已有研究表明,代码坏味会随着软件的演化而不断发生变化.通常,... 代码坏味是指程序设计中存在的不良设计模式或设计缺陷.坏味的存在,被认为会阻碍软件的演化与维护.近年来,研究人员致力于探究坏味产生的影响以及坏味与软件演化之间的关系.已有研究表明,代码坏味会随着软件的演化而不断发生变化.通常,软件的演化将涉及源文件的增加、修改与删除这3类具体操作,了解代码坏味与软件演化中源文件操作的关系,将有助于开发者更好地计划软件开发过程和重构软件代码.因此,针对13种常见的坏味,在8个Java项目共计104个版本中进行了系统的实证研究.研究发现,随着软件版本的演化,含代码坏味的文件在整个项目中的占比在不同的项目中呈现出不同的特征.另外,包含代码坏味的文件更倾向于被修改,而坏味本身与文件的添加或者删除并没有太大的关联.更进一步地,在探究的所有坏味中,有几种特定的坏味对文件的修改产生了显著的影响,且这些坏味文件间存在着明显的重叠.这些发现有助于开发人员更好地了解代码坏味,以便于更好地对软件进行维护. 展开更多
关键词 软件维护 反模式 代码坏味 实证研究 软件演化
下载PDF
基于预训练模型和多层次信息的代码坏味检测方法 被引量:2
20
作者 张杨 东春浩 +1 位作者 刘辉 葛楚妍 《软件学报》 EI CSCD 北大核心 2022年第5期1551-1568,共18页
目前已有的代码坏味检测方法仅依赖于代码结构信息和启发式规则,对嵌入在不同层次代码中的语义信息关注不够,而且现有的代码坏味检测方法准确率还有进一步提升的空间.针对该问题,提出一种基于预训练模型和多层次信息的代码坏味检测方法D... 目前已有的代码坏味检测方法仅依赖于代码结构信息和启发式规则,对嵌入在不同层次代码中的语义信息关注不够,而且现有的代码坏味检测方法准确率还有进一步提升的空间.针对该问题,提出一种基于预训练模型和多层次信息的代码坏味检测方法DeepSmell,首先采用静态分析工具提取程序中的代码坏味实例和多层次代码度量信息,并对代码坏味实例进行标记;然后通过抽象语法树解析并获取源代码中与代码坏味相关的层次信息,将其中的文本信息与度量信息相结合生成数据样本;最后使用BERT预训练模型将文本信息转化为词向量,应用GRU-LSTM模型获取层次信息之间潜在的语义关系,并结合CNN模型与注意力机制检测代码坏味.在实验中,选取JUnit、Xalan和SPECjbb2005等24个大型实际应用程序构建训练集和测试集,并对特征依恋、长方法、数据类和上帝类等4种代码坏味进行检测.实验结果表明,DeepSmell与目前已有的检测方法相比在平均查全率和F1值上分别提高了9.3%和10.44%,同时保持了较高的查准率,DeepSmell可以有效地实现代码坏味检测. 展开更多
关键词 代码坏味 深度学习 预训练模型 抽象语法树 多层次信息
下载PDF
上一页 1 2 3 下一页 到第
使用帮助 返回顶部