Anzeige

Anzeige

VERANSTALTUNGEN

DIGITAL FUTUREcongress
14.02.19 - 14.02.19
In Frankfurt, Congress Center Messe

SAMS 2019
25.02.19 - 26.02.19
In Berlin

INTERNET WORLD EXPO
12.03.19 - 13.03.19
In Messe München

secIT 2019 by Heise
13.03.19 - 14.03.19
In Hannover

IAM CONNECT 2019
18.03.19 - 20.03.19
In Berlin, Hotel Marriott am Potsdamer Platz

Anzeige

Anzeige

Software Code 680664079 700

Legacy-Software macht vielen Unternehmen das Leben schwer. Nadine Riederer, CEO der Avision GmbH, erläutert im Interview, wie sie sich gezielt auf Vordermann bringen lassen.

Die Basis jeder Softwaremodernisierung sollte eine gründliche Bestandsaufnahme sein. Wie geht man dabei am besten vor?

Nadine RiedererNadine Riederer (Foto, Quelle Avision): Zunächst ist es wichtig zu verstehen, dass eine Software nicht nur aus Sourcecode besteht, sondern auch aus fachlichen und organisatorischen Prozessen. Um Optimierungspotenziale zu identifizieren, müssen Unternehmen deshalb vor allem klären, welchem Zweck eine Software dient, welche Prozesse sie abbildet und welche Bestandteile eventuell nicht mehr genutzt werden. Wichtig ist aber auch, die Benutzer zu identifizieren. Sie müssen die Modernisierung begleiten und am Ende auch akzeptieren. Die technische Bestandsaufnahme bildet dann erst den letzten Schritt.

Legacy-Software ist häufig schlecht dokumentiert. Wie kann dennoch nachvollzogen werden, wie sie technisch funktioniert?

Durch die Abklärung des fachlichen Kontextes wissen Unternehmen bereits, welche Daten eine Anwendung verarbeitet. Und wenn sie den fachlichen Zusammenhang kennen, verstehen sie auch die Benennung von Datenbanktabellen, Objekten und Methoden: die Entwickler auch sehr alter Software haben sie meist fachlich benannt. Im nächsten Schritt sollte dann der komplette Umfang einer Anwendung ermittelt werden, um sie anschließend in kleinere Bestandteile zu unterteilen, also etwa Datenbank, grafische Benutzerschnittstelle, Schnittstellen oder Backendverarbeitung.

Da früher oft sehr datenbankkonzentrisch programmiert wurde, lohnt sich danach immer ein genauerer Blick auf die Datenbank. Anschließend sollten die Schnittstellen unter die Lupe genommen werden, um Datenkonsumenten und -lieferanten sowie die übertragenen Dateninhalte zu identifizieren. Dabei können spezielle Tools wie der Orion Metadata Harvester helfen. Auch für die abschließende Analyse des Sourcecodes gibt es wertvolle Hilfswerkzeuge, um die Kopplung der verschiedenen Objekte untereinander zu identifizieren. Gemeinsam mit dem fachlichen Kontext lassen sich Sinn und Zweck der meisten Softwarebestandteile damit sehr schnell erkennen.

Nach welchen Kriterien wird entschieden, welche Bausteine beibehalten oder ausgetauscht werden?

Das hängt von der Zielsetzung des Projekts ab. Bei einem Refactoring etwa werden vor allem Bausteine mit vielen Abhängigkeiten bearbeitet und nicht mehr unterstützte Frameworks durch moderne ersetzt. Ist das Ziel erhöhte Sicherheit, konzentriert man sich auf die Bausteine mit User-Interaktion und die Datenhaltung und sorgt durch modernere Technologien dafür, dass man etwa kryptografische Methoden einsetzen oder SQL-Injections verhindern kann. Oft ist das Ziel aber, Einschränkungen der Anwender zu verringern, etwa, wenn eine Software immer langsamer wird oder seit einem Systemupgrade nicht mehr richtig funktioniert. Dann gilt es, die verantwortlichen Bausteine zu finden, zu überarbeiten oder gegebenenfalls auszutauschen.

Wie werden neue Features integriert?

Theoretisch geht die Einbindung neuer Features ganz einfach: die anzupassende Stelle finden, Tests schreiben, um Seiteneffekte zu vermeiden, und dann das neue Feature integrieren. Sobald man die allgemeine Ebene verlässt, wird es allerdings schwieriger. Möglicherweise ist es besser, erst ein veraltetes Framework auszutauschen, um das neue Feature dann zukunftssicher und einfacher integrieren zu können. Oder aber das neue Feature verlangt eine Anpassung der Schnittstellen und damit nicht nur lokale Veränderungen. In Legacy-Anwendungen ist eine lose Kopplung von einzelnen Modulen nicht besonders häufig, daher ist bei jeder größeren Anpassung mit Seiteneffekten zu rechnen. Wenn Tests zur Verfügung stehen – optimalerweise automatisiert – kann man Features integrieren und auf Seiteneffekte prüfen. Falls nicht, werden zusätzliche Tests nötig.

Wie lässt sich die Performance von Altanwendungen steigern?

Häufig lässt sich die Performance schon durch bloßes Aufräumen verbessern. Also alles raus, was nicht mehr gebraucht wird! Und auch so mancher neue Index in der Datenbank hat die Leistungsfähigkeit schon deutlich erhöht. Aber natürlich gibt es auch durch die technischen Innovationen der letzten Jahre einige Möglichkeiten. Monolithische Anwendungen lassen sich zerteilen und auf mehrere virtuelle Systeme verteilen oder in die Cloud bringen. Auch der Wechsel von Betriebssystemen, Datenbanken und Frameworks bietet sich oft an. Einen Königsweg gibt es aber nicht, deshalb muss zunächst immer genau analysiert werden.

Wie wird aus einer alten ungesicherten Software eine moderne, vor unbefugtem Zugriff gesicherte Anwendung? Die auch noch DSGVO-konform ist?

Zunächst einmal müssen die zu sichernden Daten identifiziert und klassifiziert werden. Auch dabei können Werkzeuge wie der genannte Metadata Harvester helfen. Dann sollte überprüft werden, ob diese Daten überhaupt nötig sind. Die Datensparsamkeit ist ja eines der wichtigsten Prinzipien der DSGVO. Außerdem gilt: Daten, die nicht gespeichert oder erfasst werden, muss man auch nicht schützen. Zudem hilft es an dieser Stelle, ein vernünftiges Benutzer- und Rollenkonzept aufzusetzen. Das ist durch kein uns bekanntes Werkzeug automatisierbar, deshalb ist hier Nachdenken gefragt.

Durch Bedrohungsanalysen mit der STRIDE-Methodik lassen sich mögliche Schwachstellen identifizieren. Durch Werkzeuge zur statischen und dynamischen Security-Analyse, wie Fortify von HP oder VEGA von Subgraph, können dann konkrete Ansatzpunkte gefunden werden. Ein einfacher Ansatz mit großer Wirkung ist, mit kryptografischen Verfahren zu arbeiten, Dateien verschlüsselt abzulegen und verschlüsselte Protokolle bei der Kommunikation zu benutzen. Das ist auch in Legacy-Software schnell realisierbar, da es sich dabei meist um sehr lokale Anpassungen handelt.

Frau Riederer, vielen Dank für das Gespräch!

www.avision-it.de
 

 
RPA
Dez 11, 2018

IoT-Datenflut trifft Legacy-System - RPA verspricht Abhilfe

Wenn Industrie 4.0 auf prädigitale Tradition trifft, sind Schwierigkeiten…
Alter und neuer Computer
Okt 31, 2018

5 Quick Wins bei der Modernisierung von Legacy-Software

Niedrigere Kosten und höhere Sicherheit zählen zu den häufigsten Motiven von Unternehmen,…
GRID LIST
Strategie

10 Punkte für die richtige API-Strategie

APIs sind ein unglaublich wertvolles Werkzeug für die IT-Modernisierung – sie schalten…
Tb W190 H80 Crop Int C7ec4121533b0efd43b60d6b621b8f97

IFS baut Field Service Management 6 aus

IFS bringt IFS Field Service Management 6 (FSM 6) auf den Markt. Das Lösungsangebot für…
Tb W190 H80 Crop Int 4f1e98f2cec01cd556c839932fdd627d

Topaz mit neuen Funktionalitäten für Entwickler

Die Mainframe-DevOps-Lösung Topaz von Compuware, ermöglicht Entwicklern der nächsten…
Smarte News aus der IT-Welt