• DocumentCode
    175526
  • Title

    Impact of Code Refactoring Using Object-Oriented Methodology on a Scientific Computing Application

  • Author

    Kallen, Malin ; Holmgren, Sverker ; Hvannberg, Ebba Pora

  • Author_Institution
    Dept. of Inf. Technol., Uppsala Univ., Uppsala, Sweden
  • fYear
    2014
  • fDate
    28-29 Sept. 2014
  • Firstpage
    125
  • Lastpage
    134
  • Abstract
    Methods and tools for refactoring of software have been extensively studied during the last decades, and we argue that there is now a need for additional studies of the effects of refactoring on code quality and external code attributes such as computational performance. To study these effects, we have refactored the central parts of a code base developed in academia for a class of computationally demanding scientific computing problems. We made design choices on the basis of the SOLID principles and we used object-oriented techniques, such as the Gang of Four patterns, in the implementation. In this paper, we discuss the effect on maintainability qualitatively and also analyze it quantitatively using a set of software metrics extending the Chidamber-Kemerer suite. Not surprisingly, we find that maintainability has increased as an effect of the refactoring. We also study performance and find that dynamic binding, which inhibits in lining by the compiler, in the most frequently executed parts of the code makes the execution times increase by over 700%. By exploiting static polymorphism, we have been able able to reduce the relative increase in execution times to less than 100%. We argue that the code version implementing static polymorphism is less maintainable than the one using dynamic polymorphism, although both versions are considerably more maintainable than the original code.
  • Keywords
    natural sciences computing; object-oriented methods; software maintenance; software metrics; Chidamber-Kemerer suite; Gang of Four patterns; SOLID principles; code refactoring; dynamic binding; dynamic polymorphism; execution times; maintainability effect; object-oriented methodology; object-oriented techniques; scientific computing application; software metrics; static polymorphism; Abstracts; Concrete; Couplings; Software; Software metrics; Solids; CRTP; Design patterns; High performance computing; Maintainability; Object orientation; Refactoring; Software metrics; Static polymorphism;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Source Code Analysis and Manipulation (SCAM), 2014 IEEE 14th International Working Conference on
  • Conference_Location
    Victoria, BC
  • Type

    conf

  • DOI
    10.1109/SCAM.2014.21
  • Filename
    6975646