Ein wertvolles Asset mit technischer Historie
Die automatisierte Berechnung von Löhnen im öffentlichen Sektor inkl. aller steuerlicher und sozialversicherungsrechtlicher Aspekte stellt höchste Anforderungen an Präzision und Performance. Das über Jahrzehnte gewachsene gesetzliche Regelwerk bietet unzählige Kombinationsmöglichkeiten und Randfälle. IT-Lösungen müssen auf dieser Basis auf Knopfdruck für jeden Stichtag aktuell und rückwirkend hunderttausende Gehälter zuverlässig und auf den Cent genau berechnen.
Das System unseres Kunden, bestehend aus über 1 Mio. Zeilen COBOL-Code, war hierfür seit Beginn der Siebzigerjahre erfolgreich im Einsatz.
Technologisch jedoch wurde es jedoch immer schwieriger, die oftmals kurzfristig umzusetzenden gesetzlichen Neuregelungen zu integrieren. Zudem war die Technologie weder auf Online- und Cloud-Betrieb ausgelegt noch für die zwischenzeitlich geschäftlich gewünschten Echtzeit-Auswertungen geeignet. Abnehmende Wartbarkeit, veraltete Architekturmuster, unvollständige Dokumentation und der Mangel an Spezialisten für Legacy-Technologien wurden somit zu einem existentiellen Risiko.
Wie modernisiert man eine derart komplexe Applikation, ohne den laufenden Betrieb zu gefährden und ohne den Fachbereich mit Anforderungserhebung oder manuellen Tests zu belasten?
Wie löst man ohne „Feature Freeze“ einen COBOL-Monolithen – im Wesentlichen ein einziger großer Batchprozess – durch eine technologisch moderne und hochwartbare Anwendung ab, die mit der Performance des spitzenoptimierten Mainframes mithalten kann und auf den Cent genau dieselben Berechnungsergebnisse liefert wie das Altsystem?
”Man muss sich vor Augen führen, dass ein höchst komplexes Gehaltsabrechnungssystem neu realisiert wurde. itestra und die beteiligten Mitarbeiter können auf diese Leistung stolz sein.
Abteilungsleitung
Reverse Engineering und eine innovative Architektur
Das erste Ziel für das itestra-Team war das Extrahieren der fachlichen Regeln und Sachverhalte aus dem bestehenden COBOL-Code. Hierzu wurden mittels manuellem und tool-gestütztem Reverse Engineering die komplexen, über Jahrzehnte entstandenen Bedingungen und Berechnungsvorschriften schrittweise analysiert und zugleich Werkzeuge zur späteren Nachverfolgung der Code-Migration vorbereitet.
Parallel entstand die Idee, die Komplexität der neuen Implementierung durch einen – für objektorientierte Systeme seltenen – mathematisch Ansatz radikal zu reduzieren und damit sowohl den Code verständlicher und wartbarer als auch die Berechnungen für die Zukunft nachvollziehbarer zu machen.
Durch die Kombination von Prinzipien der funktionalen und objektorientierten Programmierung wird jeder berechnete Wert und jedes im Laufe der Berechnung entstehende Zwischenergebnis einmalig durch genau eine Funktion berechnet. Hierdurch werden
- Teilberechnungen in wiederverwendbare, benannte Funktionen gekapselt,
- Code-Redundanz und Fehlerquellen reduziert,
- Seiteneffekte verhindert und
- während der Ausführung wiederholte Berechnungen vermieden.
Jeder Berechnungsprozess wird dabei auf Ebene der extrahierten Funktionen, welche die Fachlichkeit widerspiegeln, automatisch protokolliert, was die Nachverfolgung vereinfacht und isolierte Tests von Teilberechnungen ermöglicht.
Alter Code - COBOL
Der neue Code in C#
Berechnungsprotokoll des neuen Systems
Vergleichstests: Schlüssel zum Erfolg und enorme Herausforderung
Jedes der rund 400.000 zu berechnenden Gehälter ergibt sich aus bis zu 45.000 einzelnen Werten, die wiederum das Ergebnis von Zwischenberechnungen oder aber vorgegebenen Eingabegrößen sein können.
Um im neuen System auf den Cent genau dieselben Ergebnisse wie in COBOL zu erzielen, waren nicht nur eigens entwickelte Festkomma-Datentypen in C# notwendig, sondern auch umfangreiche maschinelle Vergleichstests, bei denen vorhandene Eingabedaten in beiden Systemen durchgerechnet und sämtliche Zwischenergebnisse und Ausgaben vollständig verglichen wurden.
Was zunächst einfach klingt, erwies sich in der Praxis als äußerst komplexes Unterfangen:
- Während der Entwicklung waren gewisse Teilberechnungen noch nicht vollständig implementiert. Die entsprechenden Zwischenergebnisse, sowie alle davon abhängigen Folgeberechnungen, mussten beim Vergleich ausgeklammert werden.
- Eine einzelne, minimale Differenz konnte umfangreiche Abweichungen nach sich ziehen, was die Klassifikation und Suche nach der Ursache deutlich erschwerte.
Auch die enormen Datenmengen, die automatisierte Steuerung des Altsystems im Testprozess und die Sicherstellung aller Datenschutz-Anforderungen an das Vorgehen machten die Vergleichstests zu einer sehr anspruchsvollen Aufgabe.
Nach Überwindung dieser Hürden durch das Team wurden die automatisierten Vergleichstests zu einem wesentlichen Faktor für den Erfolg des Projekts.
Ein funktionaler und objektorientierter Rechenkern
Migration zum Festpreis und ohne Feature Freeze
Dank langjähriger Erfahrung im Reengineering umfangreicher geschäftskritischer Informationssysteme sowie dem Einsatz eigens entwickelter Tools zur statischen Codeanalyse konnte itestra nach intensiver Abstimmung mit dem Auftraggeber die gesamte Ablösung als Werk zum Festpreis mit einem verbindlichen Meilensteinplan anbieten und somit das Projektrisiko für den Kunden auf ein Minimum reduzieren.
Parallel zur Modernisierung wurden im dreijährigen Projektzeitraum 340 Änderungen am Altsystem durchgeführt um gesetzliche und andere fachliche Anforderungen zu erfüllen. Sämtliche Changes wurden sorgfältig mit der Modernisierungsroadmap abgestimmt. Ein Feature Freeze konnte dank des automatisierten Migrations-Trackings ebenso effektiv vermieden werden wie wiederholte Änderungen bereits abgelöster Code-Umfänge.
Vorsprung im Wettbewerb
Mit der neu geschaffenen Lösung steht eine äußerst leistungsfähige und flexible Basis für zukünftige Innovationen und Anforderungen zur Verfügung. Unmittelbar nach Fertigstellung erwies sich dies bereits als enormer Vorteil, als im Zuge der Corona-Pandemie kurzfristig und zum Teil auch befristet mehrere neue Vergütungsregelungen und Verordnungen erlassen wurden. Alle Anforderungen konnten in der neuen Lösung termingerecht umgesetzt werden, was im Altsystem nicht möglich gewesen wäre.
Die vollständige Modernisierung des komplexen Rechenwerks inklusive Abschaltung der alten COBOL-Programme verschafft unserem Kunden einen Vorsprung im Wettbewerb.
Die neue, innovative Lösung zeichnet sich durch hohe Effizienz und Flexibilität aus, ist auf dem neuesten Stand der Technik und kann ohne proprietäre Hardware in einer Cloud oder auch on premise eingesetzt werden. Die hohe Qualität der Software hat es dem Kunden ermöglicht, das erstellte System nahtlos zu übernehmen, eigene Entwickler einzuarbeiten und die Weiterentwicklung inzwischen selbst durchzuführen.
Mit dem Blick auf den Markt und die wachsenden Anforderungen ist das Unternehmen ausgezeichnet für die Zukunft vorbereitet.
Zahlen und Fakten
Über itestra
Wir entwickeln und erneuern Unternehmens-Softwarelösungen
Bei allem, was wir tun, leiten uns zwei zentrale Werte:
Wir wollen den bestmöglichen Mehrwert für unsere Kunden durch unsere Lösungen erzielen. Das beruht auf Qualität, also dem zweiten Punkt: Unsere MitarbeiterInnen können und sollen sich fachlich und persönlich entwickeln, immer besser werden und Großartiges erreichen. Für sich selbst, für unsere Leistungsfähigkeit und den Mehrwert unserer Kunden.
Kontakt
Sie haben Fragen zu Reverse Engineering?
Schreiben oder rufen Sie uns gerne an.
info@itestra.de
+49 89 381570-110
Software Renovation/Softwarerenovierung
Software verstehen, Vermögen erhalten
Alt aber wertvoll
Erfolgreiche IT- bzw. Software-Systeme sind bereits seit Jahrzehnten in nahezu allen Branchen vorhanden und steuern Geschäftsprozesse sowie Geräte. Sie wurden über Jahre entwickelt, sind für das Business unverzichtbar, verwalten die Kunden- und Geschäftsdaten und beinhalten präzises Detailwissen über das Geschäft. Vorhandene Software hat damit enormen Wert und ist Teil des Vermögens der Unternehmen.
Doch Effizienz und Performance nehmen ab
Technischer Wandel und sich verändernde Anforderungen lassen Softwarelösungen jedoch altern. Qualitätsmängel nehmen über die Zeit zu und ziehen abnehmende Performance, steigende Time-to-System und zunehmende Kosten nach sich. Eine Ablösung durch Neubeschaffung oder Neurealisierung ist aufgrund des enormen Umfangs der Systeme jedoch oft teuer, riskant oder sogar unrealistisch.
Softwarerenovierung ist eine neue Handlungsoption
Softwarerenovierung bedeutet vorhandene Software zu verstehen, existierende Assets zu nutzen und mit innovativen Methoden und Werkzeugen Zukunftsfähigkeit wiederherzustellen.
Zukunftsfähigkeit effizient herstellen
Systemgrößen:
Software-Wert:
Software-Alter:
Technologien:
- Full-Scale Redesign
- Reverse Engineering, Wissensextraktion
- Algorithmische Performance-Optimierung
- Re-Dokumentation
- Plattform-Migration, Technologie-/Framework Wechsel
- Code-CleanUp, Stabilization
- Architektur Change, Refactoring
Methoden und Tools bei Software Renovation
Wie wird Software renoviert?
Innovation statt Grobmechanik
Software-Renovierung ist keine mechanische Tätigkeit oder Tool sondern eine innovative Disziplin, die Spezialwissen, Methoden, besondere Aktivitäten und in Teilbereichen Werkzeuge umfasst und einsetzt.
Der Health Check schafft Klarheit
Softwarerenovierung beginnt mit einer strukturierten Bestandsaufnahme, dem Health Check, der vorhandenen Lösung in Bezug auf Abdeckungsgrad der Business-Anforderungen, technische Qualität (Implementierung, Dokumentation, Datenhaltung), Kosten (Entwicklung, Betrieb, Infrastruktur) sowie Entwicklungs- und Betriebsprozesse.
Ist – Soll = Roadmap
Die Bestandsaufnahme wird mit alternativen Lösungsdesigns, Branchen-Benchmarks und dem strategischen Zielbild des Unternehmens gegenübergestellt. Aus Ist und Soll wird unter Berücksichtigung ökonomischer Rahmenbedingungen eine Transformations-Roadmap abgeleitet, die abschließend in Projekten kurzfristig oder mehrjährig – ganz entsprechend dem Bedarf – umgesetzt wird.
Mehrwert durch Software Renovation
Wir stellen zukunftsfähig wieder her
Experte für Software-Renovierung
Auf Basis eigener wissenschaftlicher Arbeiten bewertet, optimiert und renovieren wir seit mehr als 15 Jahren umfangreiche Softwaresysteme namhafter Unternehmen diverser Branchen.
Unsere Leistungen bei Softwarerenovierung
Unser Portfolio umfasst das vollständige Re-Design von Software-Landschaften, z.B. von RPG, NATURAL, COBOL, C/++ in moderne, Objekt- und Service-orientierte sowie web-basierte Systeme in Java, C# u.a. ebenso wie Plattform-Migration, Neudokumentation von Altsoftware, Wiederherstellung von Wartbarkeit durch Code Cleanup oder Performance-Optimierung zentraler Algorithmen zur Reduzierung von Laufzeiten und CPU-Kosten um mehr als 50%.
Wir renovieren den Wert von Software
Hierbei übernehmen wir Verantwortung, garantieren vertraglich Erfolg und setzen innovative Methoden, wie manuelles Reverse Engineering, automatisiertes Vergleichstesten, Migration Tracking (zur Nachverfolgung des Redesign-Fortschritts), Write-Through Architektur zur Vermeidung von Parallelentwicklung und spezielle Analysewerkzeuge ein.
Vorteile von Reverse Engineering
Reverse Engineering vs. Neuentwicklung
Reverse Engineering beschreibt den Prozess des Analysierens und Verstehens einer bestehenden Softwarelösung, um es zu verbessern oder eine neue Lösung zu entwickeln.
Im Vergleich zu einer kompletten Neuentwicklung bietet Reverse Engineering diese Vorteile:
- Zeit- und Kosteneinsparung
Durch das Studium des bestehenden Designs können vorhandene Funktionalität genutzt werden und müssen nicht neu entwickelt werden, was Zeit und Kosten spart. - Verbesserung von Designs
Das Verständnis der ursprünglichen Funktionsweise fördert zielgerechtes Re-Engineering, z.B. um neue Anforderungen angepasst werden zu können. - Vermeidung von Duplizierung
Durch Reverse Engineering kann sichergestellt werden, dass bereits existierende Lösungen nicht erneut entwickelt werden. - Schutz geistigen Eigentums
Reverse Engineering kann dazu beitragen, geistiges Eigentum zu schützen, indem man sicherstellt, dass keine bereits existierenden Designs verwendet werden. - Erweiterung von Kenntnissen
Durch das Reverse Engineering können Entwickler ihr technisches Verständnis verbessern und neue Technologien und Methoden kennenlernen.
Schreiben oder rufen Sie uns gerne an.
Sie haben Fragen zu Reverse Engineering?
This form is currently disabled. Please check again later.