基于监控与反馈的软件重构机会检测方法研究

基本信息
批准号:61472034
项目类别:面上项目
资助金额:80.00
负责人:刘辉
学科分类:
依托单位:北京理工大学
批准年份:2014
结题年份:2018
起止时间:2015-01-01 - 2018-12-31
项目状态: 已结题
项目参与者:樊孝忠,施重阳,刘如娟,林琳,黄胜,付红萍,刘秋荣,刘阳
关键词:
软件重构重构机会检测软件演化
结项摘要

Software refactoring is an effective means to improve software quality. Automated identification of refactoring opportunities is a hot topic in this field. Existing approaches identify refactoring opportunities by detecting code smells based on static source code analysis. They ignored the fact that characters of refactoring participants and software applications might influence identification of refactoring opportunities. To this end, we would investigate how to adjust thresholds for existing approaches according to feedback from users. We would also investigate how to identify similar refactoring opportunities according to current refactorings. Finally, we would investigate how to discover refactoring orders by minding refactoring history, and how to identify related refactoring opportunities according to current refactorings. Identification of refactoring opportunities according to current refactorings relies less on formal definition of code smells and characters of refactoring participants and software applications. Besides this benefit, the proposed approach could cooperate with existing code smell-based approaches to improve recall.

软件重构是提高软件质量的一个有效手段。重构机会的自动检测是其中的一个难点和热点问题。现有检测方法主要基于源代码的静态分析,通过检测代码坏味以寻找重构机会。现有方法过于依赖代码坏味的形式描述以及代码静态分析技术,忽视了程序员以及应用程序的个体差异对重构机会检测的影响。为此本项目计划研究如何根据程序员对检测结果的反馈动态优化调整现有检测算法的阈值设置,从而降低程序员和应用程序的个体差异对检测算法的影响;拟以"重命名"为例研究如何根据程序员的当前重构推荐类似重构机会及重构方案;计划挖掘重构历史数据找出时序上紧密相连的重构操作,分析前后重构之间的内在联系,进而提出相应的规则以根据当前重构推荐相关重构机会及重构方案。基于当前重构推荐相似及相关重构的方法既降低了对代码坏味形式化描述的依赖,也降低了程序员和应用程序的个体差异对检测算法的影响。此外该方法与基于代码坏味的检测方法可互为补充从而提高查全率。

项目摘要

软件重构机会的自动检测对软件开发与维护具有重要意义,但现有的检测方法过于依赖代码坏味的形式化描述以及源代码的静态分析,忽视了重构参与人员及应用程序的个体差异对重构机会检测的影响。为此,本项目研究分析了重构参与者对重构机会检测结果的反馈,提出了基于反馈的代码坏味阈值动态优化方法;研究分析了重构操作的内在联系,提出了基于监控的相似重构机会检测方法;研究分析了需求-代码追踪关系对软件重构的影响,提出了基于需求追踪关系的重构方案推荐方法。这些方法很好地利用了软件重构的上下文信息,避免了对代码静态结构的过度依赖,提高了重构机会推荐的准确率和召回率。此外,项目探索研究了基于深度学习的重构机会推荐方法,提出了反重构(anti-refactoring)的概念,很好地解决了训练数据的问题,为基于深度学习的重构推荐奠定了基础。在此基础上,研究提出了基于深度学习的特征依恋检测方法、基于深度学习的上帝类检测方法、基于深度学习的长函数检测方法等一系列的代码坏味检测方法,大幅度提高了重构推荐的准确率和召回率。针对最常见的重命名重构,提出了基于文本相似性的重命名推荐方法以及缩写词自动扩展方法。针对冗长重构菜单的选择困难,研究分析了重构参与者针对不同重构类型的代码选择模式,提出了重构菜单项的动态排序方法等。课题组还设计并实施相关实验,初步证明了以上研究成果的有效性。上述研究成果深入探索了基于多源信息和深度学习的重构推荐方法,对后续软件重构的研究具有重要意义。基于理论研究成果研发的相关工具也较大幅度地提高了软件重构的自动化水平以及软件重构的效率和效果。相关研究成果发表于国内外一流学术期刊与学术会议。在软件工程领域的顶级国际期刊IEEE Transactions on Software Engineering上发表论文3篇;在ICSE、ASE等软件工程领域顶级国际会议发表论文2篇;在重要国际SCI期刊与主流国际会议发表录用论文10篇;在国内一级学报发表论文3篇;培养中青年学术骨干3人、博士研究生8人、硕士研究生9人。

项目成果
{{index+1}}

{{i.achievement_title}}

{{i.achievement_title}}

DOI:{{i.doi}}
发表时间:{{i.publish_year}}

暂无此项成果

数据更新时间:2023-05-31

其他相关文献

1

演化经济地理学视角下的产业结构演替与分叉研究评述

演化经济地理学视角下的产业结构演替与分叉研究评述

DOI:10.15957/j.cnki.jjdl.2016.12.031
发表时间:2016
2

青藏高原狮泉河-拉果错-永珠-嘉黎蛇绿混杂岩带时空结构与构造演化

青藏高原狮泉河-拉果错-永珠-嘉黎蛇绿混杂岩带时空结构与构造演化

DOI:10.3799/dqkx.2020.083
发表时间:2020
3

基于全模式全聚焦方法的裂纹超声成像定量检测

基于全模式全聚焦方法的裂纹超声成像定量检测

DOI:10.19650/j.cnki.cjsi.J2007019
发表时间:2021
4

基于图卷积网络的归纳式微博谣言检测新方法

基于图卷积网络的归纳式微博谣言检测新方法

DOI:10.3785/j.issn.1008-973x.2022.05.013
发表时间:2022
5

人工智能技术在矿工不安全行为识别中的融合应用

人工智能技术在矿工不安全行为识别中的融合应用

DOI:10.16265/j.cnki.issn1003-3033.2019.01.002
发表时间:2019

刘辉的其他基金

批准号:11873027
批准年份:2018
资助金额:63.00
项目类别:面上项目
批准号:81560042
批准年份:2015
资助金额:40.00
项目类别:地区科学基金项目
批准号:39670273
批准年份:1996
资助金额:8.00
项目类别:面上项目
批准号:61672113
批准年份:2016
资助金额:62.00
项目类别:面上项目
批准号:51775040
批准年份:2017
资助金额:60.00
项目类别:面上项目
批准号:81271694
批准年份:2012
资助金额:65.00
项目类别:面上项目
批准号:21106057
批准年份:2011
资助金额:25.00
项目类别:青年科学基金项目
批准号:61772071
批准年份:2017
资助金额:60.00
项目类别:面上项目
批准号:21878320
批准年份:2018
资助金额:65.00
项目类别:面上项目
批准号:51703184
批准年份:2017
资助金额:25.00
项目类别:青年科学基金项目
批准号:61272169
批准年份:2012
资助金额:80.00
项目类别:面上项目
批准号:21806002
批准年份:2018
资助金额:24.50
项目类别:青年科学基金项目
批准号:40905014
批准年份:2009
资助金额:21.00
项目类别:青年科学基金项目
批准号:31871337
批准年份:2018
资助金额:59.00
项目类别:面上项目
批准号:51402084
批准年份:2014
资助金额:25.00
项目类别:青年科学基金项目
批准号:51701073
批准年份:2017
资助金额:24.00
项目类别:青年科学基金项目
批准号:81101384
批准年份:2011
资助金额:23.00
项目类别:青年科学基金项目
批准号:30770724
批准年份:2007
资助金额:25.00
项目类别:面上项目
批准号:21706187
批准年份:2017
资助金额:24.00
项目类别:青年科学基金项目
批准号:51375047
批准年份:2013
资助金额:83.00
项目类别:面上项目
批准号:61201408
批准年份:2012
资助金额:25.00
项目类别:青年科学基金项目
批准号:81772307
批准年份:2017
资助金额:55.00
项目类别:面上项目
批准号:31201000
批准年份:2012
资助金额:20.00
项目类别:青年科学基金项目
批准号:61003065
批准年份:2010
资助金额:20.00
项目类别:青年科学基金项目
批准号:10874081
批准年份:2008
资助金额:35.00
项目类别:面上项目
批准号:81771799
批准年份:2017
资助金额:25.00
项目类别:面上项目
批准号:61863018
批准年份:2018
资助金额:37.00
项目类别:地区科学基金项目
批准号:41806150
批准年份:2018
资助金额:25.00
项目类别:青年科学基金项目
批准号:51402085
批准年份:2014
资助金额:24.00
项目类别:青年科学基金项目
批准号:31301789
批准年份:2013
资助金额:23.00
项目类别:青年科学基金项目
批准号:81500978
批准年份:2015
资助金额:19.00
项目类别:青年科学基金项目
批准号:30370484
批准年份:2003
资助金额:7.00
项目类别:面上项目
批准号:51671079
批准年份:2016
资助金额:65.00
项目类别:面上项目
批准号:50905018
批准年份:2009
资助金额:20.00
项目类别:青年科学基金项目
批准号:10604029
批准年份:2006
资助金额:30.00
项目类别:青年科学基金项目
批准号:41901411
批准年份:2019
资助金额:25.00
项目类别:青年科学基金项目
批准号:21607058
批准年份:2016
资助金额:17.00
项目类别:青年科学基金项目
批准号:31100954
批准年份:2011
资助金额:23.00
项目类别:青年科学基金项目
批准号:81772529
批准年份:2017
资助金额:52.00
项目类别:面上项目
批准号:81200384
批准年份:2012
资助金额:23.00
项目类别:青年科学基金项目
批准号:11402178
批准年份:2014
资助金额:26.00
项目类别:青年科学基金项目
批准号:20877021
批准年份:2008
资助金额:33.00
项目类别:面上项目
批准号:30801187
批准年份:2008
资助金额:16.00
项目类别:青年科学基金项目
批准号:51107054
批准年份:2011
资助金额:26.00
项目类别:青年科学基金项目
批准号:11505041
批准年份:2015
资助金额:23.00
项目类别:青年科学基金项目
批准号:21106170
批准年份:2011
资助金额:25.00
项目类别:青年科学基金项目
批准号:21376271
批准年份:2013
资助金额:80.00
项目类别:面上项目
批准号:11074119
批准年份:2010
资助金额:48.00
项目类别:面上项目
批准号:51104134
批准年份:2011
资助金额:25.00
项目类别:青年科学基金项目
批准号:21277040
批准年份:2012
资助金额:80.00
项目类别:面上项目
批准号:11374151
批准年份:2013
资助金额:89.00
项目类别:面上项目
批准号:51577085
批准年份:2015
资助金额:56.00
项目类别:面上项目
批准号:30371301
批准年份:2003
资助金额:20.00
项目类别:面上项目
批准号:31670493
批准年份:2016
资助金额:63.00
项目类别:面上项目
批准号:51308553
批准年份:2013
资助金额:25.00
项目类别:青年科学基金项目
批准号:51776047
批准年份:2017
资助金额:60.00
项目类别:面上项目
批准号:81602465
批准年份:2016
资助金额:17.00
项目类别:青年科学基金项目
批准号:31400589
批准年份:2014
资助金额:25.00
项目类别:青年科学基金项目
批准号:51908355
批准年份:2019
资助金额:24.00
项目类别:青年科学基金项目
批准号:31800165
批准年份:2018
资助金额:24.00
项目类别:青年科学基金项目
批准号:51272147
批准年份:2012
资助金额:80.00
项目类别:面上项目
批准号:61873283
批准年份:2018
资助金额:63.00
项目类别:面上项目
批准号:11901342
批准年份:2019
资助金额:23.00
项目类别:青年科学基金项目
批准号:81572103
批准年份:2015
资助金额:57.00
项目类别:面上项目
批准号:51476045
批准年份:2014
资助金额:80.00
项目类别:面上项目

相似国自然基金

1

基于执行反馈的多核软件动态分析方法研究

批准号:61300017
批准年份:2013
负责人:胡燕
学科分类:F0203
资助金额:23.00
项目类别:青年科学基金项目
2

软件重构调度方法研究

批准号:61003065
批准年份:2010
负责人:刘辉
学科分类:F0203
资助金额:20.00
项目类别:青年科学基金项目
3

基于紧急异常声音事件检测与分类的音频监控系统方法研究

批准号:61305027
批准年份:2013
负责人:倪崇嘉
学科分类:F0304
资助金额:24.00
项目类别:青年科学基金项目
4

移动恶意软件规避检测行为的机理与检测方法研究

批准号:61602121
批准年份:2016
负责人:杨哲慜
学科分类:F0205
资助金额:20.00
项目类别:青年科学基金项目