An approach to prioritize code smells for refactoring

被引:71
|
作者
Vidal, Santiago A. [1 ,2 ]
Marcos, Claudia [1 ,3 ]
Andres Diaz-Pace, J. [1 ,2 ]
机构
[1] UNICEN, ISISTAN, Tandil, Argentina
[2] Consejo Nacl Invest Cient & Tecn, Tandil, Argentina
[3] CIC, Buenos Aires, DF, Argentina
关键词
Code smells; Refactoring; Software evolution; Design problems; IDENTIFICATION; OPPORTUNITIES; EVOLUTION;
D O I
10.1007/s10515-014-0175-x
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Code smells are a popular mechanism to find structural design problems in software systems. Consequently, several tools have emerged to support the detection of code smells. However, the number of smells returned by current tools usually exceeds the amount of problems that the developer can deal with, particularly when the effort available for performing refactorings is limited. Moreover, not all the code smells are equally relevant to the goals of the system or its health. This article presents a semi-automated approach that helps developers focus on the most critical problems of the system. We have developed a tool that suggests a ranking of code smells, based on a combination of three criteria, namely: past component modifications, important modifiability scenarios for the system, and relevance of the kind of smell. These criteria are complementary and enable our approach to assess the smells from different perspectives. Our approach has been evaluated in two case-studies, and the results show that the suggested code smells are useful to developers.
引用
收藏
页码:501 / 532
页数:32
相关论文
共 50 条
  • [21] How Do Developers Select and Prioritize Code Smells? A Preliminary Study
    Sae-Lim, Natthawute
    Hayashi, Shinpei
    Saeki, Motoshi
    2017 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME), 2017, : 484 - 488
  • [22] A systematic literature review: Refactoring for disclosing code smells in object oriented software
    Singh, Satwinder
    Kaur, Sharanpreet
    AIN SHAMS ENGINEERING JOURNAL, 2018, 9 (04) : 2129 - 2151
  • [23] Do We Have a Chance to Fix Bugs When Refactoring Code Smells?
    Ma, Wanwangying
    Chen, Lin
    Zhou, Yuming
    Xu, Baowen
    2016 INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, TESTING AND EVOLUTION (SATE 2016), 2016, : 24 - 29
  • [24] A Lightweight Approach for Detection of Code Smells
    Ghulam Rasool
    Zeeshan Arshad
    Arabian Journal for Science and Engineering, 2017, 42 : 483 - 506
  • [25] A Lightweight Approach for Detection of Code Smells
    Rasool, Ghulam
    Arshad, Zeeshan
    ARABIAN JOURNAL FOR SCIENCE AND ENGINEERING, 2017, 42 (02) : 483 - 506
  • [26] Refactoring Opportunity Identification Methodology for Removing Long Method Smells and Improving Code Analyzability
    Meananeatra, Panita
    Rongviriyapanish, Songsakdi
    Apiwattanapong, Taweesup
    IEICE TRANSACTIONS ON INFORMATION AND SYSTEMS, 2018, E101D (07): : 1766 - 1779
  • [27] Analyzing the Impact of Refactoring on Bad Smells
    Tavares, Cleiton
    Bigonha, Mariza
    Figueiredo, Eduardo
    34TH BRAZILIAN SYMPOSIUM ON SOFTWARE ENGINEERING, SBES 2020, 2020, : 97 - 101
  • [28] A Bayesian Approach for the Detection of Code and Design Smells
    Khomh, Foutse
    Vaucher, Stephane
    Gueheneuc, Yann-Gael
    Sahraoui, Houari
    2009 NINTH INTERNATIONAL CONFERENCE ON QUALITY SOFTWARE (QSIC 2009), 2009, : 305 - +
  • [29] Impact on energy consumption of design patterns, code smells and refactoring techniques: A systematic mapping study
    Poy, Olivia
    Angeles Moraga, Ma
    Garcia, Felix
    Calero, Coral
    JOURNAL OF SYSTEMS AND SOFTWARE, 2025, 222
  • [30] An Approach to Suggest Code Smell Order for Refactoring
    Guggulothu, Thirupathi
    Moiz, Salman Abdul
    EMERGING TECHNOLOGIES IN COMPUTER ENGINEERING: MICROSERVICES IN BIG DATA ANALYTICS, 2019, 985 : 250 - 260