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 条
  • [11] Exploiting the Progress of OO Refactoring Tools with Android Code Smells
    Gattal, Abderraouf
    Hammache, Abir
    Bousbia, Nabila
    Henniche, Adel Nassim
    36TH ANNUAL ACM SYMPOSIUM ON APPLIED COMPUTING, SAC 2021, 2021, : 1580 - 1583
  • [12] Code smells and refactoring: A tertiary systematic review of challenges and observations
    Lacerda, Guilherme
    Petrillo, Fabio
    Pimenta, Marcelo
    Gueheneuc, Yann Gael
    JOURNAL OF SYSTEMS AND SOFTWARE, 2020, 167
  • [13] Toward a novel taxonomy to capture code smells caused by refactoring
    Alkhomsan, Mashail N.
    Alshayeb, Mohammad
    Baslyman, Malak
    SCIENCE OF COMPUTER PROGRAMMING, 2024, 236
  • [14] A Quantitative Study on Characteristics and Effect of Batch Refactoring on Code Smells
    Bibiano, Ana Carla
    Fernandes, Eduardo
    Oliveira, Daniel
    Garcia, Alessandro
    Kalinowski, Marcos
    Fonseca, Baldoino
    Oliveira, Roberto
    Oliveira, Anderson
    Cedrim, Diego
    2019 13TH ACM/IEEE INTERNATIONAL SYMPOSIUM ON EMPIRICAL SOFTWARE ENGINEERING AND MEASUREMENT (ESEM 2019), 2019, : 31 - 41
  • [15] An Investigative Study on How Developers Filter and Prioritize Code Smells
    Sae-Lim, Natthawute
    Hayashi, Shinpei
    Saeki, Motoshi
    IEICE TRANSACTIONS ON INFORMATION AND SYSTEMS, 2018, E101D (07) : 1733 - 1742
  • [16] Exploiting bad-smells and object-oriented characteristics to prioritize classes for refactoring
    Ruchika Malhotra
    Priya Singh
    International Journal of System Assurance Engineering and Management, 2020, 11 : 133 - 144
  • [17] Exploiting bad-smells and object-oriented characteristics to prioritize classes for refactoring
    Malhotra, Ruchika
    Singh, Priya
    INTERNATIONAL JOURNAL OF SYSTEM ASSURANCE ENGINEERING AND MANAGEMENT, 2020, 11 (SUPPL 2) : 133 - 144
  • [18] Behavior-based test smells refactoring Toward an automatic approach to refactoring Eager Test and Lazy Test smells
    Pizzini, Adriano
    2022 ACM/IEEE 44TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: COMPANION PROCEEDINGS (ICSE-COMPANION 2022), 2022, : 261 - 263
  • [19] MORE: A multi-objective refactoring recommendation approach to introducing design patterns and fixing code smells
    Ouni, Ali
    Kessentini, Marouane
    Cinneide, Mel O.
    Sahraoui, Houari
    Deb, Kalyanmoy
    Inoue, Katsuro
    JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2017, 29 (05)
  • [20] A Systematic Literature Survey of Software Metrics, Code Smells and Refactoring Techniques
    Agnihotri, Mansi
    Chug, Anuradha
    JOURNAL OF INFORMATION PROCESSING SYSTEMS, 2020, 16 (04): : 915 - 934