Deconstructing the Refactoring Process from a Problem-Solving and Decision-Making Perspective

Thorsten Händler, Josef Frysak

Publication: Chapter in book/Conference proceedingContribution to conference proceedings

Abstract

Refactoring is the process of improving a software system’s internal technical quality by modifying and restructuring a system’s source code without changing its external behavior. Manual identification and assessment of refactoring candidates as well as planning and performing the refactoring steps are complex and tedious tasks, for which several tools and techniques for automation and decision support have been proposed in recent years. Despite these advances, refactoring is still a neglected part of software engineering in practice, which is attributed to several barriers that prevent software practitioners from refactoring. In this paper, we present an approach for deconstructing the refactoring process into decision-problems and corresponding decision-making sub-processes. Within this, we pursue the question of whether and how a theoretical perspective can contribute to better understand the difficulties in the refactoring process (barriers) and to help improving the refactoring support techniques (enablers). For this purpose, we follow a deductive reasoning approach by applying concepts from decision-making research to deconstruct the refactoring process. As a result, we present a process model, which integrates primary decision problems and corresponding decision-making sub-processes in refactoring. Based on this process model, software companies can gain a better understanding of decision-making in the refactoring process. We finally discuss the applied procedure and reflect on limitations and potential of applying such a theoretical perspective.
Original languageEnglish
Title of host publicationProc. of the 13th International Conference on Software Technologies (ICSOFT 2018)
Editors SciTePress
Place of PublicationPorto, Portugal
PublisherSciTePress
Pages363 - 372
DOIs
Publication statusPublished - 2018

Austrian Classification of Fields of Science and Technology (ÖFOS)

  • 102022 Software development
  • 102
  • 102015 Information systems
  • 502050 Business informatics

Cite this