Zum Inhalt springen
Künstliche Intelligenz

Modernisierung von Legacy-Systemen mit KI-Hilfe

Altsysteme sind für viele Unternehmen unverzichtbar, aber oftmals nur schwer und mit hohem Aufwand in moderne IT-Infrastrukturen zu integrieren. Mit Hilfe von KI können die alten Codes jetzt schneller und einfacher analysiert, optimiert, getestet und in moderne Sprachen und Plattformen überführt werden.

Autor: Niklas Bläsing / Redaktion: Sabine Narloch • 17.10.2025 • ca. 3:50 Min

Legacy System
© Profit_Image - shutterstock.com

Die Modernisierung von Legacy-Systemen ist bislang nicht nur aufwändig, sondern auch mit einer Reihe von Unwägbarkeiten verbunden: Fallen dabei geschäftskritische Anwendungen aus oder ergeben sich Sicherheitslücken, können die Konsequenzen gravierend sein. Mit KI-Unterstützung wird dieser Prozess jedoch erheblich vereinfacht und beschleunigt. KI kann Codes in alten Programmiersprachen wie Cobol, Fortran oder PL1 analysieren und optimieren, sie in moderne Sprachen migrieren, die daraus resultierenden Ergebnisse testen und validieren sowie zukunftssichere Plattformen schaffen. Richtig eingesetzt, ist sie damit der lange vergeblich gesuchte Hebel für die Einbindung von Legacy-Systemen in aktuelle Infrastrukturen und damit für die Modernisierung der IT insgesamt.

Semantische Code-Analyse und automatisiertes Refactoring

Die größte Einstiegshürde dabei ist das Verstehen der Geschäftslogik im Legacy-Code. Die bislang mühsame Aufgabe, Module, Abhängigkeiten, Hotspots und Funktionalitäten zu identifizieren übernimmt jetzt KI. Sie analysiert und interpretiert den Code (Parsing), erstellt Abstract Syntax Trees (AST) und untersucht die Daten- und Kontrollflüsse. Komplexe Abhängigkeiten zwischen Modulen oder Variablen werden durch Control Flow Graphs (CFGs) oder Data Flow Graphs (DFGs) identifiziert.

Mit Hilfe von Sprachmodellen wie OpenAI Codex, CodeBERT oder StarCoder kann zudem semantische Nähe in Codes sichtbar gemacht werden. Sie wandeln ihn dazu in Vektoren um, die funktional ähnliche Methoden oder wiederkehrende Muster erkennen. Die mühsame – und häufig vergebliche – Suche nach Dokumentationen der alten Codes wird dadurch obsolet. Auch die Beschreibung der neuen Codes kann KI übernehmen. Per Natural Language Summarization erzeugt sie aus Codeblöcken allgemeinverständliche Erklärungen in natürlicher Sprache, wie zum Beispiel: „Diese Funktion berechnet das Versicherungsrisiko auf der Grundlage von Alter und Einkommen.“

Code-Optimierung durch automatisiertes Re-Factoring

Damit ist die erste und wichtigste Stufe genommen, die Einsatzoptionen von KI sind dadurch allerdings noch lange nicht erschöpft. Im nächsten Schritt wartet die Aufgabe den Code so zu optimieren, dass er sicherer und besser strukturiert ist, um ihn einfacher zu warten und wenn möglich auch performanter zu machen. Dazu werden Modelle wie DeepCode, SonarQube oder LLM-gestützte Tools eingesetzt, die störende Muster (Anti-Patterns) wie Long Method, God Class oder Duplicate Code identifizieren. Code Smell Detection berücksichtigt dabei auch architekturabhängige Einschränkungen, wie zum Beispiel regulatorische oder sicherheitsrelevante Vorgaben (Constraints).

Werden Muster wie verschachtelte Schleifen oder alte API-Aufrufe erkannt, schlägt KI moderne Alternativen vor, etwa Promises statt Callbacks, Lambdas statt anonymer Klassen oder die Verwendung deklarativer Programmierstile. Außerdem identifiziert die KI durch statische Code-Analyse in Kombination mit Laufzeitdaten (Tracing, Logging) ungenutzte Pfade oder redundante Komponenten und entfernt sie (Dead Code Elimination). Das macht den Code schlanker, schneller und einfacher zu warten.

Migration auf moderne Sprachen und Architekturen

Nachdem der Code mit Hilfe von KI modularisiert und strukturell analysierbar ist, kann er jetzt auf moderne Systeme migriert werden. Dies allerdings nicht mehr wie früher in Wochen oder gar Monaten, sondern innerhalb weniger Tage oder sogar nur Stunden. Dabei wird der Code per LLM-gestützter Migration durch neuronale Netze wie GPT-4, Codex oder StarCoder in eine neue Sprache überführt, beispielsweise Cobol in Python oder VB.NET in TypeScript. Innerhalb dieses Prozesses werden auch idiomatische Unterschiede bei den Datenstrukturen oder im Umgang mit Fehlern erkannt. Bei der Prompt-basierten Migration erzeugt KI funktionale und idiomatische Vorschläge auf Basis von Prompts wie zum Beispiel „Rewrite this class in idiomatic TypeScript using OOP and include logging“.

Test und Validierung

KI kann aber nicht nur Code migrieren, sondern auch die passenden Tests dafür generieren, um die funktionale Gleichwertigkeit sicherzustellen und die KI-generierten Ergebnisse abzusichern. Regressionen lassen sich dadurch frühzeitig erkennen, auch ohne vollständiges Wissen über die ursprüngliche Codebasis. Gerade für streng regulierte Branchen wie Banken, Versicherungen oder die Pharmaindustrie ist dies essenziell. Dazu wird per Differential Testing das Verhalten von Alt- und Neu-Code bei identischen Inputs verglichen. Ergeben sich dabei Unterschiede, deutet dies auf Funktionsänderungen hin, kann aber auch auf unklare Requirements zurückzuführen sein.

Die Robustheit und Tiefe der Tests wird per Mutation Testing überprüft. Dabei verändert KI absichtlich Teile des Codes, beispielweise „>“ durch „>=“ und überprüft, ob die Testsuite dies erkennt. Fachliche Testfälle werden bei KI-generierten Tests aus semantischem Codeverständnis abgeleitet: „Wenn Alter < 18, dann darf kein Kredit genehmigt werden.“ Implizite Regeln und Ausnahmen fließen dabei mit ein.

Definition der Zielarchitektur

Letztlich ist das Ziel der Code-Migration eine zukunftssichere Plattform zu schaffen und die Codes direkt in moderne DevOps- und Cloud-Umgebungen zu überführen – inklusive Containerisierung und Infrastructure-as-a-Code. Zu den wichtigsten KI-Technologien dafür zählen die Domänenanalyse und das KI-Mapping. Anforderungen aus Jira, Confluence oder alten Spezifikationen werden dabei extrahiert und auf moderne Architekturbausteine wie REST-Services, Queues, oder Events gemappt.

Bei der Microservice-Candidate Detection identifizieren statische Analysen mit KI-Unterstützung Funktionsgruppen, die sich gut als eigenständige Microservices abbilden lassen. Voraussetzung dafür sind unter anderem eine hohe interne Kohäsion und eine geringe Kopplung nach außen. Basierend auf vorhandenen Setup-Skripten, Dependencies und Build-Konfigurationen schlägt die KI passende Dockerfiles, CI/CD-Pipelines oder Helm-Charts für die Dockerization vor.

Bei der Migration von Legacy-Code schält sich eine besonders sinnvolle und zielführende Arbeitsteilung zwischen Mensch und KI heraus: Menschen entwickeln die Idee, KI macht die Code-Basis, der Mensch kümmert sich um das Fine-Tuning und KI übernimmt das Testing. So macht jeder das, was er am besten kann – und ergänzt sich damit optimal.

Niklas Bläsing ist Director Head of Data & AI bei CGI Deutschland