Papers for

enterprise software maintainers

Papers whose findings have a practical use for this group, as judged from the abstract. Open a paper to read what it means in practice.

LLM powered agents improve legacy code from model driven engineering tools

Is there a future for models in the LLM era?

Abstract: In an era where software development is deeply tied with Large Language Models, does Model Driven Engineering (MDE) still make sense? This raises the question of the extent to which MDE can be successfully combined with an LLM approach to address the downsides of each approach separately. In this paper, we try to answer that question by investigating a central Research Question: Can Agents powered by Large Language Models improve code generated from UML diagrams and text specifications by Model Driven Engineering (MDE) tools? To investigate this problem, we developed a novel LLM-powered Multi-Agentic approach called ARTHUR (Architecture Refactoring Through Hybrid UML Reasoning), a framework that aims at combining the reliability of MDE and the ease of use of LLMs. ARTHUR is designed to refactor legacy Java code produced by traditional, rule-based, MDE code generators from UML diagrams. To asses the answer to our question, we have refactored the legacy code of several projects from our custom dataset crafted for this purpose. \name{} which made it possible to add support for modern frameworks like Spring Boot, while ensuring compliance with Model-Based Testing techniques to verify that the code still corresponds to the initial model's specifications. We then measured the results obtained in terms of time and cost, passing test rate, and \texttt{compile@k}, \texttt{pass@k} and \texttt{pass$^k$} metrics. We also observed the effect of generating code directly from the conceptual model without the refactoring. Our preliminary test results show that MDE could not be more far from retirement, after all.

Mon 28 SeptSoftware Engineering
The gist
Software developers often use Model Driven Engineering (MDE) to turn diagrams into code, but it can produce outdated or limited programs. The authors explored whether artificial intelligence tools called Large Language Models (LLMs) can help improve this automatically generated code. They built a system named ARTHUR that uses multiple AI agents to refactor old Java code generated by MDE so it works better with modern frameworks like Spring Boot. Testing showed that combining MDE with LLM-powered refactoring can save time and keep the program faithful to its original design, suggesting MDE still has value in future software development.
Open → 2609.35281v1

Microservice safety improved by tracking data flow between APIs

SafeNom: Data-Aware Microservice Policies

Abstract: Many cloud-based applications are organized as loosely coupled microservices, where invoking a service's API triggers a cascade of APIs across many services and leads to inter-service exchange of API parameters and output responses. Current tools for monitoring microservice safety properties have limited expressiveness for properties that describe the flow of data through API calls. To this end, we present SafeNom, a specification and monitoring framework for microservices based on nominal languages. SafeNom policies can express both the desired order of API calls and how the data carried in requests and responses should or should not flow between the APIs. Policies are enforced using a nominal automaton-based distributed runtime monitor which can be applied in a blackbox and non-invasive manner, without access to the service implementation and without making changes to the service implementation. Our experiments show that our monitor can efficiently enforce rich data-aware properties while incurring minimal latency overhead, on the order of a few milliseconds.

Thu 24 SeptProgramming LanguagesNetworking and Internet Architecture
The gist
Modern cloud applications often rely on many small services working together, sending data back and forth. Sometimes, it’s hard to check if these services behave correctly, especially when it comes to how data flows through them. The authors created SafeNom, a tool that watches service communications without changing them, making sure calls happen in the right order and data moves properly. Their method causes only small delays and works without needing to see inside the services themselves.
Open → 2609.30394v1