Legacy-Software, oft als „Altsoftware“ bezeichnet, ist eine Software, die auf älteren Technologien basiert und in der Regel schon seit vielen Jahren im Einsatz ist.

Diese Software hat häufig nur wenig oder veraltete Dokumentation, enthält zahlreiche ungenutzte Features und weist oft undokumentierte Schnittstellen auf. All diese Faktoren machen den Umgang mit Legacy-Software zu einer großen Herausforderung. Speziell dann, wenn man die Software wieder auf Vordermann bringen oder durch ein neues System ablösen möchte.

Doch mit einer strukturierten Herangehensweise kann die Analyse und anschließende Modernisierung solcher Systeme erfolgreich gemeistert werden.

In diesem Blogpost geben wir Ihnen einen Leitfaden an die Hand, wie Sie eine Legacy-Software am besten analysieren können.

Schritt 1: Bestandsaufnahme

Der erste Schritt zur Analyse einer Legacy-Software besteht darin, eine umfassende Bestandsaufnahme durchzuführen. Hierbei sollten Sie alle verfügbaren Dokumentationen, Quellcodes und Systemarchitekturen sammeln und sichten. Ziel ist es, ein grundlegendes Verständnis der Software zu erlangen und die bestehenden Systemkomponenten zu identifizieren.

Tipp: Holen Sie auch referenzierte Dokumente ein und versuchen Sie, aus dem Kontext der Dokumentation Lücken im eigenen Verständnis zu schließen, oder diese als offene Punkte für die weitere Analysephase festzuhalten.

Schritt 2: Funktionale Analyse

Nach der Bestandsaufnahme sollten Sie eine detaillierte funktionale Analyse der Software durchführen. Erstellen Sie eine Liste aller Funktionen und Features der Software, die Sie aus der Bestandsaufnahme ableiten können.

Anschließend führen Sie Interviews mit den Nutzern der Software. Identifizieren Sie dabei auch Funktionen, die nicht oder nur selten genutzt werden sowie Features, die unbedingt erhalten bleiben müssen. Des Weiteren hinterfragen Sie Anforderungen, die das System derzeit nicht erfüllen kann und die für die Nutzer von großer Bedeutung sind.

Bei den Interviews werden sich einige offene Fragen ergeben, die nicht von den Nutzern beantwortet werden können. Schreiben Sie diese auf einer eigenen Liste mit. Ziel ist es, diese am Ende der Analysephase allesamt abgearbeitet zu haben.

Tipp: Sprechen Sie mit allen Nutzergruppen der Software, um keinen wesentlichen Aspekt der Software zu übersehen.

Schritt 3: Technische Analyse

Die technische Analyse ist ein wesentlicher Bestandteil bei der Untersuchung von Legacy-Software. Dabei durchforsten Sie den Quellcode, um einen Überblick über die Qualität der Umsetzung zu erhalten. Achten Sie dabei besonders auf:

  • Wiederholten Code (Code-Duplikate), welcher ein typischer Hinweis für schlechte Code-Qualität ist
  • Schwer lesbaren Code, der eine Weiterentwicklung maßgeblich behindern könnte
  • Veraltete oder nicht mehr unterstützte Technologien und Bibliotheken
  • Sicherheitslücken und Schwachstellen

Tipp: Verwenden Sie statische Code-Analyse-Tools wie SonarQube oder Fortify Scan, um automatisiert nach Fehlern und Problemen im Quellcode zu suchen.

Schritt 4: Schnittstellen und Abhängigkeiten

Ein häufiges Problem bei Legacy-Software sind unbekannte oder schlecht dokumentierte Schnittstellen und Abhängigkeiten. Um diese zu identifizieren, sollten Sie:

  • Die Kommunikation zwischen verschiedenen Systemkomponenten analysieren
  • Externe Abhängigkeiten und Schnittstellen zu anderen Systemen oder Diensten auflisten und überprüfen
  • Mit den angebundenen Systemteilnehmern sprechen. Oft verstecken sich hinter angebundenen Systemen weitere wesentliche Nutzergruppen, die in den Analyseprozess involviert werden sollten

Tipp: Dokumentieren Sie alle Schnittstellen und Abhängigkeiten gründlich, um späteren Entwicklern die Arbeit zu erleichtern. Achten sie bei Schnittstellen speziell darauf, den Datenfluss und die übertragenen Daten genau zu dokumentieren.

Schritt 5: Dokumentation und Bericht

Nach Abschluss der Analyse sollten alle Ergebnisse gründlich dokumentiert und in einem ausführlichen Bericht zusammengefasst werden. Dieser Bericht sollte enthalten:

  • Eine Übersicht der aktuellen Systemarchitektur
  • Eine Liste an Nutzergruppen und deren Interessen an der Software
  • Eine Liste aller identifizierten Funktionen und deren Relevanz
  • Eine Übersicht über die Qualität des Quellcodes der aktuellen Software
  • Eine detaillierte Analyse der Schnittstellen und Abhängigkeiten
  • Handlungsempfehlungen und Prioritäten für die weitere Vorgehensweise

Tipp: Halten Sie den Bericht so klar und verständlich wie möglich, um ihn auch Nicht-Entwicklern zugänglich zu machen.

Fazit

Die Analyse von Legacy-Software ist eine komplexe und anspruchsvolle Aufgabe, die jedoch mit einer strukturierten und systematischen Herangehensweise von erfahrenen Experten bewältigt werden kann.

Durch eine gründliche Bestandsaufnahme, funktionale Analyse, technische Code-Analyse, Untersuchung der Schnittstellen und Abhängigkeiten können Sie die Schwachstellen und Potenziale der Altsoftware aufdecken und gezielt angehen.

So schaffen Sie die Basis für eine erfolgreiche Modernisierung und Optimierung Ihrer Legacy-Software.