Pressemitteilung

Consol stellt Techniken für die iterative Evolution von Softwarearchitekturen auf den Prüfstand

Um was geht es in diesem Beitrag:

Lesen sie hier den Beitrag:

Consol stellt Techniken für die iterative Evolution von Softwarearchitekturen auf den Prüfstand

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.

Consol stellt Techniken für die iterative Evolution von Softwarearchitekturen auf den Prüfstand

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.

Christoph Ehlers, Technical Lead Software Engineering beim IT-Dienstleister Consol in München, erklärt:

„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. 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.“

weitere Beiträge zum Thema:

 

Der EAS-Insider – Ihr Navigator zu einem erfolgreichem Business!

So kann Sie Unternehmenssoftware erfolgreicher machen:

Was ist Unternehmenssoftware?

Unternehmenssoftware ist eine Sammlung von Anwendungen und Tools, die speziell entwickelt wurden, um Geschäftsprozesse effizienter zu gestalten. Sie deckt eine Vielzahl von Funktionen ab, darunter Buchhaltung, Personalwesen, Kundenbeziehungsmanagement (CRM), Lieferkettenmanagement und Enterprise Resource Planning (ERP). Diese Softwarelösungen unterstützen Unternehmen dabei, ihre Abläufe zu automatisieren, Daten effizient zu verwalten und die Zusammenarbeit zwischen Abteilungen zu verbessern. Durch den Einsatz von Unternehmenssoftware können Unternehmen fundierte Entscheidungen treffen, indem sie Echtzeitdaten und Analysen nutzen. Darüber hinaus ermöglicht sie die Skalierung von Geschäftsaktivitäten, die Reduzierung von Kosten und die Verbesserung der Kundenzufriedenheit, was letztendlich zur Steigerung der Wettbewerbsfähigkeit beiträgt.

Wie kann Unternehmenssoftware ein Unternehmen digital erfolgreicher machen?

Unternehmenssoftware kann Unternehmen digital erfolgreicher machen, indem sie Geschäftsprozesse automatisiert und optimiert, wodurch Effizienz und Produktivität steigen. Sie ermöglicht die Integration verschiedener Abteilungen und fördert eine nahtlose Zusammenarbeit, indem sie Echtzeitdaten bereitstellt. Durch präzise Datenanalysen können Unternehmen fundierte Entscheidungen treffen und Markttrends schneller erkennen. Unternehmenssoftware verbessert zudem die Kundenbeziehungen durch effektives Kundenbeziehungsmanagement (CRM), was zu gesteigerter Kundenzufriedenheit und -bindung führt. Die Automatisierung von Routineaufgaben reduziert menschliche Fehler und spart Zeit und Ressourcen. Darüber hinaus unterstützt sie Unternehmen dabei, flexibel auf Veränderungen zu reagieren und ihre digitale Transformation voranzutreiben, um im Wettbewerbsumfeld erfolgreich zu bleiben.

Wichtige Schlagworte im Kontext von Unternehmenssoftware:

Digitalisierung

Der Prozess, bei dem analoge Geschäftsprozesse in gute und sinvolle digitale umgewandelt werden, um Effizienz und Produktivität zu steigern.

Integration

Die Verbindung verschiedener Softwarelösungen und Systeme, um einen reibungslosen Informationsfluss und eine einheitliche Datenbasis im Unternehmen zu gewährleisten.

Automatisierung

Der Einsatz von Software zur Durchführung wiederkehrender Aufgaben ohne menschliches Eingreifen, um Fehler zu reduzieren und Ressourcen zu sparen.

Aktuelle Beiträge zum Thema Unternehmenssoftware:

Unsere aktuellen Blog-Beiträge!

Das sind die aktuellen Beiträge zum Thema:

Aktuelle Beiträge zum Thema:
 

DAS EAS-MAG-Glossar für den Beitrag:

Consol stellt Techniken für die iterative Evolution von Softwarearchitekturen auf den Prüfstand

EAS-MAG-Glossar:

 
Transparenzhinweis für Pressemitteilung
Consol stellt Techniken für die iterative Evolution von Softwarearchitekturen auf den Prüfstand

Unternehmen

Autor