← Zurück zu allen Artikeln
Legacy Modernisierung
Pascal, altes C, Assembler: Wie wir unlesbaren Code modernisieren
November 2025·11 min Lesezeit
Wenn Quellcode fehlt und Dokumentation nie existierte, wirkt Modernisierung unmöglich. In der Praxis ist sie oft machbar — wenn man systematisch vorgeht und Risiken kontrolliert.
1) Bestandsaufnahme: Was haben wir wirklich?
- Hardware, Schnittstellen, IO, Feldbusse
- Firmware/Software-Versionen, Dumps, Backups
- Betriebsabläufe: was ist „kritisch“, was optional?
2) Dynamische Analyse: Verhalten verstehen
Wir instrumentieren das System (Logging, Tracing, Daten-Capture), um Zustände, Timings und Fehlerfälle zu beobachten — ohne Produktion zu gefährden.
3) Static Analysis: Binary & Protokolle
Mit Tools wie Ghidra/IDA identifizieren wir:
- State-Machines
- Sicherheitsrelevante Routinen (Auth, Crypto, Input)
- Kommunikationspfade und Checksummen
4) Rekonstruktion: Spezifikation schreiben
Die wichtigste Deliverable ist oft nicht Code, sondern eine belastbare, testbare Spezifikation: Inputs/Outputs, Zustände, Timing-Annahmen, Fehlermodi.
5) Modernisierung: Schrittweise, testbar, rollback-fähig
- Kleine, isolierte Komponenten zuerst
- Golden-Data Tests (gleiche Inputs → gleiche Outputs)
- Inkrementelle Rollouts + Monitoring
Fazit
„Unlesbarer Legacy-Code“ ist selten ein Blocker — eher ein Risiko, das man mit Methodik, Tests und guter Instrumentierung beherrscht.