Engineering Solutions Architekturzentrierte Modernisierung von Softwaresystemen Softwareforen Leipzig User Group Softwarearchitektur Thomas Stahl CTO, b+m Informatik AG 1 www.bmiag.de
Architekturzentrierte Modernisierung - Agenda Motivation Konzept Fallbeispiele Ausblick Diskussion 2 www.bmiag.de
b+m engineering - technologische Expertise und Methodenkompetenz im Softwareengineering Architekturberatung EAM, BPM, SOA, SW-Architektur, Model-Driven Engineering Softwareentwicklung / Softwareengineering MDSD / DSL-Engineering, Softwarefabrik b+m gear, Entwicklung (Java,.NET u.a.) Einführungs- und Betriebsunterstützung / Support Unterstützung der gesamten Wertschöpfungskette Branchenübergreifende Fach- und Prozessberatung Modernisierung / fachliche Prozessoptimierung 3 www.bmiag.de 3
b+m engineering unsere Wurzeln Model-Driven Software Development openarchitectureware Xpand, Xtend 4 www.bmiag.de 4
Architekturzentrierte Modernisierung Motivation 5 www.bmiag.de 5
Typische Ausgangslage Erodierte Systeme/Systemlandschaft Das Anwendungssystem ist nicht am Ende des fachlichen LifeCycles, aber die Wartungs-, Entwicklungs- und ggf. Betriebskosten gefährden die Rentabilität. Es ist eine Modernisierung bzw. eine Ablösung durch ein Kaufprodukt geplant. Die Requirements-Baseline stellt das Altsystem dar aber wie kann man diese explizit machen? Modernisierung lässt sich gegenüber der Business-Seite nur als querschnittlicher Aspekt im Rahmen der fachlichen Weiterentwicklung platzieren Das System ist Teil einer Landschaft, die insgesamt und strategisch modernisiert werden soll damit kommt die EAM-Ebene ins Spiel 6 www.bmiag.de 6
Traditioneller Ansatz: Reengineering auf Code-Level Vorteile Vergleichsweise hoher Automationsgrad Nachteile Hoher Aufwand, Kosten Sehr niedrige technische Qualität (COBOL -> Java = JABOL ) Kein nachhaltiger Business-Nutzen: Keine Reduktion von Wartungskosten, geringe Anpassbarkeit/Flexibilität, gängige Entwickler-Skills im Zielsystem nicht anwendbar Das System wird nicht zukunftsfähig Übersetzung von Softwaresystemen auf programmiersprachlicher Ebene z.b. COBOL -> Java Legacy-Code Transformierter Code Legacy-System Neues System 7 7 www.bmiag.de 7
Abgrenzung Kurzfristige Rettung von Altsystemen Re-Hosting Reengineering auf Code-Level versus Nachhaltige Modernisierung (d.h. Erreichen von Zukunftsfähigkeit) -> nur durch Einbeziehung der Architektur-Ebene möglich! -> ggf. Paradigmenwechsel vollziehen (z.b. Service-Orientierung einführen) -> daher: Architekturzentrierte Modernisierung b+m Model-Driven Modernisation (MDM) 8 www.bmiag.de 8
Typische Einsatzgebiete für architekturzentrierte Modernisierung 9 www.bmiag.de 9
Architekturzentrierte Modernisierung Unser Konzept 10 www.bmiag.de 10
Architektur- und modellzentrierte Modernisierung 11 www.bmiag.de 11
Exkurs - Model-Driven Software Development (MDSD) Die rechte Seite des MDM-Hufeisens Architektur Modellierung System konform Plattform Generator Eingabe Modelle Formalisierung der Implementierung Formalisierung der Konzepte SW- Architektur konform generierte Artefakte handcrafted Code Abstraktion - Methodik - Tools Frameworks Nutzen Qualität Effizienz Wartbarkeit Automation Flexibilität 12 www.bmiag.de 12
Modernisierungs-Toolset Heterogenität Unterstützung unterschiedlicher Quell- und Ziel-Sprachen und -Plattformen mit einem Werkzeugkasten COBOL/EMF Konverter Analyse Restrukturierung C++/EMF Konverter Neutralisierung Von den Spezifika der Quellsprachen/-Plattformen wird möglichst früh abstrahiert und die enthaltenen Informationen auf die Modellebene (EMF) gehoben. Die Auffaltung auf die Spezifika der Zielsprachen/-Plattformen erfolgt erst im letzten Prozessschritt (Code-Generierung) JEE Generator Modell- Transformation Web-UI Generator Interoperabilität Die Implementierungstechnologie der Werkzeuge ist unabhängig von den Quell- und Zielsprachen der zu modernisierenden Software und basiert auf der Eclipse-Modeling Technologie. Das gilt sowohl für die Analyse- und Transformationswerkzeuge als auch für das Model-Repository 13 b+m Informatik AG 13
Das Model-Repository sichert Informationen Referenzen von außen nach innen Informationsgewinn von innen nach außen Die konkrete Informationsstruktur wird als Metamodell in das generische Model-Repository hinein konfiguriert. Somit ist das Repository auf das Modernisierungsszenario adaptierbar Architekturzentriert Nutzungszentriert Codezentriert z.b. Module, Prozeduren z.b. Services, Entitäten, Komponenten, Prozesse z.b. Anforderungen Use Cases Referenzen auf Artefakte außerhalb des Repositories 14 www.bmiag.de 14
Das Model-Repository bietet Sichten und Auswertungen Aufrufhäufigkeiten Dynamischer Aufruf-Graph auf Prozedurebene frmakte.suchen() : Void clsklasse.class_initialize() : Void frmakte.indexposlesen() : Void frmakte.cmdedit_click() : Void frmakte.abteilung() : Void frmakte.rtxtboxenthaelt_change() : Void frmakte.pruefung_ob() : Void frmakte.daten_binden() : Void frmakte.rtxtboxtitel_change() : Void frmakte.ob_sperren() : Void frmakte.felder_frei() : Void frmakte.setbuttons(boolean) : Void clsklasse.class_getdatamember(string,object) : Void frmakte.fuehrende_nullen(long) : Variant clsklasse.pruef_rechte() : Void frmakte.tool_menu_edit() : Void clsklasse.pruef_abt() : Void frmakte.felder_sichern() : Void clsklasse.adoprimaryrs_movecomplete(eventreasonenum,error,eventstatusenum,recordset) : Void frmakte.txtfields_change(integer) : Void Tabellarische Auflistung statischer Abhängigkeiten 15 www.bmiag.de 15
Das Model-Repository dient u.a. der Bestimmung von Footprints und Use Cases Von mehreren Use-Cases genutztes Modul Use-Case spezifisches Modul Relevante Einsatzszenarien z.b.: Teilablösung durch Standard-Software Auslagerung von Funktionalität in andere Systemteile oder Fremdsysteme 16 www.bmiag.de 16
Statische und dynamische Analyse fördert mehr als nur bloße Information zutage Die im Repository gesammelte Information sichert Wissen über die Altanwendung unabhängig von Kopfmonopolen erschließt und verwaltet das Wissen über die Altanwendung in einem Systemmodell erlaubt Nachdokumentation und erfüllt so auch (aufsichtsrechtliche) Dokumentationspflichten ermöglicht umfangreiche Analysen zur Anwendung (nicht genutzte Anwendungsteile, kritische Programmteile [z.b. besonders häufig genutzter oder zeitkritischer Code], Rekonstruktion von fachlicher Information [Use Cases und/oder Prozesse], Identifizierung von Performance-Engpässen, Überprüfung der Einhaltung von Programmierrichtlinien ) kann mit semantischen Anreicherungen technisch und fachlich ergänzt werden und ist somit fortschreibungsfähig unterstützt strategische Entscheidungen zur Anwendung kann als Ausschreibungsbasis für die Suche /Entwicklung einer Folgeanwendung genutzt werden ermöglicht eine belastbare Abschätzung der Modernisierungsaufwände ermöglicht die Transformation in ein modernisiertes Systemmodell 17 www.bmiag.de 17
Architekturzentrierte Modernisierung Fallbeispiel: Modernisierung einer VB6 Anwendung in Richtung einer modernen JEE-Architektur 18 www.bmiag.de 18
Modernisierung einer Visual-Basic 6 - Anwendung AIDA-SH: Automatisiertes Informations- und Dokumentationssystem für Archive -- Schleswig Holstein Verzeichnung Recherche Findbucherstellung Beständeübersicht 19 www.bmiag.de 19
Kurzportrait Ausgangssituation Client-Server-Anwendung in Visual Basic 6 Seit ca. 10 Jahren durchgehend vom selben Entwicklerteam betreut und gewartet Modernisierungstreiber Ablauf des Herstellersupports für die Entwicklungs- und Laufzeitumgebung Modernisierungsziel Reimplementierung des bestehenden Systems auf einer neuen Architektur und Plattform (JEE) 20 b+m Informatik AG 20
Exkurs Zielarchitektur: Aufbau der Softwarefabrik b+m gear Java Vom Persistenz-Framework zur ganzheitlichen SoftwareFabrik 21 www.bmiag.de 21
Auszug des Informationsmodells im Repository: Übernahme von Maskenflüssen Struktur / Code Architektur Fachlichkeit Ursprungsbeziehungen Use-Case Use-Case Flow View Event Activity View Transition Form Sub Klasse Methode Altsystem: Visual Basic 6 Modernisiertes System: JEE Anwendung 22 b+m Informatik AG 22
Dynamische Analyse - grobe Vorgehensskizze Originärer Code Instrumentierter Code Build, Deployment Instrumentierte Anwendung Instrumentierung Logging- Framework Ausführung Rohdaten Analyse Analyse- Ergebnisse 23 b+m Informatik AG 23
Transformation von Nutzungsszenarien zu Screenflows Code / Struktur Architektur 24 Altsystem b+m Informatik AG Neusystem 24
Identifikation von UseCases bzw. Screenflows Welche Use Cases sollen durch die modernisierte Anwendung unterstützt werden? Die VB6-Anwendung kennt das Konzept der Screenflows nicht, die Anwender arbeiten aber dennoch Use Case-orientiert. Die statische Aufrufbeziehungen der VB6-Eventhandler und -Forms liefern mögliche Maskenfolgen Die aufgezeichneten Traces ergeben die tatsächlich durchlaufenen Folgen Finetuning (z.b. durch Eingrenzen der Bearbeitungszeit) filtert False Positives 25 b+m Informatik AG 25
Analyse von Nutzungsverhalten Zu suchender Flow Flow-Detektor Gefundene Auftreten 26 Erhobene Traces b+m Informatik AG 26
Architekturzentrierte Modernisierung Fallbeispiel: Entwicklung einer Modernisierungsstrategie für ein Cobolbasiertes Kernsystem einer großen deutschen Versicherung 27 www.bmiag.de 27
Eine klassische COBOL Host-Anwendung Partner-Maske (Screenshot) 28 www.bmiag.de 28
Kurzportait Ausgangssituation Kernsoftwarekomponente in COBOL Strukturerosion über mehr als 20 Jahre und mehrere Entwicklergenerationen Aufnahme von fachfremder Funktionalität über die Lebenszeit Modernisierungstreiber Hohe Wartungskosten aufgrund struktureller Komplexität Hoher Beistellungsaufwand wegen fachfremder Teile Rückläufige Entwicklerkapazitäten im Bereich COBOL Modernisierungsziele Auftrennung in fachlich klar getrennte Komponenten Neuverteilung/Auslagerung von existierendem Code gemäß Ziel- Facharchitektur Plattformwechsel des verbleibenden Kernsystems Richtung JEE 29 b+m Informatik AG 29
Verbindung zur EAM-Ebene Strategie EAM-Pyramide Geschäftsarchitektur Informationsarchitektur Projektportfolio, Bebauungspläne, Anwendungslandschaft IT-Architekturen Feedback MDM- Hufeisen Management Anwendungs- Modernisierung 30 b+m Informatik AG 30
Informationsmodell im Model-Repository - Komponentisierung eines Altsystems Struktur / Code Architektur Fachlichkeit Komponente Modul Geschäftssystem Schnittstelle Copybook Altsystem: COBOL 31 b+m Informatik AG 31
Vorbereitung der dynamischen Analyse Herausforderung: Es gibt kein AOP / Bytecode Weaving für COBOL. Lösung: Automatisierte Instrumentierung des Quellcodes Herausforderung: Verknüpfen der Anwendungsfälle mit den zugehörigen Traces Lösung: Aufnahme zusätzlicher Kontextinformationen (insb. Benutzerkennung) in die Logdaten Werkzeuggestützte Aufnahme von Metadaten der Testdurchführung (Zeitintervall, Benutzerkennung) 32 b+m Informatik AG 32
Auswertungen auf Architekturebene Aggregation von statischen Aufrufbeziehungen auf Komponentenebene Tatsächliche Schnittstellen Nutzung der Komponenten in Anwendungsfällen 33 b+m Informatik AG 33
Migrationsstrategie, Planung und Bewertung Excel-basiertes Werkzeug zur Entwicklung von Modernisierungsstrategien inkl. der EAM- und PPM-Ebene (das betreffende Kernsystem ist immanenter Bestandteil einer Systemlandschaft) Analyseergebnisse und Modelle im Model-Repository dienen als Informationsbasis Schaffung einer Methodik zur Entwicklung und Bewertung von Modernisierungsstrategien: Vision/Zielbild -> Migrationspattern -> Maßnahmenkatalog -> Phasenmodelle -> Pfade und Varianten Synthetisierung von konkreten Phasenplänen, Kapazitätsbedarf, Aufwand und Kosten pro Variante => Ermöglichung einer validen Strategiebewertung, -Auswahl und Planung 34 b+m Informatik AG 34
Ausblick Regressionstests Dynamische Analyseergebnisse können zur Ableitung von Regressionstests verwendet werden. Kohärentes Requirements Management Im Laufe der Modernisierung muss die Fortentwicklung der Altanwendung im modernisierten System nachvollzogen werden. Technisch einheitliche Modelle der Systeme erlauben die explizite Modellierung von Maßnahmen. Durch den Zusammenhang der Modelle können auch Maßnahmen aufeinander bezogen werden. Auf diese Weise wird die Steuerung und Überwachung der betreffenden Maßnahmen in beiden Systemen deutlich vereinfacht. 35 b+m Informatik AG 35
Kontakt Thomas Stahl CTO Engineering Solutions b+m Informatik AG Rotenhofer Weg 20 24109 Melsdorf t.stahl@bmiag.de 36 T +49 4340 404-0 F +49 4340 404-111 www.bmiag.de 36