dc.contributor.author | Seilonen, Peetu | |
dc.date.accessioned | 2023-08-28T11:01:35Z | |
dc.date.available | 2023-08-28T11:01:35Z | |
dc.date.issued | 2023-06-21 | |
dc.identifier.uri | https://www.utupub.fi/handle/10024/175633 | |
dc.description.abstract | 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. | |
dc.format.extent | 68 | |
dc.language.iso | eng | |
dc.rights | fi=Julkaisu on tekijänoikeussäännösten alainen. Teosta voi lukea ja tulostaa henkilökohtaista käyttöä varten. Käyttö kaupallisiin tarkoituksiin on kielletty.|en=This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.| | |
dc.subject | Legacy migration, Software modernization, Software quality, Software architecture, Design patterns, Software maintenance, Software development process, Web, Front End, Refactoring, Cognitive complexity | |
dc.title | Continuous Legacy Code Modernization During Development | |
dc.type.ontasot | fi=Diplomityö|en=Master's thesis| | |
dc.rights.accessrights | suljettu | |
dc.identifier.urn | URN:NBN:fi-fe2023062257828 | |
dc.contributor.faculty | fi=Teknillinen tiedekunta|en=Faculty of Technology| | |
dc.contributor.studysubject | fi=Tietotekniikka|en=Information and Communication Technology| | |
dc.contributor.department | fi=Tietotekniikan laitos|en=Department of Computing| | |