Software-Modernisierung: viele Wege führen nach Rom

Foto des Autors
Dr. Georg Pietrek

Bei der Modernisierung einer Anwendung sind viele Dinge zu berücksichtigen. Der erste Schritt auf dem Weg zu einer modernisierten Anwendung ist die Entscheidung, aus welchen einzelnen Maßnahmen die Modernisierung besteht und in welcher Reihenfolge diese Maßnahmen angegangen werden.

Bei der Modernisierung einer Anwendung sind viele Dinge zu berücksichtigen. Der erste Schritt auf dem Weg zu einer modernisierten Anwendung ist die Entscheidung, aus welchen einzelnen Maßnahmen die Modernisierung besteht und in welcher Reihenfolge diese Maßnahmen angegangen werden.

Eigenschaften einer Unternehmensanwendung

Eine bei einem Unternehmen über viele Jahre erfolgreich im Einsatz befindliche Anwendung hat spezielle Eigenschaften – einige davon positiv, andere negativ (hier nur eine kleine Auswahl):

  • sie ist für den Geschäftsbetrieb des Unternehmens unverzichtbar
  • sie ist über viele Jahre gewachsen
  • sie ist groß
  • sie ist heterogen
  • sie ist für das Unternehmen wertvoll
  • sie ist kaum dokumentiert
  • sie enthält Teile, die technisch und/oder fachlich veraltet sind

Treiber für Modernisierung

Insbesondere die negativen Eigenschaften führen irgendwann zu einem Druck, die Anwendung modernisieren zu wollen (oder müssen). Typische Treiber dafür sind:

  • zu hohe Lizenz-/Betriebskosten der technischen Plattform
  • zu hohe Wartungskosten
  • der Wunsch, neue Schnittstellen zur Verfügung zu stellen, um dadurch neue Anwendungsbereiche zu ermöglichen (z. B. Zugang über das Internet)
  • der Weggang von Schlüsselpersonal und damit Wissen (z. B. durch Wechsel in den Ruhestand)
  • neue fachliche Anforderungen, die sich in der bestehenden Architektur nur noch schwer umsetzen lassen

Varianten der Modernisierung

Unter Modernisierung wird hier ganz allgemein die Veränderung einer Anwendung mit dem Ziel, aufgestaute negative Eigenschaften loszuwerden, verstanden.

Dafür gibt es grundsätzlich verschiedene Hauptvarianten:

  1. Restrukturierung: die Anwendung verbleibt auf der bisherigen Plattform, es werden aber Renovierungs-Maßnahmen durchgeführt (Refactoring)
  2. automatisierte Migration: ein magisches Werkzeug, das den Quelltext automatisiert umwandelt
  3. modellbasierte Migration: Extraktion von Informationen aus dem existierenden Quelltext mit dem Ziel, daraus modellgetrieben neuen Quelltext zu generieren
  4. Neu-Implementierung: eine manuelle Erstellung von neuem Quelltext auf der grünen Wiese

Welcher dieser Ansätze der richtige ist, ist von den konkreten Umständen abhängig, also von Ausgangsbasis und zu erreichenden Zielen. Das muss für jedes Modernisierungsvorhaben individuell untersucht werden.

Hier sei angemerkt, dass diese Varianten natürlich auch kombiniert werden können. Teile des zu modernisierenden Systems können unterschiedlich behandelt werden: ein Teil wird restrukturiert, ein Teil wird migriert und ein anderer Teil wird neu entwickelt.

Das Ziel

Ausgangspunkt jeder Modernisierung ist ein IST-Zustand, das ist die Architektur des Systems im aktuellen Zustand:

Für die Modernisierung wird dann ein SOLL-Zustand definiert: wie soll das System nach der Modernisierung aussehen?

Den Soll-Zustand festzulegen ist nicht der schwierigste Schritt, wie Architekturen moderner Systeme heute aussehen, hat die IT-Branche inzwischen gut im Griff.

Der Weg

Die größere Schwierigkeit besteht darin, einen Weg aufzuzeigen, wie man vom Ist-Zustand zum Soll-Zustand gelangt. In den seltensten Fällen gelingt dies in einem Schritt, eine Modernisierung erfordert normalerweise eine wohlüberlegte Folge von Schritten.

Man beginnt mit der Auflistung möglicher Schritte. Pro Schritt besteht das aus dem Beschreiben des mit dem Schritt erreichbaren Ziel-Zustands, der betroffenen Teile des Systems und der Maßnahmen (siehe oben: Varianten).

Die Wege erhält man, indem man überlegt, welche Abfolge von Schritten praktikabel ist und zur Erreichung des Ziel-Zustandes führt. Die Auswahl des besten Weges erfolgt dann unter Berücksichtigung der Rahmenbedingungen des Migrationsvorhabens (Ziele, Anforderungen und Randbedingungen). Wir stehen hier vor einer klassischen Optimierungsaufgabe.

Ein Praxis-Beispiel

Die bereits gezeigten Illustrationen stammen aus einem Modernisierungs-Vorhaben für eine Oracle Forms-Anwendung. Es wurden 4 mögliche Ziel-Zustände identifiziert (mit einer klaren Präferenz für das Ziel „Neue Plattform“). Danach konnten 8 verschiedene Wege aufgelistet werden, wie die verschiedenen Zielzustände, teilweise durch Zwischenschritte über andere Ziel-Zustände, erreichbar sind:

In einem 1-Tages-Workshop wurden diese Wege detailliert betrachtet mit ihren Konsequenzen, Vorteilen und Nachteilen. Ergebnis des Workshops war dann die Entscheidung für den Weg 5:

  • Modellbasierte Migration der Benutzeroberfläche
  • Restrukturierung der existierenden Logik (PL/SQL) und Einziehen eines Service Layers
  • Schrittweise Ablösung der Logik durch Neuimplementierung in einer neuen Programmiersprache (Java)

Fazit

Wesentlich für den Erfolg eines Modernisierungsprojektes ist die Festlegung des Ziels und des Weges hin zur modernisierten Anwendung.

Diese Klärung erfolgt durch folgende Aktivitäten:

  • Bestimmung der Ziele, Anforderungen und Randbedingungen des Modernisierungsvorhabens
  • Skizzierung des Ziel-Zustands (oder mehrerer möglicher Zielzustände)
  • Auflistung der (zumindest halbwegs sinnvollen) Wege, die zur Erreichung des Ziel-Zustands führen
  • Bewertung der Wege unter Berücksichtigung der im ersten Schritt erfassten Ziele, Anforderungen und Randbedingungen

Als Ergebnis erhält man die Entscheidung für den Weg, der unter den gegebenen Rahmenbedingungen der beste ist.

Eine solche Untersuchung ist mit relativ moderatem Aufwand machbar und kann der Startpunkt für eine Modernisierung sein. Auch wenn noch keine konkrete Modernisierung geplant ist, kann eine solche Untersuchung als Standortbestimmung sinnvoll sein, um festzustellen, wo man mit einer Anwendung aktuell steht und wie groß das Delta zu einem neuen Ziel-Zustand ist.

1 Gedanke zu „Software-Modernisierung: viele Wege führen nach Rom“

  1. Wir teilen Ihre Ansichten und Vorgehensweisen, die Sie beschreiben. Das sind wirklich praktikable Vorgehen (1-3) und echte Alternativen zum Wechsel auf Standard-Software, wie es sehr oft heisst.

    Oder dann sind es Neuentwicklungen auf der grünen Wiese, wie Sie schreiben. Man will alles von Anfang an richtig machen und übernimmt sich dann mit dem Projekt.

    Wirkliche Software-Modernisierung unter Beizug von erfahrenen Fachleuten hilft tatsächlich, grosse Kosten einzusparen.

    Antworten

Schreibe einen Kommentar

Das könnte Dich auch noch interessieren

Titelbild zum Wissensbeitrag "Multi-Tenancy in Spring-Boot-Projekten"

Multi-Tenancy in Spring-Boot-Projekten

In diesem Wissensbeitrag erläutern wir die grundlegenden Eigenschaften einer Multi-Tenancy-Architektur und demonstrieren anhand eines Spring Boot-Projekts eine beispielhafte Implementierung. Dabei ...
Keycloak-Vortrag bei der SWK Ruhr

Keycloak-Vortrag bei der SWK Ruhr

Herzlichen Dank noch einmal an alle Teilnehmer meines Vortrags Skalierbare Authentifizierung mit OpenID Connect und Keycloak bei der Softwerkskammer Ruhr ...
Beitragsbild für den Wissensbeitrag Webinar: Hochverfügbare Keycloak-Cluster

Webinar: Hochverfügbare Keycloak-Cluster

Keycloak ist eine open-source „Identity- und Accessmanagement-Lösung“, die sich mittlerweile weiter Verbreitung und Nutzung erfreut. Als zentrale Komponente für Authentifizierung ...