Identification of generalization refactoring opportunities

被引:15
|
作者
Liu, Hui [1 ]
Niu, Zhendong [1 ]
Ma, Zhiyi [2 ]
Shao, Weizhong [2 ]
机构
[1] Beijing Inst Technol, Sch Comp Sci & Technol, Beijing 100081, Peoples R China
[2] Peking Univ, Key Lab High Confidence Software Technol, Minist Educ, Beijing 100871, Peoples R China
基金
中国国家自然科学基金;
关键词
Software quality; Software refactoring; Generalization refactoring; Opportunity identification; Tool support; Software maintenance; CODE; SMELLS;
D O I
10.1007/s10515-012-0100-0
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Generalization refactoring helps relate classes and share functions, including both interfaces and implementation, by inheritance. To apply generalization refactoring, developers should first identify potential generalization refactoring opportunities, i.e., software entities that might benefit from generalization refactoring. For non-trivial software systems, manual identification of these opportunities is challenging and time-consuming. However, to the best of our knowledge, no existing tools have been specifically designed for this task. As a result, people have to identify these opportunities manually or with the help of tools designed for other purposes, e.g., clone detectors. To this end, we propose a tool GenReferee (Generalization Referee) to identify potential refactoring opportunities according to conceptual relationship, implementation similarity, structural correspondence, and inheritance hierarchies. It was first calibrated on two non-trivial open source applications, and then evaluated on another three. Evaluation results suggest that the proposed approach is effective and efficient.
引用
收藏
页码:81 / 110
页数:30
相关论文
共 50 条
  • [1] Identification of generalization refactoring opportunities
    Hui Liu
    Zhendong Niu
    Zhiyi Ma
    Weizhong Shao
    Automated Software Engineering, 2013, 20 : 81 - 110
  • [2] Identification of Extract Method Refactoring Opportunities
    Tsantalis, Nikolaos
    Chatzigeorgiou, Alexander
    13TH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING: CSMR 2009, PROCEEDINGS, 2009, : 119 - 128
  • [3] Identification of refactoring opportunities introducing polymorphism
    Tsantalis, Nikolaos
    Chatzigeorgiou, Alexander
    JOURNAL OF SYSTEMS AND SOFTWARE, 2010, 83 (03) : 391 - 404
  • [4] Identification of Move Method Refactoring Opportunities
    Tsantalis, Nikolaos
    Chatzigeorgiou, Alexander
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2009, 35 (03) : 347 - 367
  • [5] Context-Sensitive Identification of Refactoring Opportunities
    Cedrim, Diego
    2016 IEEE/ACM 38TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING COMPANION (ICSE-C), 2016, : 827 - 830
  • [6] Identification of extract method refactoring opportunities for the decomposition of methods
    Tsantalis, Nikolaos
    Chatzigeorgiou, Alexander
    JOURNAL OF SYSTEMS AND SOFTWARE, 2011, 84 (10) : 1757 - 1782
  • [7] Identification of opportunities for move method refactoring using decision theory
    Boonkwan, Siriwan
    Muenchaisri, Pornsiri
    Lecture Notes in Electrical Engineering, 2015, 339 : 877 - 884
  • [8] Identification of refactoring opportunities for source code based on class association relationships
    Liu, Wei
    Yang, Na
    Huang, Xin-di
    Hu, Wei
    Hu, Zhi-gang
    JOURNAL OF CENTRAL SOUTH UNIVERSITY, 2020, 27 (12) : 3768 - 3778
  • [9] Identification of Web Service Refactoring Opportunities as a Multi-Objective Problem
    Wang, Hanzhang
    Ouni, Ali
    Kessentini, Marouane
    Maxim, Bruce
    Grosky, William I.
    2016 IEEE INTERNATIONAL CONFERENCE ON WEB SERVICES (ICWS), 2016, : 586 - 593
  • [10] Refactoring for generalization using type constraints
    Tip, F
    Kiezun, A
    Bäumer, D
    ACM SIGPLAN NOTICES, 2003, 38 (11) : 13 - 26