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
Link To Document :
بازگشت