RefBot: Intelligent Software Refactoring Bot

被引:0
作者
Alizadeh, Valid [1 ]
Ouali, Mohamed Amine [1 ]
Kessentini, Marouane [1 ]
Chater, Meriem [1 ]
机构
[1] Univ Michigan, CIS Dept, Software Engn Intelligence Lab, Ann Arbor, MI 48109 USA
来源
34TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE 2019) | 2019年
关键词
Software bot; refactoring; quality; MODEL;
D O I
暂无
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
The adoption of refactoring techniques for continuous integration received much less attention from the research community comparing to root -canal refactoring to fix the quality issues in the whole system. Several recent empirical studies show that developers, in practice, are applying refactoring incrementally when they are fixing bugs or adding new features. There is an urgent need for refactoring tools that can support continuous integration and sonic recent development processes such as DevOps that are based on rapid releases. Furthermore, several studies show that manual refactoring is expensive and existing automated refactoring tools are challenging to configure and integrate into the development pipelines with significant disruption cost. In this paper, we propose, for the first time, an intelligent software refactoring bot, called RefBot. Integrated into the version control system (e.g. Gitilub), our hot continuously monitors the software repository, and it is triggered by any "open" or "merge" action on pull requests. The bot analyzes the files changed during that pull request to identify refactoring opportunities using a set of quality attributes then it will find the best sequence of refactorings to fix the quality issues if any. The bot recommends all these refactorings through an automatically generated pull request. The developer can review the reconunendations and their impacts in a detailed report and select the code changes that he wants to keep or ignore. After this review, the developer can close and approve the merge of the boys pull request. We quantitatively and qualitatively evaluated the performance and effectiveness of RefBot by a survey conducted with experienced developers who used the bot on both open source and industry projects.
引用
收藏
页码:835 / 846
页数:12
相关论文
共 48 条
[1]  
Alizadeh V., 2018, IEEE T SOFTWARE ENG
[2]  
Alizadeh V, 2018, IEEE INT CONF AUTOM, P464, DOI [10.1145/3238147.3238217, 10.114513238147.3238217]
[3]   A Practical Guide for Using Statistical Tests to Assess Randomized Algorithms in Software Engineering [J].
Arcuri, Andrea ;
Briand, Lionel .
2011 33RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2011, :1-10
[4]  
Balachandran V, 2013, IEEE INT WORK C SO, P167, DOI 10.1109/SCAM.2013.6648198
[5]   A hierarchical model for object-oriented design quality assessment [J].
Bansiya, J ;
Davis, CG .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2002, 28 (01) :4-17
[6]  
Bavota Gabriele, 2014, Recommending Refactoring Operations in Large Software Systems, P387
[7]  
ben Fadhel A, 2012, 2012 28TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE (ICSM), P212, DOI 10.1109/ICSM.2012.6405274
[8]  
Bohner S. A., 1996, SOFTWARE CHANGE IMPA, V6
[9]   A fast and elitist multiobjective genetic algorithm: NSGA-II [J].
Deb, K ;
Pratap, A ;
Agarwal, S ;
Meyarivan, T .
IEEE TRANSACTIONS ON EVOLUTIONARY COMPUTATION, 2002, 6 (02) :182-197
[10]   Model Transformation Modularization as a Many-Objective Optimization Problem [J].
Fleck, Martin ;
Troya, Javier ;
Kessentini, Marouane ;
Wimmer, Manuel ;
Alkhazi, Bader .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2017, 43 (11) :1009-1032