期刊文献+
共找到55篇文章
< 1 2 3 >
每页显示 20 50 100
Constrained LLM-Guided Refactoring of JavaScript:A Smell-Targeted Transformation Framework with Human-in-the-Loop Validation 认领 引用
1
作者 Emir Kuanyshev Hashim Ali 《Computers, Materials & Continua》 SCIE EI 2026年第7期1864-1881,共18页
Refactoring improves maintainability without altering externally observable behavior,yet it remains costly and error-prone when applied manually at scale.While large language models(LLMs)can generate plausible refacto... Refactoring improves maintainability without altering externally observable behavior,yet it remains costly and error-prone when applied manually at scale.While large language models(LLMs)can generate plausible refactorings,practical adoption is limited by uncontrolled edit scope,inconsistent outputs under stochastic decoding,and weak traceability of why a change was produced.This paper proposes a smell-targeted,scope-bound refactoring framework for JavaScript that couples deterministic AST-based smell detection with constrained LLM transformation.The key design principle is to bind generation to explicitly detected smell instances,enforce a structured output contract(refactored code plus per-smell rationale),and log full refactoring artifacts for repeatable evaluation.We implement the framework as a microservice-based prototype(detector,prompt construction and routing,orchestrator,analytics,and UI)and evaluate it on LeetCode-style solutions and multiple GitHub repositories.Across the evaluated projects,the approach achieves an average smell reduction of 83.96%and an average maintainability index improvement of+5.366,while maintaining a mean developer acceptance rate of 91.66%.A targeted temperature study identifies an operating point around 0.4 that maximizes acceptance(approximately 95%in controlled trials),balancing determinism with sufficient flexibility for structure-improving edits.These results suggest that explicit scope control and structured traceability are central to making LLM-based refactoring reliable and reviewable,and motivate future integration with automated validation(tests,linting)and repository-conditioned policies. 展开更多
关键词 Large language models automated refactoring code smell detection JavaScript constrained generation maintainability index human-in-the-loop evaluation
暂未订购 下载PDF
检测JavaScript类的内聚耦合Code Smell 认领 引用 被引量:5
2
作者 黄子杰 陈军华 高建华 《软件学报》 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视角下分层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
Code Smell Detection Using Whale Optimization Algorithm 认领 引用
4
作者 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 Detection Based on Multi-dimensional Software Data and Complex Networks 认领 引用
5
作者 Heng Tong Cheng Zhang Futian Wang 《国际计算机前沿大会会议论文集》 EI 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
基于多智能体与LLM的代码异味检测 认领 引用
6
作者 刘长林 吴海涛 《上海师范大学学报(自然科学版中英文)》 CAS 2026年第1期42-51,共10页
本文提出了一种基于多智能体与大语言模型(LLM)协同的代码异味检测方法.以往的研究仅针对已知存在异味的样本进行检测,本研究恢复并纳入了完整数据集中的无代码异味类样本,构建了一个包含两个阶段的分层检测框架,以增强模型在代码异味... 本文提出了一种基于多智能体与大语言模型(LLM)协同的代码异味检测方法.以往的研究仅针对已知存在异味的样本进行检测,本研究恢复并纳入了完整数据集中的无代码异味类样本,构建了一个包含两个阶段的分层检测框架,以增强模型在代码异味识别任务中的准确性与泛化能力.在第一阶段,设计轻量级静态度量智能体,获取代码行数、圈复杂度、最大嵌套深度、类方法复杂度、方法数量及字段数量等结构性指标,并据此生成结构模式的描述与参考示例,以辅助LLM判断异味是否存在,从而实现高召回率的初步筛查.在第二阶段,针对4类典型的代码异味(大型类、数据类、特征嫉妒及长方法)构建专属智能体,各智能体提取与异味特征相关的结构与语义信号,生成结构模式描述与语义解释,并与源码一同输入LLM,完成细粒度异味类型判定.实验结果表明,在包含无代码异味类的分类场景中,相较基线模型,本方法在4类异味识别任务上的F1值提升了7%~12%.整体而言,该框架有效提升了代码异味检测的稳健性与泛化能力,验证了多智能体与LLM协作机制在软件质量分析任务中的可行性与实用价值. 展开更多
关键词 代码异味检测 大语言模型(LLM) 多智能体 软件质量
暂未订购 下载PDF
融合结构特征归因与多智能体推理的上帝类检测方法 认领 引用
7
作者 邵宁宁 刘臣 《计算机应用研究》 CSCD 北大核心 2026年第5期1479-1488,共10页
上帝类是一种典型的代码异味,其存在会降低软件的可扩展性和可维护性,进而增加系统故障风险与维护成本。为此,提出由规范化博弈式多智能体框架与全局共享的上下文工程组成的检测方法。先以梯度提升树结合SHAP特征归因获得可审计的结构... 上帝类是一种典型的代码异味,其存在会降低软件的可扩展性和可维护性,进而增加系统故障风险与维护成本。为此,提出由规范化博弈式多智能体框架与全局共享的上下文工程组成的检测方法。先以梯度提升树结合SHAP特征归因获得可审计的结构先验与关键特征;并据此生成复杂度感知的提示词与初始证据。随后,多个智能体角色在受控协议下自适应地触发与停止,讨论过程写入共享记录并与证据视图对齐,从而降低对提示表述的敏感性并提升可审计性。最后将推理检测概率与结构先验评分按照可学习权重进行凸组合得到最终判定。实验结果表明,本方法在判定一致性保持Cohen’sκ≥0.75的前提下,检测性能显著优于现有基线。在跨项目MLCQ数据集上的实验中,F1-score相比基线方法提升14.6%~76.1%,同时误报率下降37.6%~80.4%,兼顾了高召回与低误报。 展开更多
关键词 代码异味 上帝类 多智能体协同 大语言模型 特征归因
暂未订购 下载PDF
融合特征选择与多模型软投票集成学习的代码异味检测方法 认领 引用 被引量:2
8
作者 黄晨峻 高建华 《小型微型计算机系统》 CSCD 北大核心 2025年第2期504-512,共9页
代码异味会导致软件质量逐渐衰退,降低软件可理解性和可维护性.为检测软件结构中的代码异味,提出了一种基于CK度量的、经过两步特征选择的软投票集成学习的代码异味检测方法,该方法首先进行特征选择,使用Pearson相关系数剔除冗余特征,... 代码异味会导致软件质量逐渐衰退,降低软件可理解性和可维护性.为检测软件结构中的代码异味,提出了一种基于CK度量的、经过两步特征选择的软投票集成学习的代码异味检测方法,该方法首先进行特征选择,使用Pearson相关系数剔除冗余特征,并在剩余度量中使用XGBoost特征重要性筛选相关度大的度量.然后,针对仅使用单一机器学习模型泛化性能不佳的问题,提出一种基于5种较成熟机器学习模型的软投票集成学习模型,完成代码异味分类检测任务.实验基于CK度量,利用含7个开源项目、4种代码异味的数据集,实验结果表明,此种方法能够减少特征维度,且在性能指标上优于其它分类模型,其中F1值最高提升3.24%,AUC最高提升2.32%. 展开更多
关键词 代码异味 特征选择 CK度量 投票模型 集成学习
暂未订购 下载PDF
基于传统机器学习的内部Getter或Setter方法异味检测 认领 引用
9
作者 张子恒 边奕心 +3 位作者 李禹齐 赵松 吴雪 朱伟 《计算机应用与软件》 北大核心 2025年第11期25-34,95,共10页
内部Getter或Setter方法是一种Android特有代码异味,对Android应用程序的性能及能耗均有负面影响。为检测该味道,提出一种基于传统机器学习的检测方法。首先使用程序文本信息作为特征集,然后使用5种传统机器学习模型进行检测。其中,为... 内部Getter或Setter方法是一种Android特有代码异味,对Android应用程序的性能及能耗均有负面影响。为检测该味道,提出一种基于传统机器学习的检测方法。首先使用程序文本信息作为特征集,然后使用5种传统机器学习模型进行检测。其中,为了去除特征集中的无关特征,提出一种特征筛选算法LGM_SU,以提高模型检测准确率。此外,为了自动获取传统有监督机器学习模型所需的大量标签数据,提出一种基于Android项目构造正负样本的方法,并实现工具ASSD。最后进行实验验证。结果表明,本文方法优于现有基于程序静态分析的检测方法,F1值提高了16.9%。此外,不同的传统机器学习算法对Android特有代码异味和对面向对象代码异味的检测效果存在差异。 展开更多
关键词 Android代码异味 内部Getter或Setter方法 传统机器学习 特征选择
暂未订购 下载PDF
同构集成深度学习的代码异味检测 认领 引用
10
作者 张苗 黄子杰 +1 位作者 陈军华 高建华 《计算机系统应用》 2025年第10期133-142,共10页
代码异味是软件源代码中存在的不良设计问题,它影响着代码可维护性,可读性以及可扩展性.研究人员可以通过检测代码异味确定待重构的代码,进而改善代码质量.过去的研究广泛将机器学习技术应用于代码异味检测,虽取得一定成果,但在检测准... 代码异味是软件源代码中存在的不良设计问题,它影响着代码可维护性,可读性以及可扩展性.研究人员可以通过检测代码异味确定待重构的代码,进而改善代码质量.过去的研究广泛将机器学习技术应用于代码异味检测,虽取得一定成果,但在检测准确性、泛化能力方面仍存在局限.本文构建两种模型:直接同构集成CNN和RNCNN(random forest-negative correlation learning-CNN),来检测4种代码异味(Data class, God class, Feature envy, Long method),利用基于随机森林的特征选择技术提取更重要的特征,利用深度学习技术对代码的结构特征进行建模,再使用负相关学习同构集成深度学习模型方法训练模型,进行异味检测.与基线工作相比,本研究的F1值最高提升4.93%. 展开更多
关键词 代码异味 特征选择 深度学习 负相关学习 集成学习
暂未订购 下载PDF
类级代码异味的半监督学习检测方法 认领 引用
11
作者 瞿志豪 陈军华 高建华 《计算机工程与设计》 北大核心 2025年第10期2741-2747,共7页
基于机器学习的代码异味检测面临数据集较小、缺乏系统性以及手动注释耗时等挑战,限制了模型性能的提升。为此分析了一种代码异味的半监督学习检测方法,旨在通过结合未标注数据和有限标注数据来提高监督学习分类器的性能。实验结果表明... 基于机器学习的代码异味检测面临数据集较小、缺乏系统性以及手动注释耗时等挑战,限制了模型性能的提升。为此分析了一种代码异味的半监督学习检测方法,旨在通过结合未标注数据和有限标注数据来提高监督学习分类器的性能。实验结果表明,半监督学习分类器(semi supervised learning classifier)的性能明显优于监督学习分类器,在Data Class和Feature Envy两种代码异味检测中,F-measure分别提高了3%的和10%。 展开更多
关键词 代码异味 机器学习 监督学习 半监督学习 半监督学习分类器 Feature Envy Data Class
暂未订购 下载PDF
融合静态程序分析与集成学习的Android代码异味共存检测 认领 引用
12
作者 王祯启 边奕心 +2 位作者 马偌楠 毕博宇 王金鑫 《计算机应用研究》 CSCD 北大核心 2025年第4期1167-1176,共10页
相对于单一种类的代码异味,异味共存对程序更具危害性。针对Android特有代码异味,现有研究主要关注单一种类异味的检测,忽略异味共存对Android应用程序的负面影响。为识别共存的Android特有代码异味,提出融合静态程序分析与集成学习的An... 相对于单一种类的代码异味,异味共存对程序更具危害性。针对Android特有代码异味,现有研究主要关注单一种类异味的检测,忽略异味共存对Android应用程序的负面影响。为识别共存的Android特有代码异味,提出融合静态程序分析与集成学习的Android代码异味共存检测方法。作为初步研究,识别忽略类成员变量的方法异味与缺少低内存处理程序异味的共存。首先,提出基于静态程序分析的Android代码异味共存检测方法和正负样本自动生成方法并实现工具ASSD。该工具的输出为后续集成学习模型提供丰富的训练样本。然后,针对单一机器学习模型泛化能力有限的问题,提出一种软投票集成学习模型,识别共存的Android代码异味。该模型不仅可以集成传统机器学习模型,还可以集成改进的深度学习模型。实验结果表明,所提方法优于已有基于静态程序分析的检测方法,F1值提升了26.1百分点。此外,基于传统机器学习的软投票集成学习模型优于基于深度学习的软投票集成学习模型,F1值提升了6.1百分点。所提方法可以实现Android代码异味共存的检测。 展开更多
关键词 Android代码异味共存 软投票 集成学习 静态程序分析
暂未订购 下载PDF
融合信息增益和Transformer的代码异味强度预测 认领 引用
13
作者 苏亚宁 高建华 《计算机技术与发展》 2025年第1期154-161,共8页
检测代码异味强度可以使开发人员优先处理严重性较高的代码问题,从而降低维护成本提升效率。目前基于传统算法模型的异味强度识别方法无法确保检测的效率,为了解决这个问题,该文提出了一种代码异味强度预测模型。首先选取涵盖代码的不... 检测代码异味强度可以使开发人员优先处理严重性较高的代码问题,从而降低维护成本提升效率。目前基于传统算法模型的异味强度识别方法无法确保检测的效率,为了解决这个问题,该文提出了一种代码异味强度预测模型。首先选取涵盖代码的不同方面度量,然后经过信息增益分析优化处理,将处理后的数据子集输入注意力机制以增强特征的表现能力,经归一化处理后的特征表示输入到一个前馈神经网络中再进行非线性处理,最后通过全连接层生成最终的输出。实验结果表明,在开源项目数据集上,该模型在代码异味强度检测精确率、召回率和F1值等指标上均有提高,相较于基线方法,F1值最高提升了16.2%。表明该模型在检测代码异味强度方面具有较高的精度和可靠性,能够更有效地帮助开发人员识别代码异味问题。 展开更多
关键词 代码异味 Transformer 信息增益 强度预测 机器学习
暂未订购 下载PDF
基于集成学习的Python代码异味检测方法 认领 引用
14
作者 曹悦 陈军华 《上海师范大学学报(自然科学版中英文)》 2025年第4期432-439,共8页
本文提出了一种基于集成学习的Python代码异味检测方法,用于检测五种代码异味,使用堆叠集成法和投票集成法两种集成学习方法检测代码异味,并与Adaboost、支持向量机(SVM)、梯度提升树(GBT)、决策树(DT)、K近邻(KNN)和高斯朴素贝叶斯(GN... 本文提出了一种基于集成学习的Python代码异味检测方法,用于检测五种代码异味,使用堆叠集成法和投票集成法两种集成学习方法检测代码异味,并与Adaboost、支持向量机(SVM)、梯度提升树(GBT)、决策树(DT)、K近邻(KNN)和高斯朴素贝叶斯(GNB)6种机器学习模型进行比较.采用基于网格搜索的参数优化方法,提高方法的精度.实验结果表明:使用堆叠集成法在检测长基类列表和长参数列表这两种代码异味时,表现出了很好的检测效果,F_1值分别达到了0.97和0.89;使用投票集成法在检测长方法、大型类、长基类列表和长参数列表4种代码异味时,也表现出了很好的检测效果,F_1值分别达到了0.94,0.83,0.97和0.92.得出投票集成法比堆叠集成法检测效果更好.另外,无论是机器学习模型还是集成学习模型,相较于10倍交叉验证方法,使用网格搜索方法优化的模型精度更高. 展开更多
关键词 Python语言 集成学习 代码度量 代码异味
暂未订购 下载PDF
代码坏味研究综述 认领 引用 被引量:12
15
作者 田迎晨 李柯君 +4 位作者 王太明 焦青青 李光杰 张宇霞 刘辉 《软件学报》 EI CSCD 北大核心 2023年第1期150-170,共21页
代码坏味(code smells)是低质量的急需重构的代码片段.代码坏味是软件工程领域的一个研究热点,并且相关研究方向众多、时间跨度大、研究成果丰富.为梳理相关研究思路和研究成果、分析研究热点并预判未来研究方向,对1990年至2020年6月间... 代码坏味(code smells)是低质量的急需重构的代码片段.代码坏味是软件工程领域的一个研究热点,并且相关研究方向众多、时间跨度大、研究成果丰富.为梳理相关研究思路和研究成果、分析研究热点并预判未来研究方向,对1990年至2020年6月间发表的代码坏味相关的339篇论文进行了系统地分析和归类,对代码坏味的发展趋势进行了分析与统计,量化揭示了相关研究的主流与热点.揭示了学术界关注的关键代码坏味,并研究了工业界与学术界的关注点的差异及其影响. 展开更多
关键词 代码坏味 软件重构 软件质量 度量 缺陷
暂未订购 下载PDF
一种基于深度学习的上帝类检测方法 认领 引用 被引量:17
16
作者 卜依凡 刘辉 李光杰 《软件学报》 EI CSCD 北大核心 2019年第5期1359-1374,共16页
上帝类是指某个承担了本应由多个类分别承担的多个职责的类.上帝类违背了分而治之的基本思想以及单一职责的设计原则,严重影响软件的可维护性和可理解性.但上帝类又是一种比较常见的代码坏味.因此,针对上帝类的检测与重构一直是代码重... 上帝类是指某个承担了本应由多个类分别承担的多个职责的类.上帝类违背了分而治之的基本思想以及单一职责的设计原则,严重影响软件的可维护性和可理解性.但上帝类又是一种比较常见的代码坏味.因此,针对上帝类的检测与重构一直是代码重构领域的研究热点之一.为此,提出了一种基于深度神经网络的上帝类检测方法.该方法不仅利用了常见的软件度量,而且充分利用了代码中的文本信息,意图通过挖掘文本语义揭示每个类所承担的主要角色.此外,为了解决有监督深度学习所需的海量标签数据,提出了一种基于开源代码构造标签数据的方法.最后,基于开源数据集对所提出的方法进行了实验验证.实验结果表明,这些方法优于现有的上帝类检测方法,尤其是在查全率上有大幅度的提升(提高了35.58%). 展开更多
关键词 代码坏味 软件重构 深度学习
暂未订购 下载PDF
基于预训练模型和多层次信息的代码坏味检测方法 认领 引用 被引量:8
17
作者 张杨 东春浩 +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
Android应用程序中代码异味共存现象的实证研究 认领 引用 被引量:3
18
作者 边奕心 王露颖 +1 位作者 赵松 朱晓 《计算机应用研究》 CSCD 北大核心 2022年第9期2763-2767,共5页
相对于单一类型的代码异味,代码异味共存现象更具危害性。已有实证研究大多聚焦于分析桌面应用程序中代码异味的共存现象,缺少对Android应用程序中代码异味共存现象的研究。为了研究Android应用程序中代码异味的共存现象,并与桌面应用... 相对于单一类型的代码异味,代码异味共存现象更具危害性。已有实证研究大多聚焦于分析桌面应用程序中代码异味的共存现象,缺少对Android应用程序中代码异味共存现象的研究。为了研究Android应用程序中代码异味的共存现象,并与桌面应用程序中代码异味共存现象进行比较,分别对285个Android应用程序和30个桌面应用程序进行检测,对检测出来的10种异味进行分析。首先,根据检测结果计算受到多种异味影响的类的百分比。然后,使用公式计算代码异味共存的频率。最后,使用Spearman相关系数分析代码异味共存与应用程序规模的关系。结论如下:a)在Android应用程序中受到一种以上代码异味共同干扰的类占有异味的类的总数的31.04%;b)在两个平台的应用程序中,两对代码异味brain class-brain method和god class-brain method共存的频率较高;c)一种异味、两种异味共存、三种异味共存与Android应用程序的规模具有较强的相关性。 展开更多
关键词 代码异味共存 Android应用程序 桌面应用程序 实证研究
暂未订购 下载PDF
代码坏味对软件演化影响的实证研究 认领 引用 被引量:9
19
作者 章晓芳 朱灿 《软件学报》 EI CSCD 北大核心 2019年第5期1422-1437,共16页
代码坏味是指程序设计中存在的不良设计模式或设计缺陷.坏味的存在,被认为会阻碍软件的演化与维护.近年来,研究人员致力于探究坏味产生的影响以及坏味与软件演化之间的关系.已有研究表明,代码坏味会随着软件的演化而不断发生变化.通常,... 代码坏味是指程序设计中存在的不良设计模式或设计缺陷.坏味的存在,被认为会阻碍软件的演化与维护.近年来,研究人员致力于探究坏味产生的影响以及坏味与软件演化之间的关系.已有研究表明,代码坏味会随着软件的演化而不断发生变化.通常,软件的演化将涉及源文件的增加、修改与删除这3类具体操作,了解代码坏味与软件演化中源文件操作的关系,将有助于开发者更好地计划软件开发过程和重构软件代码.因此,针对13种常见的坏味,在8个Java项目共计104个版本中进行了系统的实证研究.研究发现,随着软件版本的演化,含代码坏味的文件在整个项目中的占比在不同的项目中呈现出不同的特征.另外,包含代码坏味的文件更倾向于被修改,而坏味本身与文件的添加或者删除并没有太大的关联.更进一步地,在探究的所有坏味中,有几种特定的坏味对文件的修改产生了显著的影响,且这些坏味文件间存在着明显的重叠.这些发现有助于开发人员更好地了解代码坏味,以便于更好地对软件进行维护. 展开更多
关键词 软件维护 反模式 代码坏味 实证研究 软件演化
暂未订购 下载PDF
面向开源软件的自承认代码重构现象研究 认领 引用 被引量:2
20
作者 张迪 李增扬 +1 位作者 李兵 梁鹏 《小型微型计算机系统》 CSCD 北大核心 2018年第11期2473-2479,共7页
软件开发中,开发者常在版本控制系统中提交代码修改.在其提交的信息中,开发者明确声明代码修改为重构(Refactoring)的现象较为普遍,我们把此类代码修改称为开发者自我承认的代码重构,即自承认重构(Self-admitted refactoring,简称SAR).... 软件开发中,开发者常在版本控制系统中提交代码修改.在其提交的信息中,开发者明确声明代码修改为重构(Refactoring)的现象较为普遍,我们把此类代码修改称为开发者自我承认的代码重构,即自承认重构(Self-admitted refactoring,简称SAR).自承认重构在代码提交信息中较为寻常,然而少有相关的研究,致使SAR与软件项目质量的关系并不明确.因此,在本文中,通过对代码异味(Code smell)的评估方式,对自承认重构现象进行不同方面的探索研究,其中包括:SAR是否提升代码质量、SAR与被修改的源文件数量的关系、SAR中代码异味严重级别、SAR开发者数量等等.在本文的用例研究中,选取了Fastjson作为分析案例,使用了PM D作为代码异味识别工具.本文的案例研究得出了如下结论:(1)在超过70%的SAR对应的代码库版本中,代码异味没有增加;(2)在SAR对应的代码库版本中,被修改的源文件数量与新引入的代码异味数量有显著的正相关关系;(3)软件开发中拥有SAR行为的开发者数量较少;(4) SAR在软件开发生命周期中的分布不均衡. 展开更多
关键词 自承认重构 代码异味 案例研究 代码质量
暂未订购 下载PDF
上一页 1 2 3 下一页 到第
在线咨询 使用帮助 返回顶部 意见反馈