首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

基于深度学习的忽略成员的方法异味检测策略 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:哈尔滨师范大学

摘要:基于深度学习的忽略成员的方法异味检测策略,本发明涉及Android代码异味中忽略成员的方法检测策略。本发明的目的是为了解决传统检测工具在检测Android特有代码异味时,准确率较低的问题。基于深度学习的忽略成员的方法检测策略具体过程为:步骤一、获取数据集;步骤二、对数据集进行预处理,得到预处理后的数据集;步骤三、构建深度神经网络分类器,并得到训练好的深度神经网络分类器;步骤四、对待测Android特有代码异味输入训练好的深度神经网络分类器,输出待测Android特有代码异味中是否存在成员异味。本发明用于软件工程领域。

主权项:1.基于深度学习的忽略成员的方法异味检测策略,其特征在于:所述策略具体过程为:步骤一、获取数据集;步骤二、对数据集进行预处理,得到预处理后的数据集;步骤三、构建深度神经网络分类器,并得到训练好的深度神经网络分类器;步骤四、对待测Android特有代码异味输入训练好的深度神经网络分类器,输出待测Android特有代码异味中是否存在成员异味;所述步骤一中获取数据集;具体过程为:步骤一一、在开源代码库AndroZooOpen中下载Android应用程序;步骤一二、使用工具RepoReapers去除低质量的Android应用程序,得到最终Android应用程序作为代码语料库,获取数据集;具体过程为:步骤一二一、使用JavaParser将Android应用程序源代码解析生成代码的抽象语法树;步骤一二二、使用工具ASSD对代码的抽象语法树进行MIM异味检测,输出MIM异味检测结果;将MIM异味检测结果中的漏检和误检移除;将移除漏检和误检后的检测结果中存在MIM异味的方法和不存在MIM异味的方法分别提取到单独的文件夹中,存在MIM异味的方法对应的代码语料库中的程序构成正样本集,不存在MIM异味的方法对应的代码语料库中的程序构成负样本集;所述MIM为忽略成员的方法;所述步骤一二二具体过程为:步骤一二二一、使用工具ASSD对代码的抽象语法树进行MIM异味检测,输出MIM异味检测结果;步骤一二二二、将步骤一二二一输出的MIM异味检测结果中的漏检和误检移除;具体过程为:根据工具DAAP中检测规则遍历步骤一二二一输出的MIM异味检测结果中的类中的方法,判断MIM异味检测结果中的类中的方法是否为空方法,静态方法或者子类覆盖父类的方法,如果是,则将MIM异味检测结果中的类中的方法放入不含异味的方法的集合nonsmellySets中;如果不是,根据MIM异味检测结果中的类中的方法是否访问所在类的属性判断是否为MIM异味,如果没有访问所在类的属性,则是MIM异味,放入含异味的方法的集合smellySets中,如果访问所在类的属性,则不是MIM异味,放入不含异味的方法的集合nonsmellySets中;步骤一二二三、将移除漏检和误检后的检测结果中存在MIM异味的方法和不存在MIM异味的方法分别提取到单独的文件夹中,存在MIM异味的方法对应的代码语料库中的程序构成正样本集,不存在MIM异味的方法对应的代码语料库中的程序构成负样本集;所述步骤三中深度神经网络分类器为改进卷积神经网络模型CNN、改进循环神经网络模型RNN、CNN与RNN相结合的模型CNN-LSTM、自编码全连接变体、自编码CNN变体中任意一个;所述CNN与RNN相结合的模型CNN-LSTM依次包括嵌入层、第一卷积层、第一最大池化层、第二卷积层、第二最大池化层、第三卷积层、第三最大池化层、一个长短时记忆网络LSTM层、一个Dropout层、一个Flatten层、第一全连接层、第二全连接层、第三全连接层、输出层;所述第一卷积层过滤器个数为32,内核大小为3;所述第一最大池化层窗口大小为2;所述第二卷积层过滤器个数为64,内核大小为3;所述第二最大池化层窗口大小为2;所述第三卷积层过滤器个数为64,内核大小为3;所述第三最大池化层窗口大小为2;所述LSTM层的输出维度设置为128;所述Dropout层的脱落率设置为0.5;所述第一全连接层神经元个数分别为64;所述第二全连接层神经元个数分别为32;所述第三全连接层神经元个数分别为1;所述第一卷积层、第一最大池化层、第二卷积层、第二最大池化层、第三卷积层、第三最大池化层、第一全连接层和第二全连接层激活函数为relu激活函数;所述第三全连接层激活函数为sigmoid激活函数;所述CNN与RNN相结合的模型CNN-LSTM损失函数为binary_crossentropy函数,优化器为RMSProp;将步骤二预处理后的数据集输入CNN与RNN相结合的模型CNN-LSTM,训练K次,得到训练好的CNN与RNN相结合的模型CNN-LSTM;所述自编码全连接变体包括编码部分和解码部分;编码部分依次包括第一全连接层、第二全连接层、第三全连接层;解码部分依次包括第四全连接层、第五全连接层、第六全连接层;编码部分:所述第一全连接层神经元个位为1024,激活函数为tanh;所述第二全连接层神经元个位为512,激活函数为relu;所述第三全连接层神经元个位为256,激活函数为relu;解码部分:所述第四全连接层神经元个位为512,激活函数为relu;所述第五全连接层神经元个位为1024,激活函数为tanh;所述输出层第六全连接层神经元个位为1024,激活函数为sigmiod;所述自编码全连接变体损失函数为regularizers.L1函数,优化器为RMSProp;将步骤二预处理后的数据集输入自编码全连接变体,训练L次,得到训练好的自编码全连接变体;所述自编码CNN变体包括编码部分和解码部分;编码部分依次包括嵌入层、第一卷积层、第一最大池化层、第二卷积层、第二最大池化层;解码部分依次包括第三卷积层、第一上采样层、第四卷积层、第二上采样层、Fatten层和全连接层;编码部分:所述第一卷积层过滤器个数为32,内核大小为3;所述第一最大池化层窗口大小为2;所述第二卷积层过滤器个数为64,内核大小为3;所述第二最大池化层窗口大小为2;解码部分:所述第三卷积层过滤器个数为8,内核大小为3;所述第一上采样层窗口大小为2;所述第四卷积层过滤器个数为64,内核大小为3;所述第二上采样层窗口大小为2;所述全连接层神经元个位为1;所述第一卷积层、第一最大池化层、第二卷积层、第二最大池化层、第三卷积层、第一上采样层、第四卷积层、第二上采样层、Fatten层和全连接层的激活函数为relu激活函数;所述自编码CNN变体损失函数为binary_crossentropy函数,优化器为RMSProp;将步骤二预处理后的数据集分别输入自编码CNN变体,训练Q次,得到训练好的自编码CNN变体。

全文数据:

权利要求:

百度查询: 哈尔滨师范大学 基于深度学习的忽略成员的方法异味检测策略

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。