Search-based Refactoring Using Recorded Code Changes

被引:37
|
作者
Ouni, Ali [1 ,2 ]
Kessentini, Marouane [2 ]
Sahraoui, Houari [1 ]
机构
[1] Univ Montreal, DIRO, Montreal, PQ H3C 3J7, Canada
[2] Missouri Univ Sci & Technol, CS, Rolla, MO 65409 USA
关键词
Search-based Software Engineering; Refactoring; Software Maintenance; Multi-objective Optimization;
D O I
10.1109/CSMR.2013.31
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Over the past decades, many techniques and tools have been developed to record the sequence of applied refactoring to improve design quality. We start from the observation that these recorded code changes can be used to propose new refactoring solutions in similar contexts. In addition, this knowledge can be combined with structural and semantic information, used by existing work, to improve the automation of refactoring. In this paper, we propose a multi-objective optimization approach to find the best sequence of refactorings that maximizes the use of refactoring applied in the past to similar contexts, minimizes semantic errors and minimizes the number of defects (improve code quality). To this end, we use the non-dominated sorting genetic algorithm (NSGA-II) to find the best trade-off between these three objectives. We report the results of our experiments on different open source java projects.
引用
收藏
页码:221 / 230
页数:10
相关论文
共 50 条
  • [1] Search-Based Refactoring Detection from Source Code Revisions
    Hayashi, Shinpei
    Tsuda, Yasuyuki
    Saeki, Motoshi
    IEICE TRANSACTIONS ON INFORMATION AND SYSTEMS, 2010, E93D (04): : 754 - 762
  • [2] Model refactoring using examples: a search-based approach
    Ghannem, Adnane
    El Boussaidi, Ghizlane
    Kessentini, Marouane
    JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2014, 26 (07) : 692 - 713
  • [3] Search-based refactoring: an empirical study
    O'Keeffe, Mark
    Cinneide, Mel O.
    JOURNAL OF SOFTWARE MAINTENANCE AND EVOLUTION-RESEARCH AND PRACTICE, 2008, 20 (05): : 345 - 364
  • [4] Challenges Classification in Search-Based Refactoring
    Shafiei, Narjes
    Keyvanpour, Mohammad Reza
    2020 6TH INTERNATIONAL CONFERENCE ON WEB RESEARCH (ICWR), 2020, : 106 - 112
  • [5] Search-based refactoring for software maintenance
    O'Keeffe, Mark
    Cinneide, Mel O.
    JOURNAL OF SYSTEMS AND SOFTWARE, 2008, 81 (04) : 502 - 516
  • [6] A systematic review on search-based refactoring
    Mariani, Thaina
    Vergilio, Silvia Regina
    INFORMATION AND SOFTWARE TECHNOLOGY, 2017, 83 : 14 - 34
  • [7] Multi-Criteria Code Refactoring Using Search-Based Software Engineering: An Industrial Case Study
    Ouni, Ali
    Kessentini, Marouane
    Sahraoui, Houari
    Inoue, Katsuro
    Deb, Kalyanmoy
    ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2016, 25 (03)
  • [8] Local Search-Based Refactoring as Graph Transformation
    Qayum, Fawad
    Heckel, Reiko
    1ST INTERNATIONAL SYMPOSIUM ON SEARCH BASED SOFTWARE ENGINEERING, PROCEEDINGS, 2009, : 43 - 46
  • [9] Getting the Most from Search-Based Refactoring
    O'Keeffe, Mark
    Cinneide, Mel O.
    GECCO 2007: GENETIC AND EVOLUTIONARY COMPUTATION CONFERENCE, VOL 1 AND 2, 2007, : 1114 - 1120
  • [10] Search-based Refactoring: Towards Semantics Preservation
    Ouni, Ali
    Kessentini, Marouane
    Sahraoui, Houari
    Hamdi, Mohamed Salah
    2012 28TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE (ICSM), 2012, : 347 - 356