Enabling Decision and Objective Space Exploration for Interactive Multi-Objective Refactoring
Enabling Decision and Objective Space Exploration for Interactive Multi-Objective Refactoring
复制标题
实现交互式多目标重构的决策和目标空间探索
DOI:
10.1109/tse.2020.3024814
复制
发表时间:
2020
影响因子:
7.4
通讯作者:
Kazman, Rick
中科院分区:
文献类型:
--
作者:
Rebai, Soumaya;Alizadeh, Vahid;Kessentini, Marouane;Fehri, Houcem;Kazman, Rick
Due to the conflicting nature of quality measures, there are always multiple refactoring options to fix quality issues. Thus, interaction with developers is critical to inject their preferences. While several interactive techniques have been proposed, developers still need to examine large numbers of possible refactorings, which makes the interaction time-consuming. Furthermore, existing interactive tools are limited to the ”objective space” to show developers the impacts of refactorings on quality attributes. However, the “decision space” is also important since developers may want to focus on specific code locations. In this paper, we propose an interactive approach that enables developers to pinpoint their preference simultaneously in the objective (quality metrics) and decision (code location) spaces. Developers may be interested in looking at refactoring strategies that can improve a specific quality attribute, such as extendibility (objective space), but such strategies may be related to different code locations (decision space). A plethora of solutions is generated at first using multi-objective search that tries to find the possible trade-offs between quality objectives. Then, an unsupervised learning algorithm clusters the trade-off solutions based on their quality metrics, and another clustering algorithm is applied within each cluster of the objective space to identify solutions related to different code locations. The objective and decision spaces can now be explored more efficiently by the developer, who can give feedback on a smaller number of solutions. This feedback is then used to generate constraints for the optimization process, to focus on the developer's regions of interest in both the decision and objective spaces. A manual validation of selected refactoring solutions by developers confirms that our approach outperforms state of the art refactoring techniques.