MSR 2020
Mon 29 - Tue 30 June 2020
co-located with ICSE 2020
Mon 29 Jun 2020 10:30 - 10:37 at MSR:Zoom2 - Refactoring & Testing Chair(s): Mauricio Aniche

Refactoring consists of a program transformation applied to improve the internal structure of a program, for instance, by contributing to remove code smells. Developers often apply multiple interrelated refactorings called composite refactoring. Even though composite refactoring is a common practice, an investigation from different points of view on how composite refactoring manifests in practice is missing. Previous empirical studies also neglect how different kinds of composite refactorings affect the removal, prevalence or introduction of smells. To address these matters, we provide a conceptual framework and two heuristics to identify composite refactorings within and across commits. Then, we mined the commit history of 48 GitHub software projects, in which we identified and analyzed 24,911 composite refactorings involving 104,505 single refactorings. Amongst several findings, we observed that most composite refactorings occur in the same commit and have the same refactoring type. We also found that several refactorings are semantically related to each other, which occur in different parts of the system but are still related to the same task. Many smells are introduced in a program due to “incomplete” composite refactorings. Additionally, we found 111 patterns of composite refactorings that frequently introduce or remove certain smell types. They can be used as guidelines for developers to improve their refactoring practices as well as for designers of recommender systems.

Mon 29 Jun
Times are displayed in time zone: (UTC) Coordinated Universal Time change

10:30 - 11:00: Refactoring & TestingTechnical Papers / Registered Reports / Keynote / MSR Awards / FOSS Award / Education / Data Showcase / Mining Challenge / MSR Challenge Proposals / Ask Me Anything at MSR:Zoom2
Chair(s): Mauricio AnicheDelft University of Technology, Netherlands

Q/A & Discussion of Session Papers over Zoom (Joining info available on Slack)

10:30 - 10:37
Live Q&A
Technical Papers
Leonardo Da Silva SousaCarnegie Mellon University, USA, Diego CedrimPontifical Catholic University of Rio de Janeiro, Alessandro GarciaPUC-Rio, Willian OizumiPUC-Rio, Ana Carla BibianoPUC-Rio, Daniel OliveiraPUC-Rio, Miryung KimUniversity of California, Los Angeles, Anderson OliveiraPUC-Rio
Pre-print Media Attached
10:37 - 10:45
Live Q&A
Technical Papers
Matheus PaixaoUniversity of Fortaleza, Anderson UchôaPontifical Catholic University of Rio de Janeiro (PUC-Rio), Ana Carla BibianoPUC-Rio, Daniel OliveiraPUC-Rio, Alessandro GarciaPUC-Rio, Jens KrinkeUniversity College London, Emilio Arvonio
Pre-print Media Attached
10:45 - 10:52
Live Q&A
Data Showcase
Federico Corò, A: Roberto VerdecchiaVrije Universiteit Amsterdam, A: Emilio Cruciani, A: Breno MirandaFederal University of Pernambuco, A: Antonia BertolinoCNR-ISTI
Pre-print Media Attached
10:52 - 11:00
Live Q&A
Data Showcase
A: András Kicsi, A: László VidácsUniversity of Szeged, Hungary, A: Tibor Gyimothy
Pre-print Media Attached