LLM-Based Legacy Application Re-engineering Platform: An Experience Report of Migrating a Web Application
Abstract
Re-engineering software (web) applications is a frequent modernization task, with little to no automation, rendering it tedious, time-consuming, and prone to errors. Specifically for web applications, the front-end is typically fully replaced with a novel technology stack while still requiring full interoperability with the back-end, still offering the same functionalities, and still satisfying the same business needs. Recent advances have shown successful use of Generative AI, and specifically LLMs, in software re-engineering tasks. Still, the studied software systems are either small, demonstrating migrations at the scale of methods, single attributes, or only of their types, or they require LLMs with large context windows to be aware of, for instance, entire classes or the full software project. In this paper, we introduce a legacy application re-engineering platform that uses business context data and the source code of a full-stack software system to inform five LLM-based agents. The agents, draft a full migration plan of transforming the legacy software system into the desired target technology stack while respecting latest coding best practices and fixing technical debts. We provide an experience report of a case study, where we migrate a legacy web application implemented in Angular 5, and in Java using the Play Framework, into a modern website using Angular 21 for the front-end and recent Java Spring Boot technology for the back-end. By only requesting the desired target technology stack, our LLM-based platform creates and executes the migration plan fully autonomously. Through senior developers' audits, we identify 5 critical issues that mainly relate to the configuration of the back-end and a few missing end-point implementations, and 4 issues of medium severity relating to the front-end while the full application is executable upon creation. Lastly, we discuss the insights gained from building and running our platform.