Van 6 miljoen regels legacycode naar direct inzicht: Deltares ontrafelt 40 jaar softwaregeschiedenis

Delen:
De uitdaging

Verborgen logica en geïsoleerde kennis

De D-Flow FM calculation kernel is grotendeels geschreven in Fortran. In de loop van tientallen jaren is de software continu verder ontwikkeld en uitgebreid. Hierdoor ontstond een omvangrijke codebase waarin veel technische en domeinspecifieke kennis verweven zit.

Tegelijkertijd gingen senior developers en domeinexperts die aan de oorspronkelijke software hadden gewerkt met pensioen of verlieten zij de organisatie. Daarmee dreigde een deel van de historische context en kennis over ongedocumenteerde dependencies verloren te gaan.

Voor Deltares was het daarom belangrijk om opnieuw volledige grip te krijgen op de bestaande softwarearchitectuur. Developers moesten snel antwoord kunnen krijgen op vragen over:

  • Exacte call trees, dependencies en het gebruik van global variables en global state.
  • De inhoudelijke consistentie tussen de Fortran-code en de officiële technische referentiedocumentatie, waaronder TechRef-PDF’s.
  • Complexe code paths die met traditionele zoekmethoden veel tijd kosten om volledig te analyseren.
De oplossing

Re:App Reverse Architecting

Samen met SUE startte Deltares een Reverse Architecting-project om de D-Flow FM kernel volledig te analyseren en in kaart te brengen met Re:App, SUE’s AI-gedreven oplossing voor applicatiemodernisatie. Het doel was niet om de bestaande software direct te vervangen, maar om eerst inzichtelijk te maken hoe de applicatie daadwerkelijk is opgebouwd en hoe code, dependencies en technische documentatie met elkaar samenhangen.

Code en context samenbrengen

De volledige Fortran-codebase van circa zes miljoen regels code werd in Re:App opgenomen, samen met CMake-buildconfiguraties, utility libraries en technische documentatie.

Hierdoor kon Re:App niet alleen individuele bestanden analyseren, maar verbanden leggen over de volledige applicatie.

Knowledge Graph en hybrid search

Binnen Re:App configureerde SUE een hybride zoekarchitectuur waarin onderdelen uit de source code, zoals subroutines en variabelen, direct werden gekoppeld aan relevante documentatie en hydrologische formules.

Deze Knowledge Graph maakt het mogelijk om vragen niet alleen op basis van tekstuele overeenkomsten te beantwoorden, maar ook vanuit de daadwerkelijke relaties binnen de softwarearchitectuur.

Gespecialiseerde AI-agents

Voor specifieke analyses werden gespecialiseerde subagents ingezet. Zo kunnen onder andere automatisch visuele Mermaid call-tree diagrams worden gegenereerd.

Door taken en context af te bakenen per agent blijft de analyse gericht en kunnen complexe architectuurvragen over een grote codebase nauwkeurig worden onderzocht.

Validatie door domeinexperts

De resultaten werden vervolgens getest en gevalideerd door developers en domeinexperts van Deltares. Via de chatinterface van Re:App konden zij concrete vragen stellen over de architectuur, code paths en technische documentatie en de antwoorden direct controleren.

Het resultaat

Van miljoenen regels code naar direct inzicht

De D-Flow FM calculation kernel is met Re:App reverse architected. Daarmee heeft Deltares veel sneller inzicht in de structuur, dependencies en verborgen logica binnen een omvangrijke en bedrijfskritische legacy-codebase. De aanpak werd getoetst aan vooraf bepaalde succescriteria en vergeleken met reguliere AI coding assistants, zoals GitHub Copilot.

Inzicht over de volledige codebase

Waar traditionele AI coding assistants voornamelijk werken vanuit lokale context, kan Re:App verbanden onderzoeken over de volledige repository.

Daardoor kunnen developers vragen stellen over top-level entry points, complexe dependencies tussen modules en de bredere architectuur van de applicatie.

Code en documentatie direct gekoppeld

Re:App koppelt source code aan interne coding guidelines en technische referentiedocumentatie.

Vragen over bijvoorbeeld hydrologische formules kunnen daardoor direct worden verbonden aan de relevante implementatie en bijbehorende broninformatie.

Minder ruimte voor hallucinaties

Door de integratie met de Knowledge Graph baseert Re:App analyses op daadwerkelijk aanwezige bestanden, subroutines en onderlinge relaties binnen de codebase.

Dit verkleint de kans op incorrecte of verzonnen verwijzingen en maakt resultaten beter controleerbaar door developers.

Architecturale verbanden zichtbaar

Naast het samenvatten van grote en complexe routines maakt Re:App ook onderlinge afhankelijkheden en mogelijke inconsistenties tussen modules inzichtelijk.

Hierdoor ontstaat niet alleen inzicht in wat afzonderlijke stukken code doen, maar vooral in hoe de applicatie als geheel functioneert.

Van uren zoeken naar antwoorden in seconden

Onderzoek naar complexe code paths vergde voorheen vaak uren of zelfs dagen en bestond onder andere uit handmatige zoekopdrachten met tools als grep.

Met Re:App kunnen developers dezelfde architectuurvragen rechtstreeks stellen en binnen enkele seconden gericht inzicht krijgen in de relevante code, dependencies en documentatie.

Han van Veldhuizen, Director Digital Technology
"We zijn blij met de resultaten van het project. Re:App geeft ons een eenvoudigere manier om beter inzicht te krijgen in de complexe code achter onze software."

Let's Talk

stefan.behlen 1
Stefan Behlen

Let's talk!


Let's Talk

* required

Door dit formulier te verzenden bevestig je dat je onze privacyverklaring hebt gelezen en begrepen.
Privacyoverzicht
Deze website gebruikt cookies. We gebruiken cookies om onze website en diensten goed te laten functioneren, om inzicht te krijgen in het gebruik van onze website en om onze producten en marketing te verbeteren. Lees voor meer informatie ons privacy- en cookiebeleid.