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 some recent development processes such DevOps that are based on rapid releases.
In this paper, we propose for the first time an intelligent software refactoring bot, called RefBot. Integrated into the version control system (e.g. GitHub), our bot continuously monitors the software repository and it is triggered by any open or merge actions 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 is able to review the recommendations 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 bot’s pull request. We quantitatively and qualitatively evaluated the performance and effectiveness of RefBot by a survey conducted with experienced developers who used the bot.
Thu 14 Nov
10:40 - 12:20: Papers - Refactoring and Software Production at Hillcrest Chair(s): Cyrille ArthoKTH Royal Institute of Technology, Sweden | ||||||||||||||||||||||||||||||||||||||||||
10:40 - 11:00 Talk | RefBot: Intelligent Software Refactoring Bot Vahid AlizadehUniversity of Michigan, Mohamed Amine OualiUniversity of Michigan, Marouane KessentiniUniversity of Michigan, Meriem ChaterUniversity of Michigan | |||||||||||||||||||||||||||||||||||||||||
11:00 - 11:20 Talk | Automated Refactoring to Reactive Programming | |||||||||||||||||||||||||||||||||||||||||
11:20 - 11:40 Talk | Trusted Software Supply Chain Kapil SingiAccenture, R.P. Jagadeesh Chandra BoseAccenture Labs, Sanjay PodderAccenture, Adam P. BurdenAccenture | |||||||||||||||||||||||||||||||||||||||||
11:40 - 12:00 Talk | A Journey Towards Providing Intelligence and Actionable Insights to Development Teams in Software Delivery Vibhu Saujanya SharmaAccenture Labs, Rohit MehraAccenture Labs, India, Sanjay PodderAccenture, Adam P. BurdenAccenture | |||||||||||||||||||||||||||||||||||||||||
12:00 - 12:10 Demonstration | Prema: A Tool for Precise Requirements Editing, Modeling and Analysis Yihao HuangEast China Normal University, Jincao FengEast China Normal University, Hanyue ZhengEast China Normal University, Jiayi ZhuEast China Normal University, Shang WangEast China Normal University, Siyuan JiangEastern Michigan University, Weikai MiaoShanghai Key Lab for Trustworthy Computing, School of Computer Science and Software Engineering, East China Normal University, Geguang PuEast China Normal University&Shanghai Trusted Industrial Control Platform Co., Ltd | |||||||||||||||||||||||||||||||||||||||||
12:10 - 12:20 Talk | Empirical Study of Programming to an Interface Benoît VerhaegheINRIA, Christopher FuhrmanÉcole de technologie supérieure, Nicolas AnquetilINRIA, Latifa GuerroujÉcole de Technologie Supérieure, Stéphane Ducasse INRIA Lille Pre-print Media Attached |