Exploiting bad-smells and object-oriented characteristics to prioritize classes for refactoring

被引:4
|
作者
Malhotra, Ruchika [1 ]
Singh, Priya [1 ]
机构
[1] Delhi Technol Univ, Dept Software Engn, Delhi 110042, India
关键词
Bad-smells; Refactoring methods; Object-oriented characteristics; Software quality; Software maintenance; OPPORTUNITIES; QUALITY;
D O I
10.1007/s13198-020-01001-x
中图分类号
T [工业技术];
学科分类号
08 ;
摘要
Bad-smell indicates code-design flaws and poor software-quality that weaken software design and inversely affects software development. It also works as a catalyst for bugs and failures in the software system. Refactoring methods are used by software practitioners as corrective actions for bad-smells. The problem relies in the fact that there are over seventy refactoring methods available in literature and multiple refactoring methods can be used to nullify the effect of a particular bad-smell. So, it becomes very difficult to apply refactoring on complete source-code and almost impossible if software size is dramatically large. Thus, there arises a need for prioritizing classes in some way. This study aims at applying refactoring solution to only severely affected classes to improve the overall software quality. We proposed a framework that detects a small subset of classes from the entire source-code instantly require refactoring. This prioritization of classes is based on two factors-severity of the presence of bad-smells and object-oriented characteristics. The approach is evaluated on eight open-source Java software systems using ten most common bad-smells and six widely known C&K metrics. Both these factors help in calculating a new metric Quality Depreciation Index Rule (QDIR) that exposes those classes that are highly affected by bad-smells and demand an immediate refactoring solution. Results of the empirical study indicate that QDIR is an effective metric to remove bad-smells in an environment of stringent time constraints and limited cost making the maintenance of software system easier and effective with enhanced software quality.
引用
收藏
页码:133 / 144
页数:12
相关论文
共 50 条
  • [31] An illustrative example of refactoring object-oriented source code with aspect-oriented mechanisms
    Monteiro, Miguel P.
    Fernandes, Joao M.
    SOFTWARE-PRACTICE & EXPERIENCE, 2008, 38 (04): : 361 - 396
  • [32] An illustrative example of refactoring object-oriented source code with aspect-oriented mechanisms
    Departamento de Informática, Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa, 2829-516 Caparica, Portugal
    不详
    不详
    Software Pract Exper, 1600, 4 (361-396):
  • [33] LP-structures analysis: Substantiation of refactoring in object-oriented programming
    S. D. Makhortov
    M. D. Shurlin
    Automation and Remote Control, 2013, 74 : 1211 - 1217
  • [34] Refactoring Monolithic Object-Oriented Source Code to Materialize Microservice-oriented Architecture
    Zaragoza, Pascal
    Seriai, Abdelhak-Djamel
    Seriai, Abderrahmane
    Bouziane, Hinde-Lilia
    Shatnawi, Anas
    Derras, Mustapha
    PROCEEDINGS OF THE 16TH INTERNATIONAL CONFERENCE ON SOFTWARE TECHNOLOGIES (ICSOFT), 2021, : 78 - 89
  • [35] Refactoring monolithic object-oriented source code to materialize microservice-oriented architecture
    Zaragoza, Pascal
    Seriai, Abdelhak-Djamel
    Seriai, Abderrahmane
    Bouziane, Hinde-Lilia
    Shatnawi, Anas
    Derras, Mustapha
    Proceedings of the 16th International Conference on Software Technologies, ICSOFT 2021, 2021, : 78 - 89
  • [36] Assessing The Impact of Refactoring on Security-Critical Object-Oriented Designs
    Alshammari, Bandar
    Fidge, Colin
    Corney, Diane
    17TH ASIA PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2010), 2010, : 186 - 195
  • [37] Exploiting Linearity in Sharing Analysis of Object-oriented Programs
    Amato, Gianluca
    Meo, Maria Chiara
    Scozzari, Francesca
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2016, 322 : 3 - 18
  • [38] A Case Study in Object-oriented Patterns Identified During Manual Refactoring
    Dillon, Brian S.
    2016 IEEE/ACIS 14TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING RESEARCH, MANAGEMENT AND APPLICATIONS (SERA), 2016, : 91 - 98
  • [39] A technique for automatic component extraction from object-oriented programs by refactoring
    Washizaki, H
    Fukazawa, Y
    SCIENCE OF COMPUTER PROGRAMMING, 2005, 56 (1-2) : 99 - 116
  • [40] Identifying refactoring opportunities in object-oriented code: A systematic literature review
    Al Dallal, Jehad
    INFORMATION AND SOFTWARE TECHNOLOGY, 2015, 58 : 231 - 249