摘要
忽略成员的方法是一种Android特有代码异味,为检测这种异味,提出一种基于集成学习的检测策略。将代码度量与文本信息相融合作为特征集;将融合后的特征集输入所构建的Stacking集成学习模型中进行异味检测。为快速、准确获得机器学习所需的大量标签数据,提出一种基于Android项目自动构建正负样本的方法。选用开源Android数据集对所提出的方法进行实验验证,实验结果表明,较已有检测方法,该策略能够提高异味检测的精确度。
Member ignoring method is a type of Android-specific code smells.To facilitate the identification of member ignoring method,an ensemble learning based approach was proposed.Common metrics in software were used,the textual information in source code was exploited.The fused feature sets were input into the Stacking ensemble learning model for smell detection.To solve the massive labeled data required for supervised machine learning quickly and accurately,an approach was proposed to construct the positive and negative samples based on Android projects.The proposed approach was evaluated on open source Android data sets.The result of evaluation shows that the proposed approach outperforms the current method.
作者
边奕心
王露颖
赵松
朱晓
BIAN Yi-xin;WANG Lu-ying;ZHAO Song;ZHU Xiao(College of Computer Science and Information Engineering,Harbin Normal University,Harbin 150025,China)
出处
《计算机工程与设计》
北大核心
2023年第9期2679-2686,共8页
Computer Engineering and Design
基金
国家自然科学基金项目(61902094)
哈尔滨师范大学博士科研启动基金项目(XKB201801)
黑龙江省自然科学基金项目(QC2018082)
黑龙江省普通本科高等学校青年创新人才培养计划基金项目(UNPYSCT-2018183)
哈尔滨师范大学计算机科学与信息工程学院科研基金项目(JKYKYY202004,JKYKYZ202104)
哈尔滨市科技局科技创新人才研究专项资金基金项目(RC2017QN010002)。
关键词
代码异味
安卓特有代码异味
忽略成员的方法
文本信息
特征融合
机器学习
集成学习
code smell
Android-specific code smells
member ignoring method
text information
feature fusion
machine learning
ensemble learning