Anzeige

Anzeige

VERANSTALTUNGEN

B2B Service Management
22.10.19 - 23.10.19
In Titanic Chaussee Hotel, Berlin

PM Forum 2019
22.10.19 - 23.10.19
In Nürnberg, NCC Ost

DILK 2019
28.10.19 - 30.10.19
In Düsseldorf

Digital X
29.10.19 - 30.10.19
In Köln

DIGITAL FUTUREcongress
05.11.19 - 05.11.19
In Essen, Halle 8 im Congress Center Ost

Anzeige

Anzeige

Legacy Software

Die Modernisierung von Altsoftware stellt viele Unternehmen vor große Probleme. Die Entwicklung und Implementierung einer komplett neuen Software ist oft nicht der beste Weg. Als Alternative stehen Techniken zur iterativen und inkrementellen Evolution vorhandener Softwarearchitekturen zur Verfügung.

Der IT-Dienstleister Consol stellt gängige Verfahren mit ihren jeweiligen Vor- und Nachteilen vor.

In den meisten Unternehmen findet sich in der Systemlandschaft eine Vielzahl von Altsoftware. Sie durch neue Software im Rahmen eines Big-Bang-Szenarios zu ersetzen, ist oft nicht einfach beziehungsweise immer mit erheblichen Risiken verbunden. Um diese Systeme dennoch zu modernisieren und für künftige Anforderungen fit zu machen, empfiehlt sich deshalb in den meisten Fällen ein schrittweises Vorgehen – eine iterative und inkrementelle Evolution der vorhandenen Softwarearchitektur. Dafür gibt es mehrere Verfahren, Consol stellt die fünf Techniken Modularisierung, Extraktion, Abstraktion, Abschnüren sowie Klonen und Löschen auf den Prüfstand.

1. Evolution durch Modularisierung

Bei der Modularisierung werden zunächst Code-Bestandteile der Altsoftware identifiziert, die zu einer gemeinsamen Domäne gehören. Dann werden diese Code-Bestandteile etwa durch Refactoring und Anwendung von Clean-Code-Prinzipien modularisiert. Und zum Schluss wird ein Interface für diese Domäne eingeführt.

Die Identifikation von Domänen und die Modularisierung sind Voraussetzungen, um die Altsoftware zerteilen und gezielt modernisieren zu können. Der Nachteil bei dieser Vorgehensweise ist, dass die einzelnen Domänen oft eng mit anderen Bestandteilen der Architektur verknüpft sind. Um erfolgreich zu modularisieren, ist deshalb ein gutes Verständnis der Domäne sowie des Codes der Altsoftware erforderlich.

2. Evolution durch Extraktion

Bei der Extraktion werden unabhängige Domänen innerhalb der Altsoftware identifiziert und in ein eigenes System extrahiert. Anschließend wird das System der nun eigenständigen Domäne verbessert, gegebenenfalls auch unter Nutzung der Technik „Abstraktion“, um das System oder Teile davon neu zu entwickeln. Letzter Schritt ist die Verbesserung der Altsoftware, die nun weniger Aufgaben hat.

Dieses Vorgehen ist nur möglich, wenn es innerhalb der Altsoftware unabhängige Domänen gibt. Der Nachteil dabei ist, dass ein bestehender Code wiederverwendet wird. Dadurch können „versteckte“ Abhängigkeiten zwischen dem neuen eigenständigen System und der Altsoftware entstehen.

3. Evolution durch Abstraktion

Bei der Abstraktion wird in einem ersten Schritt ein externes, „ideales“ Interface für die Altsoftware definiert und die Kommunikation mit der Altsoftware über eine Fassade oder ein Fassadensystem gekapselt. Nach der Umstellung aller Clients auf das neue Interface erfolgt die iterative und inkrementelle Erstellung besserer neuer Software für das Interface. Anschließend kann die Altsoftware schrittweise durch die neue Software ersetzt werden.

Dieses Vorgehen ist nur möglich, wenn sich eine klare Schnittstelle für bestehende Services definieren lässt. Der Nachteil: Falls sich das Interface zu sehr an der Altsoftware orientiert, werden Fehler nicht korrigiert.

4. Evolution durch Abschnüren

Zunächst wird ein „schlechter“ Code-Teil innerhalb der Altsoftware identifiziert, der ersetzt werden soll. Anschließend wird ein Switch (oder Dispatcher, Proxy, Load Balancer) eingefügt, der auf den schlechten Teil der Altsoftware weiterleitet. Nachdem eine neue Implementierung für den schlechten Teil geschrieben ist, wird die Last vom Switch übergangsweise sowohl auf den schlechten Teil der Altsoftware als auch auf die neue Implementierung weitergeleitet. Schließlich erfolgt eine zunehmende Reduzierung der Last auf dem schlechten Teil der Altsoftware und eine Erhöhung der Last auf der neuen Implementierung bis der schlechte Teil der Altsoftware nicht mehr verwendet wird.

Voraussetzung für dieses Vorgehen ist, dass sich der schlechte Teil der Altsoftware, der ersetzt werden soll, beispielsweise über ein Interface abgrenzen lässt. Der Nachteil ist, dass sich das neue System an der Interaktion der anderen Systeme mit der Altsoftware orientieren muss. Und diese anderen Systeme nutzen eventuell nicht dokumentierte Eigenschaften der Altsoftware oder sind abhängig von nicht spezifiziertem Verhalten und etablierten Workarounds.

5. Evolution durch Klonen und Löschen

Beim Klonen und Löschen werden die Anwendergruppen identifiziert und die gesamte Altsoftware für jede Anwendergruppe geklont. Dann wird in jedem Klon alles gelöscht, was die jeweilige Anwendergruppe nicht benötigt. Gegebenenfalls werden Gemeinsamkeiten extrahiert, besser ist aber eine Code-Duplizierung, um zu starke Abhängigkeiten zu vermeiden. Schließlich erfolgt eine Softwareoptimierung für jede Anwendergruppe.

Voraussetzung für dieses Vorgehen ist ein eigenes (Produkt-)Team pro Klon. Der Nachteil dabei ist, dass die Klone via Datenbank für lange Zeit gekoppelt sind.

„Modularisierung, Extraktion, Abstraktion, Abschnüren sowie Klonen und Löschen sind vielfach bewährte Techniken, um vorhandene Altsysteme schrittweise in eine moderne, zukunftssichere Softwarearchitektur zu transformieren“, erklärt Christoph Ehlers, Technical Lead Software Engineering beim IT-Dienstleister Consol in München. „Die Nutzung einer bestimmten Technik hängt aber immer von den jeweiligen Gegebenheiten und Anwendungsfällen ab. Eine generelle Empfehlung kann man nicht aussprechen, es ist immer eine Einzelfallentscheidung zu treffen.“

www.consol.de
 

GRID LIST
Lizenzvertrag

Hybride Nutzung von Software drückt Lizenzkosten enorm

Ein Cloud-only-Ansatz ist nicht immer die beste Wahl für Unternehmen: Mit einer…
Lizenz

In drei Schritten zu gebrauchten Lizenzen

Warum viel Geld für neue Lizenzen ausgeben, wenn es deutlich preiswerter geht? So sind…
Licensing

Softwarelizenzen: Darauf müssen Sie achten

Heutzutage ist ein effizientes Arbeiten ohne die richtigen Computerprogramme nahezu…
Datenübernahme aus altem Buch ins Tablet

Altdatenübernahme einfach gemacht

Viele Unternehmen stützen ihre Geschäftsprozesse auf Altsysteme, auch „Legacy-Systeme“…
Schild Ende

Support verlängern, upgraden oder in die Cloud?

Auf das Support-Ende der Betriebs- und Datenbankmanagementsysteme von Microsoft müssen…
Vendosoft Team

Wie Gebrauchtsoftware und Lizenzmanagement Cloud-Projekte finanzieren

Lohnt sich der Weg in die Cloud? Diese Frage ist so 2014, dass sie wohl kaum ein…