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
Kazman, Rick
中科院分区:
计算机科学1区
文献类型:
--
作者:
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.