Impact of code refactoring using object-oriented methodology on a scientific computing application

Malin Kallen, Sverker Holmgren, Ebba Þóra Hvannberg

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

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.

Original languageEnglish
Title of host publicationProceedings - 2014 14th IEEE International Working Conference on Source Code Analysis and Manipulation, SCAM 2014
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages125-134
Number of pages10
ISBN (Electronic)9780769553047
DOIs
Publication statusPublished - 4 Dec 2014
Event14th IEEE International Working Conference on Source Code Analysis and Manipulation, SCAM 2014 - Victoria, Canada
Duration: 28 Sept 201429 Sept 2014

Publication series

NameProceedings - 2014 14th IEEE International Working Conference on Source Code Analysis and Manipulation, SCAM 2014

Conference

Conference14th IEEE International Working Conference on Source Code Analysis and Manipulation, SCAM 2014
Country/TerritoryCanada
CityVictoria
Period28/09/1429/09/14

Bibliographical note

Publisher Copyright: © 2014 IEEE.

Other keywords

  • CRTP
  • Design patterns
  • High performance computing
  • Maintainability
  • Object orientation
  • Refactoring
  • Software metrics
  • Static polymorphism

Fingerprint

Dive into the research topics of 'Impact of code refactoring using object-oriented methodology on a scientific computing application'. Together they form a unique fingerprint.

Cite this