期刊文献+
共找到36篇文章
< 1 2 >
每页显示 20 50 100
检测JavaScript类的内聚耦合Code Smell 被引量:5
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视角下分层Web应用失血及充血现象的量化分析 被引量:2
2
作者 黄子杰 陈军华 高建华 《电子学报》 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
融合特征选择与多模型软投票集成学习的代码异味检测方法 被引量:2
3
作者 黄晨峻 高建华 《小型微型计算机系统》 北大核心 2025年第2期504-512,共9页
代码异味会导致软件质量逐渐衰退,降低软件可理解性和可维护性.为检测软件结构中的代码异味,提出了一种基于CK度量的、经过两步特征选择的软投票集成学习的代码异味检测方法,该方法首先进行特征选择,使用Pearson相关系数剔除冗余特征,... 代码异味会导致软件质量逐渐衰退,降低软件可理解性和可维护性.为检测软件结构中的代码异味,提出了一种基于CK度量的、经过两步特征选择的软投票集成学习的代码异味检测方法,该方法首先进行特征选择,使用Pearson相关系数剔除冗余特征,并在剩余度量中使用XGBoost特征重要性筛选相关度大的度量.然后,针对仅使用单一机器学习模型泛化性能不佳的问题,提出一种基于5种较成熟机器学习模型的软投票集成学习模型,完成代码异味分类检测任务.实验基于CK度量,利用含7个开源项目、4种代码异味的数据集,实验结果表明,此种方法能够减少特征维度,且在性能指标上优于其它分类模型,其中F1值最高提升3.24%,AUC最高提升2.32%. 展开更多
关键词 代码异味 特征选择 CK度量 投票模型 集成学习
在线阅读 下载PDF
类级代码异味的半监督学习检测方法
4
作者 瞿志豪 陈军华 高建华 《计算机工程与设计》 北大核心 2025年第10期2741-2747,共7页
基于机器学习的代码异味检测面临数据集较小、缺乏系统性以及手动注释耗时等挑战,限制了模型性能的提升。为此分析了一种代码异味的半监督学习检测方法,旨在通过结合未标注数据和有限标注数据来提高监督学习分类器的性能。实验结果表明... 基于机器学习的代码异味检测面临数据集较小、缺乏系统性以及手动注释耗时等挑战,限制了模型性能的提升。为此分析了一种代码异味的半监督学习检测方法,旨在通过结合未标注数据和有限标注数据来提高监督学习分类器的性能。实验结果表明,半监督学习分类器(semi supervised learning classifier)的性能明显优于监督学习分类器,在Data Class和Feature Envy两种代码异味检测中,F-measure分别提高了3%的和10%。 展开更多
关键词 代码异味 机器学习 监督学习 半监督学习 半监督学习分类器 Feature Envy Data Class
在线阅读 下载PDF
融合静态程序分析与集成学习的Android代码异味共存检测
5
作者 王祯启 边奕心 +2 位作者 马偌楠 毕博宇 王金鑫 《计算机应用研究》 北大核心 2025年第4期1167-1176,共10页
相对于单一种类的代码异味,异味共存对程序更具危害性。针对Android特有代码异味,现有研究主要关注单一种类异味的检测,忽略异味共存对Android应用程序的负面影响。为识别共存的Android特有代码异味,提出融合静态程序分析与集成学习的An... 相对于单一种类的代码异味,异味共存对程序更具危害性。针对Android特有代码异味,现有研究主要关注单一种类异味的检测,忽略异味共存对Android应用程序的负面影响。为识别共存的Android特有代码异味,提出融合静态程序分析与集成学习的Android代码异味共存检测方法。作为初步研究,识别忽略类成员变量的方法异味与缺少低内存处理程序异味的共存。首先,提出基于静态程序分析的Android代码异味共存检测方法和正负样本自动生成方法并实现工具ASSD。该工具的输出为后续集成学习模型提供丰富的训练样本。然后,针对单一机器学习模型泛化能力有限的问题,提出一种软投票集成学习模型,识别共存的Android代码异味。该模型不仅可以集成传统机器学习模型,还可以集成改进的深度学习模型。实验结果表明,所提方法优于已有基于静态程序分析的检测方法,F_(1)值提升了26.1百分点。此外,基于传统机器学习的软投票集成学习模型优于基于深度学习的软投票集成学习模型,F_(1)值提升了6.1百分点。所提方法可以实现Android代码异味共存的检测。 展开更多
关键词 Android代码异味共存 软投票 集成学习 静态程序分析
在线阅读 下载PDF
Bagging异构集成的代码异味检测与重构优先级划分 被引量:1
6
作者 吴海涛 蔡咏琦 高建华 《计算机工程与应用》 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
类间结构型代码味道自动检测的研究 被引量:6
7
作者 陈丹 袁捷 缪淮扣 《计算机工程》 CAS CSCD 北大核心 2007年第7期59-61,共3页
软件重构是改造软件遗留系统、软件重用的重要手段。代码味道用于描述软件设计缺陷,检测代码味道是软件重构的重要步骤。按照代码味道的特征给代码味道分类,对引发重构的主要缺陷――类之间结构型代码味道,给出了自动化检测的原理,设计... 软件重构是改造软件遗留系统、软件重用的重要手段。代码味道用于描述软件设计缺陷,检测代码味道是软件重构的重要步骤。按照代码味道的特征给代码味道分类,对引发重构的主要缺陷――类之间结构型代码味道,给出了自动化检测的原理,设计和实现了一个检测工具。 展开更多
关键词 重构 代码味道 自动化检测 LEPUS 设计模型 形式化规则
在线阅读 下载PDF
代码缺陷与代码味道的自动探测与优化研究 被引量:5
8
作者 刘伟 刘宏韬 胡志刚 《计算机应用研究》 CSCD 北大核心 2014年第1期170-176,共7页
为了实现代码缺陷与代码味道的自动探测与优化,提升优化与重构的效率,设计并开发了一套名为SCORT的源代码优化与重构工具。SCORT将源代码解析为抽象语法树,再探测其中存在的代码缺陷和代码味道,最后对缺陷和味道进行自动优化和重构。在S... 为了实现代码缺陷与代码味道的自动探测与优化,提升优化与重构的效率,设计并开发了一套名为SCORT的源代码优化与重构工具。SCORT将源代码解析为抽象语法树,再探测其中存在的代码缺陷和代码味道,最后对缺陷和味道进行自动优化和重构。在SCORT中已经实现了对15种常见代码缺陷和六种常见代码味道的检测以及自动优化与重构,提供了多种代码味道的自动重构算法,且具有良好的可扩展性。通过对三个待测项目的探测和优化实验结果表明,对于常见代码缺陷的探测和优化,SCORT的精确率、召回率和准确率均可达100%;对于部分常见的代码味道,SCORT尚需进一步完善。SCORT有助于开发人员提高代码质量,减少源代码中存在的缺陷和味道。 展开更多
关键词 代码缺陷 代码味道 探测 优化 重构 抽象语法树
在线阅读 下载PDF
基于预训练模型和多层次信息的代码坏味检测方法 被引量:6
9
作者 张杨 东春浩 +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
基于抽象语法树的数据泥团自动检测研究 被引量:3
10
作者 刘宏韬 刘伟 胡志刚 《计算机应用与软件》 2017年第1期15-20,共6页
数据泥团是一种常见的代码味道,它将带来重复代码和维护难度增加等问题。针对大部分已有的代码味道自动检测工具无法检测数据泥团,且检测类型不全面等问题,提出一种基于抽象语法树的数据泥团自动检测方法。该方法在已有检测工具的基础上... 数据泥团是一种常见的代码味道,它将带来重复代码和维护难度增加等问题。针对大部分已有的代码味道自动检测工具无法检测数据泥团,且检测类型不全面等问题,提出一种基于抽象语法树的数据泥团自动检测方法。该方法在已有检测工具的基础上,增加了新的数据泥团类型,并加入了剔除冗余数据泥团和提取子数据泥团等步骤。通过对4个开源项目进行数据泥团实验,结果表明方法具有较高的精确率,与Stench Blossom、inFusion等工具的数据泥团自动检测功能相比,能够检测出一些其他工具无法检测的数据泥团。同时,该方法具有较好的性能,执行时间与系统规模成正比。 展开更多
关键词 代码味道 数据泥团 抽象语法树 源代码解析 重构
在线阅读 下载PDF
基于测试代码变化的重构意图推测方法 被引量:1
11
作者 高原 刘辉 +1 位作者 樊孝忠 牛振东 《北京理工大学学报》 EI CAS CSCD 北大核心 2017年第5期537-543,共7页
已有的重构工具主要在传统开发模式下,针对源代码的变化来推测重构.对于目前流行的测试驱动开发方法,缺乏有效的工具指导实施测试驱动重构.为此,本文提出了一种基于测试代码变化的重构意图推测方法,在测试驱动开发过程中,通过实时监控... 已有的重构工具主要在传统开发模式下,针对源代码的变化来推测重构.对于目前流行的测试驱动开发方法,缺乏有效的工具指导实施测试驱动重构.为此,本文提出了一种基于测试代码变化的重构意图推测方法,在测试驱动开发过程中,通过实时监控捕获测试代码的变化,并依据启发式规则推测可能的重构操作.该方法在两个实际的测试驱动开发项目上进行了验证.结果表明该方法比现有方法更为高效准确,其准确率提高约15%,查全率提高了33.3%~42.8%. 展开更多
关键词 重构意图 代码坏味 测试驱动 测试用例
在线阅读 下载PDF
代码坏味对软件演化影响的实证研究 被引量:9
12
作者 章晓芳 朱灿 《软件学报》 EI CSCD 北大核心 2019年第5期1422-1437,共16页
代码坏味是指程序设计中存在的不良设计模式或设计缺陷.坏味的存在,被认为会阻碍软件的演化与维护.近年来,研究人员致力于探究坏味产生的影响以及坏味与软件演化之间的关系.已有研究表明,代码坏味会随着软件的演化而不断发生变化.通常,... 代码坏味是指程序设计中存在的不良设计模式或设计缺陷.坏味的存在,被认为会阻碍软件的演化与维护.近年来,研究人员致力于探究坏味产生的影响以及坏味与软件演化之间的关系.已有研究表明,代码坏味会随着软件的演化而不断发生变化.通常,软件的演化将涉及源文件的增加、修改与删除这3类具体操作,了解代码坏味与软件演化中源文件操作的关系,将有助于开发者更好地计划软件开发过程和重构软件代码.因此,针对13种常见的坏味,在8个Java项目共计104个版本中进行了系统的实证研究.研究发现,随着软件版本的演化,含代码坏味的文件在整个项目中的占比在不同的项目中呈现出不同的特征.另外,包含代码坏味的文件更倾向于被修改,而坏味本身与文件的添加或者删除并没有太大的关联.更进一步地,在探究的所有坏味中,有几种特定的坏味对文件的修改产生了显著的影响,且这些坏味文件间存在着明显的重叠.这些发现有助于开发人员更好地了解代码坏味,以便于更好地对软件进行维护. 展开更多
关键词 软件维护 反模式 代码坏味 实证研究 软件演化
在线阅读 下载PDF
Android应用程序中代码异味共存现象的实证研究 被引量:2
13
作者 边奕心 王露颖 +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
基于集成学习的忽略成员的方法检测策略
14
作者 边奕心 王露颖 +1 位作者 赵松 朱晓 《计算机工程与设计》 北大核心 2023年第9期2679-2686,共8页
忽略成员的方法是一种Android特有代码异味,为检测这种异味,提出一种基于集成学习的检测策略。将代码度量与文本信息相融合作为特征集;将融合后的特征集输入所构建的Stacking集成学习模型中进行异味检测。为快速、准确获得机器学习所需... 忽略成员的方法是一种Android特有代码异味,为检测这种异味,提出一种基于集成学习的检测策略。将代码度量与文本信息相融合作为特征集;将融合后的特征集输入所构建的Stacking集成学习模型中进行异味检测。为快速、准确获得机器学习所需的大量标签数据,提出一种基于Android项目自动构建正负样本的方法。选用开源Android数据集对所提出的方法进行实验验证,实验结果表明,较已有检测方法,该策略能够提高异味检测的精确度。 展开更多
关键词 代码异味 安卓特有代码异味 忽略成员的方法 文本信息 特征融合 机器学习 集成学习
在线阅读 下载PDF
一种基于深度学习的上帝类检测方法 被引量:14
15
作者 卜依凡 刘辉 李光杰 《软件学报》 EI CSCD 北大核心 2019年第5期1359-1374,共16页
上帝类是指某个承担了本应由多个类分别承担的多个职责的类.上帝类违背了分而治之的基本思想以及单一职责的设计原则,严重影响软件的可维护性和可理解性.但上帝类又是一种比较常见的代码坏味.因此,针对上帝类的检测与重构一直是代码重... 上帝类是指某个承担了本应由多个类分别承担的多个职责的类.上帝类违背了分而治之的基本思想以及单一职责的设计原则,严重影响软件的可维护性和可理解性.但上帝类又是一种比较常见的代码坏味.因此,针对上帝类的检测与重构一直是代码重构领域的研究热点之一.为此,提出了一种基于深度神经网络的上帝类检测方法.该方法不仅利用了常见的软件度量,而且充分利用了代码中的文本信息,意图通过挖掘文本语义揭示每个类所承担的主要角色.此外,为了解决有监督深度学习所需的海量标签数据,提出了一种基于开源代码构造标签数据的方法.最后,基于开源数据集对所提出的方法进行了实验验证.实验结果表明,这些方法优于现有的上帝类检测方法,尤其是在查全率上有大幅度的提升(提高了35.58%). 展开更多
关键词 代码坏味 软件重构 深度学习
在线阅读 下载PDF
复杂软件系统的重构技术:现状、问题与展望 被引量:5
16
作者 孟繁祎 王莹 +1 位作者 于海 朱志良 《计算机科学》 CSCD 北大核心 2020年第12期1-10,共10页
软件重构是改善软件质量的一种重要手段,它在不改变软件外部行为特性的情况下,通过调整软件内部结构来提高软件的可理解性、可维护性和可扩展性。然而,随着开源软件的迅猛发展,软件的规模和复杂程度日益增加,现有的重构技术在应对规模... 软件重构是改善软件质量的一种重要手段,它在不改变软件外部行为特性的情况下,通过调整软件内部结构来提高软件的可理解性、可维护性和可扩展性。然而,随着开源软件的迅猛发展,软件的规模和复杂程度日益增加,现有的重构技术在应对规模庞大且复杂的软件系统时,重构效果并不如意。因此,提高重构技术的可扩展性一直是软件工程领域研究的热点。从技术负债角度出发,探究重构时机,思考重构技术对软件质量的深入影响,明确重构技术旨在寻找重构代码的自动化方法,从而降低维护成本,提高代码质量。文中对工程实例进行分析并对文献进行梳理,调研了自2010年至今国内外96篇相关领域的文献,尝试以复杂系统的视角对这些研究工作进行归纳、比较,提炼总结软件重构领域的研究方向与技术方法,探讨重构技术研究中的特点与难点,思考重构技术研究中存在的问题及未来的研究方向,对软件重构技术的研究趋势进行了展望。 展开更多
关键词 软件重构 技术负债 代码异味 自动化工具 软件质量
在线阅读 下载PDF
基于图模型和孤立森林的上帝类检测方法 被引量:4
17
作者 刘弋 吴毅坚 +1 位作者 彭鑫 闫亚东 《软件学报》 EI CSCD 北大核心 2022年第11期4046-4060,共15页
上帝类(God class)是指同时包含多种任务职责的类,其常见特征是包含大量的属性与方法,并且与系统中的其他类有多种依赖关系.上帝类是一种典型的代码坏味,对软件的开发维护产生负面影响.近年来,许多研究都致力于发现和重构上帝类,但是现... 上帝类(God class)是指同时包含多种任务职责的类,其常见特征是包含大量的属性与方法,并且与系统中的其他类有多种依赖关系.上帝类是一种典型的代码坏味,对软件的开发维护产生负面影响.近年来,许多研究都致力于发现和重构上帝类,但是现有方法识别上帝类的能力不强,检测精确率不高.提出了一种基于图模型和孤立森林的上帝类检测方法,主要分为两个阶段:图结构信息分析阶段和类内度量评估阶段.在图结构信息分析阶段,建立类间的方法调用图和类内结构图,采用孤立森林算法缩小上帝类的检测范围;在类内度量评估阶段,考虑项目的规模和架构带来的影响,将项目中上帝类相关度量指标的平均值作为基准,设计实验确定比例因子,并以平均值和比例因子的乘积作为阈值,筛选得到上帝类的检测结果.在代码坏味标准数据集上的实验结果表明:与现有的上帝类检测方法相比,该方法在精确率和F1值上分别提升了25.82个百分点和33.39个百分点,同时保持了较高的召回率. 展开更多
关键词 代码坏味 软件维护 上帝类 孤立森林
在线阅读 下载PDF
基于排序损失的ECC多标签代码异味检测方法 被引量:4
18
作者 王继娜 陈军华 高建华 《计算机研究与发展》 EI CSCD 北大核心 2021年第1期178-188,共11页
代码异味是由糟糕的代码或设计问题引起的一种软件特征,严重影响了软件系统的可靠性和可维护性.在软件系统中,一段代码元素可能同时受到多种代码异味的影响,使得软件质量明显下降.多标签分类适用该情况,将高共现的多个代码异味置于同一... 代码异味是由糟糕的代码或设计问题引起的一种软件特征,严重影响了软件系统的可靠性和可维护性.在软件系统中,一段代码元素可能同时受到多种代码异味的影响,使得软件质量明显下降.多标签分类适用该情况,将高共现的多个代码异味置于同一标签组,可以更好地考虑代码异味的相关性,但现有的多标签代码异味检测方法未考虑同一段代码元素中多种代码异味检测顺序的影响.对此,提出了一种基于排序损失的集成分类器链(ensemble of classifier chains,ECC)多标签代码异味检测方法,该方法选择随机森林作为基础分类器并采取多次迭代ECC的方式,以排序损失最小化为目标,选择一个较优的标签序列集,优化代码异味检测顺序问题,模拟其生成机理,检测一段代码元素是否同时存在长方法长参数列表、复杂类消息链或消息链过大类这3组代码异味.实验采用9个评价指标,结果表明所提出的检测方法优于现有的多标签代码异味检测方法,F1平均值达97.16%. 展开更多
关键词 代码异味 随机森林 排序损失 集成分类器链 多标签分类
在线阅读 下载PDF
基于改进的C4.5算法的代码异味检测方法 被引量:4
19
作者 王帆 吴海涛 高建华 《计算机工程与设计》 北大核心 2021年第4期969-975,共7页
为检测软件结构中的代码异味,提出在属性选择过程中将ReliefF算法和互信息结合,筛选出相关度大而冗余度小的条件属性集。传统C4.5算法在构造决策树时,只考虑条件属性和目标属性的相关度,忽略条件属性间的相关度,基于这个问题提出在C4.5... 为检测软件结构中的代码异味,提出在属性选择过程中将ReliefF算法和互信息结合,筛选出相关度大而冗余度小的条件属性集。传统C4.5算法在构造决策树时,只考虑条件属性和目标属性的相关度,忽略条件属性间的相关度,基于这个问题提出在C4.5算法中加入对称不确定性(SU),利用SU计算条件属性间的相关度,更新信息增益率的计算,提高代码异味检测精确度。对比实验结果表明,该算法能够提高代码异味的检测精确度,有利延长软件生存周期。 展开更多
关键词 代码异味 C4.5算法 对称不确定性 RELIEFF算法 互信息
在线阅读 下载PDF
基于潜在语义分析的Large Class检测 被引量:3
20
作者 马赛 董东 《计算机科学》 CSCD 北大核心 2017年第S1期495-498,共4页
Large Class(上帝类)是面向对象设计中的一种设计瑕疵。为了弥补传统Large Class检测中使用面向代码结构度量的不足,提出基于潜在语义分析的平均概念相似性度量。根据源代码中提取的标识符和注释形成词-文档矩阵,在潜在语义空间下计算... Large Class(上帝类)是面向对象设计中的一种设计瑕疵。为了弥补传统Large Class检测中使用面向代码结构度量的不足,提出基于潜在语义分析的平均概念相似性度量。根据源代码中提取的标识符和注释形成词-文档矩阵,在潜在语义空间下计算方法间的相似度,进而得到类的平均概念相似性;并将概念性度量与代码圈复杂度结合以对Large Class进行识别。在开源的Code Smell检测数据集Landfill上进行实验,结果表明,与传统上使用结构信息对Large Class进行检测相比,使用该方法时检测的准确率和召回率均得到了一定提升。 展开更多
关键词 LARGE CLASS 潜在语义分析 代码瑕疵 圈复杂度
在线阅读 下载PDF
上一页 1 2 下一页 到第
使用帮助 返回顶部