Refactoring Legacy Code Using Cleaning Up Cycles: An Experience Report

Andrei V. Girjoaba, Andrea Capiluppi

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

1 Citation (Scopus)

Abstract

Due to the lack of standards at the time they were written, many codebases suffer from reduced code quality. Some of these systems can not be replaced and need to be maintained to guarantee the healthy development of the software. In the context of this paper, we are presenting a case study performed on the legacy codebase of ASML, a leading Dutch company specializing in the design and manufacture of advanced semiconductor lithography equipment. As new policies were enforced within the company, many specific interfaces were deprecated. The presence of such obsolete interfaces in the codebase adds to the overall complexity of the legacy system, while also permitting a future violation of the Interface Segregation Principle, one of the five SOLID design principles. The objective of this paper is to present our experience with refactoring the specified interfaces. Besides performing the clean-up, we were tasked to find an optimal, iterative, and repeatable approach to performing the clean-up of these interfaces while documenting our findings in a reproducible manner for future employees. To discover an efficient clean-up strategy, we used the Action Research methodology. Going through the 'Planning', 'Acting', 'Observing' and 'Reflecting' phases of this methodology repeatedly, we revised the strategy and executed our refactoring work accordingly. After multiple refactoring operations, our process stabilized and we introduced the 'Cleaning-Up Cycle'. We spent less time and had fewer failures per interface as our cycle evolved, despite attempting more complex types of interfaces later. We found the Clean-Up Cycle to represent a valuable strategy when executing this type of refactoring. This was fed back to the ASML team and considered the foundation for future employees continuing our work.

Original languageEnglish
Title of host publication 2024 IEEE International Conference on Software Maintenance and Evolution (ICSME)
PublisherIEEE
Pages753-764
Number of pages12
ISBN (Electronic)9798350395686
DOIs
Publication statusPublished - 19-Dec-2024
Event40th IEEE International Conference on Software Maintenance and Evolution, ICSME 2024 - Flagstaff, United States
Duration: 6-Oct-202411-Oct-2024

Conference

Conference40th IEEE International Conference on Software Maintenance and Evolution, ICSME 2024
Country/TerritoryUnited States
CityFlagstaff
Period06/10/202411/10/2024

Keywords

  • Industrial experience
  • Legacy code
  • Refactoring
  • SOLID principles

Fingerprint

Dive into the research topics of 'Refactoring Legacy Code Using Cleaning Up Cycles: An Experience Report'. Together they form a unique fingerprint.

Cite this