Continuous Legacy Code Modernization During Development
Seilonen, Peetu (2023-06-21)
Continuous Legacy Code Modernization During Development
Seilonen, Peetu
(21.06.2023)
Julkaisu on tekijänoikeussäännösten alainen. Teosta voi lukea ja tulostaa henkilökohtaista käyttöä varten. Käyttö kaupallisiin tarkoituksiin on kielletty.
suljettu
Julkaisun pysyvä osoite on:
https://urn.fi/URN:NBN:fi-fe2023062257828
https://urn.fi/URN:NBN:fi-fe2023062257828
Tiivistelmä
The subject of this thesis is legacy code modernization, that is taking place during an active software development cycle. It presents a legacy enterprise web user interface software project, along with the maintenance and software development issues associated with it. These issues include difficulties with changing the code to fulfil changing and evolving software requirements and a monolithic architecture that prevents code level testing. In addition, the code base is also perceived difficult for developers to understand because of its high coupling and an imperative programming style, which consists of many low-level code structures that some would consider out-of-date as modern high-level languages provide higher level abstractions for low-level code operations.
A plan is introduced for mitigating these issues. The plan includes incremental migration to newer technologies: from JavaScript to TypeScript and from jQuery to Svelte, along with refactoring tasks towards a cleaner architecture and a more understandable code base. The plan also addresses the issues with the software development process and provides tools for its improvements, such as an automatic quality pipeline that can run custom tasks. The mitigation process takes time during an active software development cycle where new features and requirements are built into the software whilst taking new technologies, frameworks, and tools into use. The migration of the legacy code includes continuous and incremental relocating, refactoring, rewriting, and reverse-engineering of the code that is critical for the implementation of the new features that are required for the upcoming software release.
The outcome and results of this mitigation process presented in this thesis suggest that the improvement actions taken were successful in addressing the problems with the legacy code base. The process had a positive impact on the software development process, as the new features developed with the new technologies, tools, and methodologies were easier to implement and work with than in previous development cycles. The impact on the code quality showed that the code produced by the new process was easier to understand and had a lower cognitive load on the readers. The impact on the quality assurance showed that during this software development cycle there were significantly less bug tickets encountered than during previous software development cycles from the time before the improvement actions.
A plan is introduced for mitigating these issues. The plan includes incremental migration to newer technologies: from JavaScript to TypeScript and from jQuery to Svelte, along with refactoring tasks towards a cleaner architecture and a more understandable code base. The plan also addresses the issues with the software development process and provides tools for its improvements, such as an automatic quality pipeline that can run custom tasks. The mitigation process takes time during an active software development cycle where new features and requirements are built into the software whilst taking new technologies, frameworks, and tools into use. The migration of the legacy code includes continuous and incremental relocating, refactoring, rewriting, and reverse-engineering of the code that is critical for the implementation of the new features that are required for the upcoming software release.
The outcome and results of this mitigation process presented in this thesis suggest that the improvement actions taken were successful in addressing the problems with the legacy code base. The process had a positive impact on the software development process, as the new features developed with the new technologies, tools, and methodologies were easier to implement and work with than in previous development cycles. The impact on the code quality showed that the code produced by the new process was easier to understand and had a lower cognitive load on the readers. The impact on the quality assurance showed that during this software development cycle there were significantly less bug tickets encountered than during previous software development cycles from the time before the improvement actions.
Samankaltainen aineisto
Näytetään aineisto, joilla on samankaltaisia nimekkeitä, tekijöitä tai asiasanoja.
-
The functional fit between collaborative software and work systems:Qualification of work system needs to software functionality
Raffad, Zulfiqar (Turun yliopisto. Turun kauppakorkeakoulu, 04.05.2016)The study develops an approach that tries to validate software functionality to work systems needs in SMEs. The formulated approach is constructed by using a SAAS based software i.e., work collaboration service (WCS), and ... -
Notes on formal software development effort estimation and overall financial management of software projects
Tyvi, Åke (Turun yliopisto, 10.07.2018)Cost estimation in software engineering is one of the hardest challenges. Estimating the financial cost, total amount of man months needed in software development project or software size can be done in various methods. ... -
Software architecture in practice : Utilizing architecture analysis to aid software design decision-making
Lampikari, Joel (Turun yliopisto, 11.07.2018)Software has an ever-growing place in our daily lives through the mobile, web, desktop and other applications we use and rely on day to day. With this abundance of software systems surrounding us, it is easy to take their ...