SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
Automatisierungs-
Möglichkeiten
beim Legacy-Reengineering
05.11.2021 BAT Bern
Andres Koch, El. Ing HTL, M. Math (CS)
Object Engineering GmbH
andres.koch@objeng.ch – www.objeng.ch
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
Agenda
§ Applikations-Modernisierung
§ Redesign (Modularisierung, Architektur)
§ Technologie Transformation
§ Was kann mit Automatisierung realistisch gemacht werden?
§ Refactoring
§ Reengineering
§ Examples
§ Summary
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
Fragen zum Beantworten
•In welchen Umständen ist Software-Modernisierung besser als Wegwerfen?
•Wann macht automatisiertes Refactoring oder Reengineering Sinn?
•Kann generierter Code danach manuell gewartet werden?
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
Modernisierung von Applikationen
•Verschiedene Strategien
– Wirf es weg und mach es neu!
– Architektur-Erneuerung und Überarbeiten des Designs inkl. Modularisierung und Komponenten-Redesign
– Technologie-Transformation
– Code-Refaktorierung
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
Schritte dorthin
1. Wissen was man hat àAnalyse
2. Wissen was man will
à Wissen was man nicht (mehr) will
3. Wissen wie man es am Besten löst à Architektur, Design, Refactoring
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 5
Ursprungs- und Ziel-Architektur
Monolithisches Design
– Rich Clients
– Webserver Container (Tomcat, JEE a.o. with JSP, JSF)
– Application Servers (J EE)
à Komponenten-basierte Architekturen
– Service based Architecture
– Event driven Architecture
– Microservice Architecture
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
Migration auf Umwegen
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
„Old“ Technology „Old“ Technology
New Technolgy
„Old“ Technology
View View View
Logic
Logic
Logic
Datamodel Datamodel Datamodel
9
Architektur und Redesign
•Komponenten-basierte Architektur ist in der Regel sinnvoll
•Operation à Modul à Komponente (Service) à System
•Service à Funktion + Schnittstelle + Message + Protokoll àADT/Objekt
•In naher Zukunft werden wir uns mit den Nachwehen des Microservice-Hypes beschäftigen
à micro-service à nano-service à serverless applications
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 14
Technologie Transformation
•Transformation der Programmiersprachen
– Programmiersprache X à Y (C++ à Java, C#)
– Sprachen-Transformation
– Bibliotheks-Refactoring (Verschiedene Open Source Komponenten mit unterschiedlichen Versionen)
•Datenbank Transformation
– ORM Transformation
•Transformation der Benutzeroberflächen
– Rich Client à Web-Client (verschiedene Paradigmas und Frameworks)
– JSP, JSF, ActiveX à Single Page Application
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
Wie kann man vorgehen?
1. Analysieren des bestehenden Systems und Software à übergreifende Abhängigkeiten
– auf System-Ebene (Komponenten, Konfigurationen, Metadaten)
– auf Code-Ebene
– auf Daten-Ebene
2. Zielarchitektur definieren
– Struktur und Informations-Fluss
– Technologie definieren (Frameworks, Sprachen u.a.)
3. Reengineering von Code, Komponenten und anderen Artefakten
– Neuer Code erstellen, Refaktorierung von bestehendem Code oder beides
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
Analysieren
manuell oder automatisiert?
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
Studentenprojekt
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 19
Frontend
GraphicGen ImportConv AuthAutent Calculation
Config
DB DB DB DB
Kann man die Komponenten sehen?
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 20
Project with 5 services and a
codebase ~ 23’000 LOCs
Metadaten im Zentrum
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
Re-Engineering Process
Copyright 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
Parsen und Filtern
Finden und sammeln
von Datenquellen
Neue Artefakte generieren
und für Re-Engineering und
Refactoring verwenden
Untersuchen und nach
neuen Aspekten wieder
importieren
Wissensbasis verwenden
Zielarchitektur und Migrationsplan definieren
Dokumentation und
Wissensträger konsultieren
Metadaten speichern
Metadata als Graphen
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 23
Visualisierung
Zweck:
•Visualisierung von komprimierten Aspekten der Wissensbasis ähnlich wie bei Big Data
Methode:
•Artefakte importieren und für spätere Darstellung klassifizieren
Visualisierung
•Selektieren von Bereichen, welche visuell interessant scheinen und von dort runterschrauben zu
den Details
•Erkenntnisse für weitere Automatisierung nutzen
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
Beispiel: AS400 Batch-Application
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
•Batch-Applikation für eine missionskritische
Marketing- und Verkaufs-Anwendung
•Erwartet, dass 4500 Artefakte
dazugehören
•~100 Tables ~1600 SQL-Scripts
•Externer Lieferant im phase-out
•Zweck: Know-How für den weiteren Betrieb
und Migration bewahren
Modularisierung und Kriterien
The effectiveness of a “modularization” is dependent upon the criteria
used in dividing the system into modules
David L. Parnas, On The Criteria To Be Used In Decomposing Systems Into Modules, in: Com. of the ACM, December 1972
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 27
Kriterien-Kandiaten
•File-Benennungen und Namens-Muster
•Prefixes von Modul-Namen in älteren Systemen
•Namensräume z.B. in Import-Statements in mehreren Modulen
•Datenbank-Schemas
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 28
•ein eher dem state of the art
entsprechendes System mit ~30 services
•Interprozesskommunikation mit REST and
Messaging
•Zweck: an einem “idealen” Beispiel
aufzeigen, wie die Architektur abgebildet
werden kann
Architektur auf die Wissensbasis abbilden
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
Ebenen
Komponenten
Abhängigkeiten über Interprozess-Kommunikation
Copyright 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
Automatisiertes Re-Engineering and Refactoring
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
Technischer Prozess
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 34
Source-Code
1. Parsing
Abstract Syntax Tree
2. Recognizer
Metadata Repository
3. Analyzer
& Transformer
Target-Code
4. Generator
Parsen und importieren von Artefakten
•Parser-Framework (ANTLR) für Code-Artefakte
•Individuelle Parser und Scanner für Konfigurationen und anderer Metadaten
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 35
Erkennen und Zuweisen von Kriterien (Tagging)
• Mustererkennung (u.U. pragmatisch und individuell)
• Erkennen von Domänen, Namensräumen u.a.
• Normiertes Metamodel in Wissensbasis aber individuell erweiterbar
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 36
Erkennen von Kriterien im AST
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 37
Depends On
Target Field
Analyse & Transformation
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
•Abhängigkeiten einfügen
•Aufrufpfade erkennen
•Gruppen im Graph erkennen
•Erkennen von engen Beziehungen
•Graphen-Algorithmen verwenden für Modularisierung
– Community Detection Algorithms
– Closeness Centrality
– Degree Centrality
Aufrufpfad-Verfolgung
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 39
Modulgrenzen finden
•Manuelle Suche nach Schnittstellen in einer grossen Code-Basis ist nicht effizient genug
•Eine voll automatisierte Ermittlung von Schnittstellen bringt kein sinnvolles Resultat
•Die Kombination von Verstand des Menschen und der Geschwindigkeit der Maschine ist
erfolgreicher
•Graphen-Algorithmen helfen beim Identifizieren der besten Soll-Bruchstelle
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 40
Finden von Modulgrenzen in Monolithen?
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 41
User Interface (GUI)
Business Logic
Data Access
Technische Domänen als Kriterium
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 42
Wo soll der Monolith aufgebrochen werden?
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 43
Generierung von neuen Artefacts
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
•Neue Artefakte generieren
•In vorgegebenes Framework generieren
•Vorgängiges, manuelles Erstellen eines
Prototyps bevor man den Generator erstellt
In vorgegebenes Framework generieren
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 45
Generated Classes
Framework in new Architecture
Generation
Beispiel
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
Automation ein Mythos?
Praxisbeispiele
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
Technologie-Migration bei Swisscom AG
Copyright 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
<tui-mask ng-controller="A2100 as a2100">
<tui-mask-content>
<tui-box title="Abfragen Kunden">
<input type="text" ng-model="model.id9116.data" required>
</tui-box>
</tui-mask-content>
</tui-mask>
• Originally 3270-Applikation from the
80-thies (character based UI)
• Migration to a GUI 1997
• Visual C++ (MFC)
• 135 Forms, ~10‘000 Fields
• multilanguage (3)
• 2’500 Users
• Specialities, application functions
• Various developer teams (generations)
• Patchwork over time
àMigration to a web based single page
application
àpartially automated
Kosten- und Zeiteinsparung dank Automatisierung
Copyright 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
Task Effort [h] Effort / Form [h]
Tooling 556 4.2
GUI Framework (Java Script, Angular JS) 770 5.8
Validation of Forms (manual adjustment) 570 4.3
Total 1’896 (74% / 2560) 14.3 (50% Manually)
Quantity Structure
Forms/Fields 135 Forms / ~10‘000 Fields
Duration 6 Weeks POC + 8 Months Realization
Cost Savings 50% (Break even 50 = 0%)
Surplus Deployment Improvement (~8’000 CHF/ Release)
State of the Art Technology, Maintenance secured
Architektur Re-Engineering bei
•Architektur Re-Design mit teilautomatisiertem Prozess: 40-60% Kosteneinsparung
•Code-Fragmente aus 7’000 Klassen extrahiert und 700 neue Klassen generiert
•Generierung von Unit-Test vor der Migration für die nachfolgende Verifikation
Copyright 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
Size / Parts Value
Validators 1‘200-1‘400
Unit tests 1‘200-1‘400 gesamt
Reduction of effort validators min. 1h per validator à 1‘200h
Reduction of effort unit tests min. 2h per unit test à 2‘400h
Reduction of project duration ~6 Sprints = ~3 Months
Duration of generator adaption
Concept + Realization, Preparation
about 6 month duration
Conzept ca. 2 month, Realization 4 month (1 developer OE)
Antworten auf Einstiegsfragen
•In welchen Umständen ist Software-Modernisierung besser als Wegwerfen?
à grosse eher monolithische Systeme àmodularisieren und dann schrittweise modernisieren oder ersetzen
•Wann macht automatisiertes Refactoring oder Reengineering Sinn?
àWenn die Zahl von Artefakten sehr gross ist, eine Regelmässigkeit vorhanden ist und der manuelle Prozess zeitintensiv ist
•Kann generierter Code danach manuell gewartet werden?
à”Wenn ein:e Entwickler:in guten, wartbaren Code schreiben kann, dann kann er/sie auch einen Generator schreiben, der
manuell wartbaren Code generiert”
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
Schlussfolgerung
•Auch wenn gegen eine Modernisierung entschieden wird, sollte das Bestehende als Wissensbasis verwendet werden
(Analyse)
•Je grösser die Code-Basis um so grösser der Gewinn aus einer Automatisierung
•Generell: Nicht weniger als 100 K LoCs, erwartete Zeiteinsparung von > 500 h, #Artefake >> 100
•Nicht aufgeben, auch wenn es nicht perfekt ist
à Pragmatische Lösung: Automatisierung kombiniert mit manueller Behandlung (Pareto)
•1:1 Migration nur für Technologie-Transformation anstreben
•Sich bewusst sein, dass neue Architektur-Muster wieder neuartige Legacy generieren (Bsp. Microservice Architekturen)
•Tip: Wertvolles erhalten und wertloses ersetzen
Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 52

Weitere ähnliche Inhalte

Was ist angesagt?

PLM-Architektur der Zukunft
PLM-Architektur der ZukunftPLM-Architektur der Zukunft
PLM-Architektur der ZukunftIntelliact AG
 
Eclipse RapidClipse - Status Quo
Eclipse RapidClipse - Status QuoEclipse RapidClipse - Status Quo
Eclipse RapidClipse - Status QuoMarkus Kett
 
Webcast: SAP on Azure für den Mittelstand - Erfolgsfaktor Integration
Webcast: SAP on Azure für den Mittelstand - Erfolgsfaktor IntegrationWebcast: SAP on Azure für den Mittelstand - Erfolgsfaktor Integration
Webcast: SAP on Azure für den Mittelstand - Erfolgsfaktor IntegrationQUIBIQ Hamburg
 
E-Commerce Architektur aus Sicht eines Dienstleisters, IPC 2013
E-Commerce Architektur aus Sicht eines Dienstleisters, IPC 2013E-Commerce Architektur aus Sicht eines Dienstleisters, IPC 2013
E-Commerce Architektur aus Sicht eines Dienstleisters, IPC 2013Stefan Willkommer
 
20150611 track3 2_bp22_ibm_connections_ist_keine_insel
20150611 track3 2_bp22_ibm_connections_ist_keine_insel20150611 track3 2_bp22_ibm_connections_ist_keine_insel
20150611 track3 2_bp22_ibm_connections_ist_keine_inselDNUG e.V.
 
DevDay 19 Accessibility: Praxistipps für Entwickler
DevDay 19 Accessibility: Praxistipps für EntwicklerDevDay 19 Accessibility: Praxistipps für Entwickler
DevDay 19 Accessibility: Praxistipps für EntwicklerDevDay Dresden
 
Osudio + commercetools Webinar: Microservices - Flexibilität und Geschwindigk...
Osudio + commercetools Webinar: Microservices - Flexibilität und Geschwindigk...Osudio + commercetools Webinar: Microservices - Flexibilität und Geschwindigk...
Osudio + commercetools Webinar: Microservices - Flexibilität und Geschwindigk...Dirk Hoerig
 
Machine Learning, AI, KI, Deep Learning und wo man es im PLM gebrauchen kann
Machine Learning, AI, KI, Deep Learning und wo man es im PLM gebrauchen kannMachine Learning, AI, KI, Deep Learning und wo man es im PLM gebrauchen kann
Machine Learning, AI, KI, Deep Learning und wo man es im PLM gebrauchen kannIntelliact AG
 
Mit PLM zum erfolgreichen Service-Geschäft
Mit PLM zum erfolgreichen Service-GeschäftMit PLM zum erfolgreichen Service-Geschäft
Mit PLM zum erfolgreichen Service-GeschäftIntelliact AG
 
Ibm cognos express frankfurt juli 2010
Ibm cognos express frankfurt juli 2010Ibm cognos express frankfurt juli 2010
Ibm cognos express frankfurt juli 2010Friedel Jonker
 
Helmut Rainer (BWT), Michael Schober (ECOSOL)
Helmut Rainer (BWT), Michael Schober (ECOSOL)Helmut Rainer (BWT), Michael Schober (ECOSOL)
Helmut Rainer (BWT), Michael Schober (ECOSOL)Praxistage
 
Webinar: E-Rechnung - Relevanz und Lösungen für den öffentlichen Sektor
Webinar: E-Rechnung - Relevanz und Lösungen für den öffentlichen SektorWebinar: E-Rechnung - Relevanz und Lösungen für den öffentlichen Sektor
Webinar: E-Rechnung - Relevanz und Lösungen für den öffentlichen SektorQUIBIQ Hamburg
 
Erp in der zukunft: über die funktionen hinaus
Erp in der zukunft: über die funktionen hinausErp in der zukunft: über die funktionen hinaus
Erp in der zukunft: über die funktionen hinausDedagroup
 
Produktdaten für die digitale Verkaufskommunikation
Produktdaten für die digitale VerkaufskommunikationProduktdaten für die digitale Verkaufskommunikation
Produktdaten für die digitale VerkaufskommunikationIntelliact AG
 
3D-CAD-Daten – Wertvolle Visualisierung in der Kundenkommunikation
3D-CAD-Daten – Wertvolle Visualisierung in der Kundenkommunikation3D-CAD-Daten – Wertvolle Visualisierung in der Kundenkommunikation
3D-CAD-Daten – Wertvolle Visualisierung in der KundenkommunikationIntelliact AG
 
Lego-Bausteine des Online-Handels
Lego-Bausteine des Online-HandelsLego-Bausteine des Online-Handels
Lego-Bausteine des Online-HandelsDirk Hoerig
 
Storytelling mit Content Commerce
Storytelling mit Content CommerceStorytelling mit Content Commerce
Storytelling mit Content CommerceDirk Hoerig
 
Dev Day 2019: Stephan Birnbaum – Die Glaskugel hat ausgedient, wir machen Sof...
Dev Day 2019: Stephan Birnbaum – Die Glaskugel hat ausgedient, wir machen Sof...Dev Day 2019: Stephan Birnbaum – Die Glaskugel hat ausgedient, wir machen Sof...
Dev Day 2019: Stephan Birnbaum – Die Glaskugel hat ausgedient, wir machen Sof...DevDay Dresden
 

Was ist angesagt? (20)

PLM-Architektur der Zukunft
PLM-Architektur der ZukunftPLM-Architektur der Zukunft
PLM-Architektur der Zukunft
 
Eclipse RapidClipse - Status Quo
Eclipse RapidClipse - Status QuoEclipse RapidClipse - Status Quo
Eclipse RapidClipse - Status Quo
 
Webcast: SAP on Azure für den Mittelstand - Erfolgsfaktor Integration
Webcast: SAP on Azure für den Mittelstand - Erfolgsfaktor IntegrationWebcast: SAP on Azure für den Mittelstand - Erfolgsfaktor Integration
Webcast: SAP on Azure für den Mittelstand - Erfolgsfaktor Integration
 
E-Commerce Architektur aus Sicht eines Dienstleisters, IPC 2013
E-Commerce Architektur aus Sicht eines Dienstleisters, IPC 2013E-Commerce Architektur aus Sicht eines Dienstleisters, IPC 2013
E-Commerce Architektur aus Sicht eines Dienstleisters, IPC 2013
 
20150611 track3 2_bp22_ibm_connections_ist_keine_insel
20150611 track3 2_bp22_ibm_connections_ist_keine_insel20150611 track3 2_bp22_ibm_connections_ist_keine_insel
20150611 track3 2_bp22_ibm_connections_ist_keine_insel
 
DevDay 19 Accessibility: Praxistipps für Entwickler
DevDay 19 Accessibility: Praxistipps für EntwicklerDevDay 19 Accessibility: Praxistipps für Entwickler
DevDay 19 Accessibility: Praxistipps für Entwickler
 
Osudio + commercetools Webinar: Microservices - Flexibilität und Geschwindigk...
Osudio + commercetools Webinar: Microservices - Flexibilität und Geschwindigk...Osudio + commercetools Webinar: Microservices - Flexibilität und Geschwindigk...
Osudio + commercetools Webinar: Microservices - Flexibilität und Geschwindigk...
 
Machine Learning, AI, KI, Deep Learning und wo man es im PLM gebrauchen kann
Machine Learning, AI, KI, Deep Learning und wo man es im PLM gebrauchen kannMachine Learning, AI, KI, Deep Learning und wo man es im PLM gebrauchen kann
Machine Learning, AI, KI, Deep Learning und wo man es im PLM gebrauchen kann
 
Mit PLM zum erfolgreichen Service-Geschäft
Mit PLM zum erfolgreichen Service-GeschäftMit PLM zum erfolgreichen Service-Geschäft
Mit PLM zum erfolgreichen Service-Geschäft
 
Ibm cognos express frankfurt juli 2010
Ibm cognos express frankfurt juli 2010Ibm cognos express frankfurt juli 2010
Ibm cognos express frankfurt juli 2010
 
Webinar Geschäftsmodellinnovationen durch Industrie 4.0 und Digitalisierung
Webinar Geschäftsmodellinnovationen durch Industrie 4.0 und Digitalisierung Webinar Geschäftsmodellinnovationen durch Industrie 4.0 und Digitalisierung
Webinar Geschäftsmodellinnovationen durch Industrie 4.0 und Digitalisierung
 
Helmut Rainer (BWT), Michael Schober (ECOSOL)
Helmut Rainer (BWT), Michael Schober (ECOSOL)Helmut Rainer (BWT), Michael Schober (ECOSOL)
Helmut Rainer (BWT), Michael Schober (ECOSOL)
 
Webinar: E-Rechnung - Relevanz und Lösungen für den öffentlichen Sektor
Webinar: E-Rechnung - Relevanz und Lösungen für den öffentlichen SektorWebinar: E-Rechnung - Relevanz und Lösungen für den öffentlichen Sektor
Webinar: E-Rechnung - Relevanz und Lösungen für den öffentlichen Sektor
 
Erp in der zukunft: über die funktionen hinaus
Erp in der zukunft: über die funktionen hinausErp in der zukunft: über die funktionen hinaus
Erp in der zukunft: über die funktionen hinaus
 
Produktdaten für die digitale Verkaufskommunikation
Produktdaten für die digitale VerkaufskommunikationProduktdaten für die digitale Verkaufskommunikation
Produktdaten für die digitale Verkaufskommunikation
 
3D-CAD-Daten – Wertvolle Visualisierung in der Kundenkommunikation
3D-CAD-Daten – Wertvolle Visualisierung in der Kundenkommunikation3D-CAD-Daten – Wertvolle Visualisierung in der Kundenkommunikation
3D-CAD-Daten – Wertvolle Visualisierung in der Kundenkommunikation
 
CAD in the Cloud
CAD in the CloudCAD in the Cloud
CAD in the Cloud
 
Lego-Bausteine des Online-Handels
Lego-Bausteine des Online-HandelsLego-Bausteine des Online-Handels
Lego-Bausteine des Online-Handels
 
Storytelling mit Content Commerce
Storytelling mit Content CommerceStorytelling mit Content Commerce
Storytelling mit Content Commerce
 
Dev Day 2019: Stephan Birnbaum – Die Glaskugel hat ausgedient, wir machen Sof...
Dev Day 2019: Stephan Birnbaum – Die Glaskugel hat ausgedient, wir machen Sof...Dev Day 2019: Stephan Birnbaum – Die Glaskugel hat ausgedient, wir machen Sof...
Dev Day 2019: Stephan Birnbaum – Die Glaskugel hat ausgedient, wir machen Sof...
 

Ähnlich wie Automatisierungsmöglichkeiten beim Legacy-Reengineering - Andres Koch, Object Engineering

Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen SchuldenLanglebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen SchuldenCarola Lilienthal
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core ApplicationsRobin Sedlaczek
 
Softwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightChristinaLerch1
 
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher SoftwareEinsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher SoftwareAndreas Schreiber
 
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die CloudApplikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die CloudAarno Aukia
 
Wertstoff Software - Wissenssicherung in Legacy-Systemen
Wertstoff Software - Wissenssicherung in Legacy-SystemenWertstoff Software - Wissenssicherung in Legacy-Systemen
Wertstoff Software - Wissenssicherung in Legacy-SystemenMichael Moser
 
Developer Week 2019: Architekturen für .NET Core-Anwendungen
Developer Week 2019: Architekturen für .NET Core-AnwendungenDeveloper Week 2019: Architekturen für .NET Core-Anwendungen
Developer Week 2019: Architekturen für .NET Core-AnwendungenRobin Sedlaczek
 
Architekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenArchitekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenRobin Sedlaczek
 
Modern Web Development 2019
Modern Web Development 2019Modern Web Development 2019
Modern Web Development 2019Intelliact AG
 
Tobias Nebel- Eclipse Sparkplug - Zündfunken für MQTT in der Industrie?
Tobias Nebel- Eclipse Sparkplug - Zündfunken für MQTT in der Industrie?Tobias Nebel- Eclipse Sparkplug - Zündfunken für MQTT in der Industrie?
Tobias Nebel- Eclipse Sparkplug - Zündfunken für MQTT in der Industrie?CarolinaMatthies1
 
.NET Core Architecture (UI)
.NET Core Architecture (UI).NET Core Architecture (UI)
.NET Core Architecture (UI)Robin Sedlaczek
 
Shift Left fängt ganz links an
Shift Left fängt ganz links anShift Left fängt ganz links an
Shift Left fängt ganz links anBATbern
 
Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Jürg Stuker
 
Python in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtPython in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtAndreas Schreiber
 
Domain-Driven Design in der Praxis
Domain-Driven Design in der PraxisDomain-Driven Design in der Praxis
Domain-Driven Design in der PraxisMichael Mirold
 
d.velop ecspand entscheidet sich für SemTalk zur SharePoint-Modellierung
d.velop ecspand entscheidet sich für SemTalk zur SharePoint-Modellierungd.velop ecspand entscheidet sich für SemTalk zur SharePoint-Modellierung
d.velop ecspand entscheidet sich für SemTalk zur SharePoint-Modellierungbhoeck
 
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
20040921 Serviceorientierte Architektur für WebSphere und WebSphere PortalFrank Rahn
 

Ähnlich wie Automatisierungsmöglichkeiten beim Legacy-Reengineering - Andres Koch, Object Engineering (20)

Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen SchuldenLanglebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core Applications
 
CodeFluent Entities and AppSofa
CodeFluent Entities and AppSofaCodeFluent Entities and AppSofa
CodeFluent Entities and AppSofa
 
Softwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha Night
 
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher SoftwareEinsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
 
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die CloudApplikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
 
Wertstoff Software - Wissenssicherung in Legacy-Systemen
Wertstoff Software - Wissenssicherung in Legacy-SystemenWertstoff Software - Wissenssicherung in Legacy-Systemen
Wertstoff Software - Wissenssicherung in Legacy-Systemen
 
Developer Week 2019: Architekturen für .NET Core-Anwendungen
Developer Week 2019: Architekturen für .NET Core-AnwendungenDeveloper Week 2019: Architekturen für .NET Core-Anwendungen
Developer Week 2019: Architekturen für .NET Core-Anwendungen
 
Architekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenArchitekturen für .NET Core-Anwendungen
Architekturen für .NET Core-Anwendungen
 
Modern Web Development 2019
Modern Web Development 2019Modern Web Development 2019
Modern Web Development 2019
 
Tobias Nebel- Eclipse Sparkplug - Zündfunken für MQTT in der Industrie?
Tobias Nebel- Eclipse Sparkplug - Zündfunken für MQTT in der Industrie?Tobias Nebel- Eclipse Sparkplug - Zündfunken für MQTT in der Industrie?
Tobias Nebel- Eclipse Sparkplug - Zündfunken für MQTT in der Industrie?
 
.NET und jetzt!
.NET und jetzt!.NET und jetzt!
.NET und jetzt!
 
.NET Core Architecture (UI)
.NET Core Architecture (UI).NET Core Architecture (UI)
.NET Core Architecture (UI)
 
Shift Left fängt ganz links an
Shift Left fängt ganz links anShift Left fängt ganz links an
Shift Left fängt ganz links an
 
Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Top 10 Internet Trends 2001
Top 10 Internet Trends 2001
 
Python in der Luft- und Raumfahrt
Python in der Luft- und RaumfahrtPython in der Luft- und Raumfahrt
Python in der Luft- und Raumfahrt
 
Domain-Driven Design in der Praxis
Domain-Driven Design in der PraxisDomain-Driven Design in der Praxis
Domain-Driven Design in der Praxis
 
OSLC in Aktion
OSLC in AktionOSLC in Aktion
OSLC in Aktion
 
d.velop ecspand entscheidet sich für SemTalk zur SharePoint-Modellierung
d.velop ecspand entscheidet sich für SemTalk zur SharePoint-Modellierungd.velop ecspand entscheidet sich für SemTalk zur SharePoint-Modellierung
d.velop ecspand entscheidet sich für SemTalk zur SharePoint-Modellierung
 
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
20040921 Serviceorientierte Architektur für WebSphere und WebSphere Portal
 

Mehr von BATbern

BATbern52 Moderation Berner Architekten Treffen zu Data Mesh
BATbern52 Moderation Berner Architekten Treffen zu Data MeshBATbern52 Moderation Berner Architekten Treffen zu Data Mesh
BATbern52 Moderation Berner Architekten Treffen zu Data MeshBATbern
 
BATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data MeshBATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data MeshBATbern
 
BATbern52 SBB zu Data Products und Knacknüsse
BATbern52 SBB zu Data Products und KnacknüsseBATbern52 SBB zu Data Products und Knacknüsse
BATbern52 SBB zu Data Products und KnacknüsseBATbern
 
BATbern52 Mobiliar zu Skalierte Datenprodukte mit Data Mesh
BATbern52 Mobiliar zu Skalierte Datenprodukte mit Data MeshBATbern52 Mobiliar zu Skalierte Datenprodukte mit Data Mesh
BATbern52 Mobiliar zu Skalierte Datenprodukte mit Data MeshBATbern
 
BATbern52 InnoQ on Data Mesh 2019 2023 2024++
BATbern52 InnoQ on Data Mesh 2019 2023 2024++BATbern52 InnoQ on Data Mesh 2019 2023 2024++
BATbern52 InnoQ on Data Mesh 2019 2023 2024++BATbern
 
Embracing Serverless: reengineering a real-estate digital marketplace
Embracing Serverless: reengineering a real-estate digital marketplaceEmbracing Serverless: reengineering a real-estate digital marketplace
Embracing Serverless: reengineering a real-estate digital marketplaceBATbern
 
Serverless und Event-Driven Architecture
Serverless und Event-Driven ArchitectureServerless und Event-Driven Architecture
Serverless und Event-Driven ArchitectureBATbern
 
Serverless Dev(Ops) in der Praxis
Serverless Dev(Ops) in der PraxisServerless Dev(Ops) in der Praxis
Serverless Dev(Ops) in der PraxisBATbern
 
Serverless at Lifestage
Serverless at LifestageServerless at Lifestage
Serverless at LifestageBATbern
 
Keynote Gregor Hohpe - Serverless Architectures
Keynote Gregor Hohpe - Serverless ArchitecturesKeynote Gregor Hohpe - Serverless Architectures
Keynote Gregor Hohpe - Serverless ArchitecturesBATbern
 
BATbern51 Serverless?!
BATbern51 Serverless?!BATbern51 Serverless?!
BATbern51 Serverless?!BATbern
 
Ein Rückblick anlässlich des 50. BAT aus Sicht eines treuen Partners
Ein Rückblick anlässlich des 50. BAT aus Sicht eines treuen PartnersEin Rückblick anlässlich des 50. BAT aus Sicht eines treuen Partners
Ein Rückblick anlässlich des 50. BAT aus Sicht eines treuen PartnersBATbern
 
MLOps journey at Swisscom: AI Use Cases, Architecture and Future Vision
MLOps journey at Swisscom: AI Use Cases, Architecture and Future VisionMLOps journey at Swisscom: AI Use Cases, Architecture and Future Vision
MLOps journey at Swisscom: AI Use Cases, Architecture and Future VisionBATbern
 
From Ideation to Production in 7 days: The Scoring Factory at Raiffeisen
From Ideation to Production in 7 days: The Scoring Factory at RaiffeisenFrom Ideation to Production in 7 days: The Scoring Factory at Raiffeisen
From Ideation to Production in 7 days: The Scoring Factory at RaiffeisenBATbern
 
The Future of Coaching in Sport with AI/ML
The Future of Coaching in Sport with AI/MLThe Future of Coaching in Sport with AI/ML
The Future of Coaching in Sport with AI/MLBATbern
 
Klassifizierung von Versicherungsschäden – AI und MLOps bei der Mobiliar
Klassifizierung von Versicherungsschäden – AI und MLOps bei der MobiliarKlassifizierung von Versicherungsschäden – AI und MLOps bei der Mobiliar
Klassifizierung von Versicherungsschäden – AI und MLOps bei der MobiliarBATbern
 
BATbern48_ZeroTrust-Konzept und Realität.pdf
BATbern48_ZeroTrust-Konzept und Realität.pdfBATbern48_ZeroTrust-Konzept und Realität.pdf
BATbern48_ZeroTrust-Konzept und Realität.pdfBATbern
 
BATbern48_How Zero Trust can help your organisation keep safe.pdf
BATbern48_How Zero Trust can help your organisation keep safe.pdfBATbern48_How Zero Trust can help your organisation keep safe.pdf
BATbern48_How Zero Trust can help your organisation keep safe.pdfBATbern
 
BATbern48_Zero Trust Architektur des ISC-EJPD.pdf
BATbern48_Zero Trust Architektur des ISC-EJPD.pdfBATbern48_Zero Trust Architektur des ISC-EJPD.pdf
BATbern48_Zero Trust Architektur des ISC-EJPD.pdfBATbern
 
Why did the shift-left end up in the cloud for Bank Julius Baer?
Why did the shift-left end up in the cloud for Bank Julius Baer?Why did the shift-left end up in the cloud for Bank Julius Baer?
Why did the shift-left end up in the cloud for Bank Julius Baer?BATbern
 

Mehr von BATbern (20)

BATbern52 Moderation Berner Architekten Treffen zu Data Mesh
BATbern52 Moderation Berner Architekten Treffen zu Data MeshBATbern52 Moderation Berner Architekten Treffen zu Data Mesh
BATbern52 Moderation Berner Architekten Treffen zu Data Mesh
 
BATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data MeshBATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data Mesh
 
BATbern52 SBB zu Data Products und Knacknüsse
BATbern52 SBB zu Data Products und KnacknüsseBATbern52 SBB zu Data Products und Knacknüsse
BATbern52 SBB zu Data Products und Knacknüsse
 
BATbern52 Mobiliar zu Skalierte Datenprodukte mit Data Mesh
BATbern52 Mobiliar zu Skalierte Datenprodukte mit Data MeshBATbern52 Mobiliar zu Skalierte Datenprodukte mit Data Mesh
BATbern52 Mobiliar zu Skalierte Datenprodukte mit Data Mesh
 
BATbern52 InnoQ on Data Mesh 2019 2023 2024++
BATbern52 InnoQ on Data Mesh 2019 2023 2024++BATbern52 InnoQ on Data Mesh 2019 2023 2024++
BATbern52 InnoQ on Data Mesh 2019 2023 2024++
 
Embracing Serverless: reengineering a real-estate digital marketplace
Embracing Serverless: reengineering a real-estate digital marketplaceEmbracing Serverless: reengineering a real-estate digital marketplace
Embracing Serverless: reengineering a real-estate digital marketplace
 
Serverless und Event-Driven Architecture
Serverless und Event-Driven ArchitectureServerless und Event-Driven Architecture
Serverless und Event-Driven Architecture
 
Serverless Dev(Ops) in der Praxis
Serverless Dev(Ops) in der PraxisServerless Dev(Ops) in der Praxis
Serverless Dev(Ops) in der Praxis
 
Serverless at Lifestage
Serverless at LifestageServerless at Lifestage
Serverless at Lifestage
 
Keynote Gregor Hohpe - Serverless Architectures
Keynote Gregor Hohpe - Serverless ArchitecturesKeynote Gregor Hohpe - Serverless Architectures
Keynote Gregor Hohpe - Serverless Architectures
 
BATbern51 Serverless?!
BATbern51 Serverless?!BATbern51 Serverless?!
BATbern51 Serverless?!
 
Ein Rückblick anlässlich des 50. BAT aus Sicht eines treuen Partners
Ein Rückblick anlässlich des 50. BAT aus Sicht eines treuen PartnersEin Rückblick anlässlich des 50. BAT aus Sicht eines treuen Partners
Ein Rückblick anlässlich des 50. BAT aus Sicht eines treuen Partners
 
MLOps journey at Swisscom: AI Use Cases, Architecture and Future Vision
MLOps journey at Swisscom: AI Use Cases, Architecture and Future VisionMLOps journey at Swisscom: AI Use Cases, Architecture and Future Vision
MLOps journey at Swisscom: AI Use Cases, Architecture and Future Vision
 
From Ideation to Production in 7 days: The Scoring Factory at Raiffeisen
From Ideation to Production in 7 days: The Scoring Factory at RaiffeisenFrom Ideation to Production in 7 days: The Scoring Factory at Raiffeisen
From Ideation to Production in 7 days: The Scoring Factory at Raiffeisen
 
The Future of Coaching in Sport with AI/ML
The Future of Coaching in Sport with AI/MLThe Future of Coaching in Sport with AI/ML
The Future of Coaching in Sport with AI/ML
 
Klassifizierung von Versicherungsschäden – AI und MLOps bei der Mobiliar
Klassifizierung von Versicherungsschäden – AI und MLOps bei der MobiliarKlassifizierung von Versicherungsschäden – AI und MLOps bei der Mobiliar
Klassifizierung von Versicherungsschäden – AI und MLOps bei der Mobiliar
 
BATbern48_ZeroTrust-Konzept und Realität.pdf
BATbern48_ZeroTrust-Konzept und Realität.pdfBATbern48_ZeroTrust-Konzept und Realität.pdf
BATbern48_ZeroTrust-Konzept und Realität.pdf
 
BATbern48_How Zero Trust can help your organisation keep safe.pdf
BATbern48_How Zero Trust can help your organisation keep safe.pdfBATbern48_How Zero Trust can help your organisation keep safe.pdf
BATbern48_How Zero Trust can help your organisation keep safe.pdf
 
BATbern48_Zero Trust Architektur des ISC-EJPD.pdf
BATbern48_Zero Trust Architektur des ISC-EJPD.pdfBATbern48_Zero Trust Architektur des ISC-EJPD.pdf
BATbern48_Zero Trust Architektur des ISC-EJPD.pdf
 
Why did the shift-left end up in the cloud for Bank Julius Baer?
Why did the shift-left end up in the cloud for Bank Julius Baer?Why did the shift-left end up in the cloud for Bank Julius Baer?
Why did the shift-left end up in the cloud for Bank Julius Baer?
 

Automatisierungsmöglichkeiten beim Legacy-Reengineering - Andres Koch, Object Engineering

  • 1. Automatisierungs- Möglichkeiten beim Legacy-Reengineering 05.11.2021 BAT Bern Andres Koch, El. Ing HTL, M. Math (CS) Object Engineering GmbH andres.koch@objeng.ch – www.objeng.ch Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg Agenda § Applikations-Modernisierung § Redesign (Modularisierung, Architektur) § Technologie Transformation § Was kann mit Automatisierung realistisch gemacht werden? § Refactoring § Reengineering § Examples § Summary Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
  • 2. Fragen zum Beantworten •In welchen Umständen ist Software-Modernisierung besser als Wegwerfen? •Wann macht automatisiertes Refactoring oder Reengineering Sinn? •Kann generierter Code danach manuell gewartet werden? Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg Modernisierung von Applikationen •Verschiedene Strategien – Wirf es weg und mach es neu! – Architektur-Erneuerung und Überarbeiten des Designs inkl. Modularisierung und Komponenten-Redesign – Technologie-Transformation – Code-Refaktorierung Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
  • 3. Schritte dorthin 1. Wissen was man hat àAnalyse 2. Wissen was man will à Wissen was man nicht (mehr) will 3. Wissen wie man es am Besten löst à Architektur, Design, Refactoring Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 5 Ursprungs- und Ziel-Architektur Monolithisches Design – Rich Clients – Webserver Container (Tomcat, JEE a.o. with JSP, JSF) – Application Servers (J EE) à Komponenten-basierte Architekturen – Service based Architecture – Event driven Architecture – Microservice Architecture Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
  • 4. Migration auf Umwegen Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg „Old“ Technology „Old“ Technology New Technolgy „Old“ Technology View View View Logic Logic Logic Datamodel Datamodel Datamodel 9 Architektur und Redesign •Komponenten-basierte Architektur ist in der Regel sinnvoll •Operation à Modul à Komponente (Service) à System •Service à Funktion + Schnittstelle + Message + Protokoll àADT/Objekt •In naher Zukunft werden wir uns mit den Nachwehen des Microservice-Hypes beschäftigen à micro-service à nano-service à serverless applications Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 14
  • 5. Technologie Transformation •Transformation der Programmiersprachen – Programmiersprache X à Y (C++ à Java, C#) – Sprachen-Transformation – Bibliotheks-Refactoring (Verschiedene Open Source Komponenten mit unterschiedlichen Versionen) •Datenbank Transformation – ORM Transformation •Transformation der Benutzeroberflächen – Rich Client à Web-Client (verschiedene Paradigmas und Frameworks) – JSP, JSF, ActiveX à Single Page Application Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg Wie kann man vorgehen? 1. Analysieren des bestehenden Systems und Software à übergreifende Abhängigkeiten – auf System-Ebene (Komponenten, Konfigurationen, Metadaten) – auf Code-Ebene – auf Daten-Ebene 2. Zielarchitektur definieren – Struktur und Informations-Fluss – Technologie definieren (Frameworks, Sprachen u.a.) 3. Reengineering von Code, Komponenten und anderen Artefakten – Neuer Code erstellen, Refaktorierung von bestehendem Code oder beides Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
  • 6. Analysieren manuell oder automatisiert? Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg Studentenprojekt Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 19 Frontend GraphicGen ImportConv AuthAutent Calculation Config DB DB DB DB
  • 7. Kann man die Komponenten sehen? Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 20 Project with 5 services and a codebase ~ 23’000 LOCs Metadaten im Zentrum Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
  • 8. Re-Engineering Process Copyright 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg Parsen und Filtern Finden und sammeln von Datenquellen Neue Artefakte generieren und für Re-Engineering und Refactoring verwenden Untersuchen und nach neuen Aspekten wieder importieren Wissensbasis verwenden Zielarchitektur und Migrationsplan definieren Dokumentation und Wissensträger konsultieren Metadaten speichern Metadata als Graphen Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 23
  • 9. Visualisierung Zweck: •Visualisierung von komprimierten Aspekten der Wissensbasis ähnlich wie bei Big Data Methode: •Artefakte importieren und für spätere Darstellung klassifizieren Visualisierung •Selektieren von Bereichen, welche visuell interessant scheinen und von dort runterschrauben zu den Details •Erkenntnisse für weitere Automatisierung nutzen Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg Beispiel: AS400 Batch-Application Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg •Batch-Applikation für eine missionskritische Marketing- und Verkaufs-Anwendung •Erwartet, dass 4500 Artefakte dazugehören •~100 Tables ~1600 SQL-Scripts •Externer Lieferant im phase-out •Zweck: Know-How für den weiteren Betrieb und Migration bewahren
  • 10. Modularisierung und Kriterien The effectiveness of a “modularization” is dependent upon the criteria used in dividing the system into modules David L. Parnas, On The Criteria To Be Used In Decomposing Systems Into Modules, in: Com. of the ACM, December 1972 Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 27 Kriterien-Kandiaten •File-Benennungen und Namens-Muster •Prefixes von Modul-Namen in älteren Systemen •Namensräume z.B. in Import-Statements in mehreren Modulen •Datenbank-Schemas Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 28
  • 11. •ein eher dem state of the art entsprechendes System mit ~30 services •Interprozesskommunikation mit REST and Messaging •Zweck: an einem “idealen” Beispiel aufzeigen, wie die Architektur abgebildet werden kann Architektur auf die Wissensbasis abbilden Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg Ebenen Komponenten Abhängigkeiten über Interprozess-Kommunikation Copyright 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
  • 12. Automatisiertes Re-Engineering and Refactoring Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg Technischer Prozess Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 34 Source-Code 1. Parsing Abstract Syntax Tree 2. Recognizer Metadata Repository 3. Analyzer & Transformer Target-Code 4. Generator
  • 13. Parsen und importieren von Artefakten •Parser-Framework (ANTLR) für Code-Artefakte •Individuelle Parser und Scanner für Konfigurationen und anderer Metadaten Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 35 Erkennen und Zuweisen von Kriterien (Tagging) • Mustererkennung (u.U. pragmatisch und individuell) • Erkennen von Domänen, Namensräumen u.a. • Normiertes Metamodel in Wissensbasis aber individuell erweiterbar Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 36
  • 14. Erkennen von Kriterien im AST Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 37 Depends On Target Field Analyse & Transformation Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg •Abhängigkeiten einfügen •Aufrufpfade erkennen •Gruppen im Graph erkennen •Erkennen von engen Beziehungen •Graphen-Algorithmen verwenden für Modularisierung – Community Detection Algorithms – Closeness Centrality – Degree Centrality
  • 15. Aufrufpfad-Verfolgung Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 39 Modulgrenzen finden •Manuelle Suche nach Schnittstellen in einer grossen Code-Basis ist nicht effizient genug •Eine voll automatisierte Ermittlung von Schnittstellen bringt kein sinnvolles Resultat •Die Kombination von Verstand des Menschen und der Geschwindigkeit der Maschine ist erfolgreicher •Graphen-Algorithmen helfen beim Identifizieren der besten Soll-Bruchstelle Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 40
  • 16. Finden von Modulgrenzen in Monolithen? Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 41 User Interface (GUI) Business Logic Data Access Technische Domänen als Kriterium Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 42
  • 17. Wo soll der Monolith aufgebrochen werden? Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 43 Generierung von neuen Artefacts Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg •Neue Artefakte generieren •In vorgegebenes Framework generieren •Vorgängiges, manuelles Erstellen eines Prototyps bevor man den Generator erstellt
  • 18. In vorgegebenes Framework generieren Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 45 Generated Classes Framework in new Architecture Generation Beispiel Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg
  • 19. Automation ein Mythos? Praxisbeispiele Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg Technologie-Migration bei Swisscom AG Copyright 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg <tui-mask ng-controller="A2100 as a2100"> <tui-mask-content> <tui-box title="Abfragen Kunden"> <input type="text" ng-model="model.id9116.data" required> </tui-box> </tui-mask-content> </tui-mask> • Originally 3270-Applikation from the 80-thies (character based UI) • Migration to a GUI 1997 • Visual C++ (MFC) • 135 Forms, ~10‘000 Fields • multilanguage (3) • 2’500 Users • Specialities, application functions • Various developer teams (generations) • Patchwork over time àMigration to a web based single page application àpartially automated
  • 20. Kosten- und Zeiteinsparung dank Automatisierung Copyright 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg Task Effort [h] Effort / Form [h] Tooling 556 4.2 GUI Framework (Java Script, Angular JS) 770 5.8 Validation of Forms (manual adjustment) 570 4.3 Total 1’896 (74% / 2560) 14.3 (50% Manually) Quantity Structure Forms/Fields 135 Forms / ~10‘000 Fields Duration 6 Weeks POC + 8 Months Realization Cost Savings 50% (Break even 50 = 0%) Surplus Deployment Improvement (~8’000 CHF/ Release) State of the Art Technology, Maintenance secured Architektur Re-Engineering bei •Architektur Re-Design mit teilautomatisiertem Prozess: 40-60% Kosteneinsparung •Code-Fragmente aus 7’000 Klassen extrahiert und 700 neue Klassen generiert •Generierung von Unit-Test vor der Migration für die nachfolgende Verifikation Copyright 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg Size / Parts Value Validators 1‘200-1‘400 Unit tests 1‘200-1‘400 gesamt Reduction of effort validators min. 1h per validator à 1‘200h Reduction of effort unit tests min. 2h per unit test à 2‘400h Reduction of project duration ~6 Sprints = ~3 Months Duration of generator adaption Concept + Realization, Preparation about 6 month duration Conzept ca. 2 month, Realization 4 month (1 developer OE)
  • 21. Antworten auf Einstiegsfragen •In welchen Umständen ist Software-Modernisierung besser als Wegwerfen? à grosse eher monolithische Systeme àmodularisieren und dann schrittweise modernisieren oder ersetzen •Wann macht automatisiertes Refactoring oder Reengineering Sinn? àWenn die Zahl von Artefakten sehr gross ist, eine Regelmässigkeit vorhanden ist und der manuelle Prozess zeitintensiv ist •Kann generierter Code danach manuell gewartet werden? à”Wenn ein:e Entwickler:in guten, wartbaren Code schreiben kann, dann kann er/sie auch einen Generator schreiben, der manuell wartbaren Code generiert” Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg Schlussfolgerung •Auch wenn gegen eine Modernisierung entschieden wird, sollte das Bestehende als Wissensbasis verwendet werden (Analyse) •Je grösser die Code-Basis um so grösser der Gewinn aus einer Automatisierung •Generell: Nicht weniger als 100 K LoCs, erwartete Zeiteinsparung von > 500 h, #Artefake >> 100 •Nicht aufgeben, auch wenn es nicht perfekt ist à Pragmatische Lösung: Automatisierung kombiniert mit manueller Behandlung (Pareto) •1:1 Migration nur für Technologie-Transformation anstreben •Sich bewusst sein, dass neue Architektur-Muster wieder neuartige Legacy generieren (Bsp. Microservice Architekturen) •Tip: Wertvolles erhalten und wertloses ersetzen Copyright © 2021 by Object Engineering GmbH, CH-8142 Uitikon-Waldegg 52