{"title":"Stuck in The Middle: Removing Obstacles to New Program Features through Batch Refactoring","authors":"Eduardo Fernandes","doi":"10.1109/ICSE-Companion.2019.00083","DOIUrl":null,"url":null,"abstract":"Developers may introduce poor code structures spotted by code smells along the software maintenance. However, only some of these structures eventually become obstacles to the addition of new features. Developers are forced to remove these obstacles before adding features. Identifying which poor structures are actual obstacles is hard, due to their subtlety and scattering across code elements. Such identification has been largely debated by developers in public platforms such as Gerrit Code Review. Fully removing obstacles is also hard, as developers often have to perform non-trivial sets of interrelated code transformations. Despite enabling the feature addition, certain sets of transformations tend to introduce rather than remove code smells. The scarce knowledge on recurring obstacles, and how refactoring can cope with them, helps little in guiding the feature addition. This doctoral research aims to address the current scarceness via empirical studies with projects and their developers. Our major goal is three-fold: (1) to assess past feature additions in order to elicit recurring obstacles; (2) to understand when interrelated transformations unexpectedly introduce poor code structures; and (3) to propose a refactoring recommender system. Contrarily to the few existing ones, our system aims to guide developers along the feature addition while removing poor code structures.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"6 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"10","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICSE-Companion.2019.00083","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 10
Abstract
Developers may introduce poor code structures spotted by code smells along the software maintenance. However, only some of these structures eventually become obstacles to the addition of new features. Developers are forced to remove these obstacles before adding features. Identifying which poor structures are actual obstacles is hard, due to their subtlety and scattering across code elements. Such identification has been largely debated by developers in public platforms such as Gerrit Code Review. Fully removing obstacles is also hard, as developers often have to perform non-trivial sets of interrelated code transformations. Despite enabling the feature addition, certain sets of transformations tend to introduce rather than remove code smells. The scarce knowledge on recurring obstacles, and how refactoring can cope with them, helps little in guiding the feature addition. This doctoral research aims to address the current scarceness via empirical studies with projects and their developers. Our major goal is three-fold: (1) to assess past feature additions in order to elicit recurring obstacles; (2) to understand when interrelated transformations unexpectedly introduce poor code structures; and (3) to propose a refactoring recommender system. Contrarily to the few existing ones, our system aims to guide developers along the feature addition while removing poor code structures.