Mining, Understanding and Integrating User Preferences in Software Refactoring Using Computational Search, Machine Learning, and Dimensionality Reduction
Search-based Software Engineering;Software Refactoring;Interactive Optimization;Objective Reduction;Software Maintenance and Evolution;Machine Learning;Information Systems Engineering;Computer Science;College of Engineering and Computer Science
Search-Based Software Engineering (SBSE) is a software development practice which focuses on couching software engineering problems as optimization problems using metaheuristic techniques to automate the search for near optimal solutions to those problems.While SBSE has been successfully applied to a wide variety of software engineering problems, our understanding of the extent and nature of how software engineering problems can be formulated as automated or semi-automated search is still lacking. The majority of software engineering solutions are very subjective and present difficulties to formally define fitness functions to evaluate them. Current studies focus on guiding the search of optimal solutions rather than performing it. It is unclear yet the degree of interaction required with software engineers during the optimization process and how to reduce it. In this work, we focus on search-based software maintenance and evolution problems including software refactoring and software remodularization to improve the quality of systems. We propose to address the following challenges:• A major challenge in adapting a search-based technique for a software engineeringproblem is the definition of the fitness function. In most cases, fitness functions areill-defined or subjective.• Most existing refactoring studies do not include the developer in the loop to analyzesuggested refactoring solutions, and give their feedback during the optimization process.In addition, some quality metrics are cost-expensive leading to cost-expensivefitness functions. Moreover, while quality metrics evaluate the structural improvementsof the refactored system, it is impossible to evaluate the semantic coherenceof the design without user interactions. • Finally, several metrics can be dependent and correlated, thus it may be possible to reduce the number of objectives/dimensions when addressing refactoring problems. To address the above challenges, this work provides new techniques and tools to formulate software refactoring as scalable and learning-based search problem. We proposed novel interactive learning-based techniques using machine learning to incorporate developers knowledge and preferences in the search, resulting in more efficient and cost-effective search-based refactoring recommendation systems. We designed and implemented novel objective reduction SBSE methodologies to support scalable number of objectives. The proposed solutions were empirically evaluated in academic (open-source systems) and industrialsettings.
【 预 览 】
附件列表
Files
Size
Format
View
Mining, Understanding and Integrating User Preferences in Software Refactoring Using Computational Search, Machine Learning, and Dimensionality Reduction