Wertstoff Software 
Wissenssicherung in (Legacy-) Systemen 
Mag. Michael Moser 
Software Competence Center Hagenberg 
Software Analytics and Evolution 
+43 7236 3343 814 
michael.moser@scch.at 
www.scch.at 
SCCH is an initiative of SCCH is located in
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Fortran-Entwickler gesucht! 
© Software Competence Center Hagenberg GmbH 2
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Fortran-Entwickler gesucht! 
30 – 40 Jahre Softwareentwicklung 
Fachwissen in Software abgelegt 
Physikalische Berechnungen 
Kundenanforderungen 
Fehlende Dokumentation 
Millionen von Fortran-Codezeilen 
Pensionierungswelle in 5 Jahren! 
© Software Competence Center Hagenberg GmbH 3
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Software 
Software 
Software 
Problemkontext 
DK 
Domain Experts 
DK = Domain Knowledge 
IMPLEMENTATION 
require 
Stakeholders 
© Software Competence Center Hagenberg GmbH 4
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Problemkontext 
programs 
DK’ 
Code 
DK 
Domain Experts 
DK = Domain Knowledge 
IMPLEMENTATION 
Software 
Software 
Software 
require 
Stakeholders 
DK 
DK 
© Software Competence Center Hagenberg GmbH 5
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Problemkontext 
programs 
DK’ 
Code 
Software 
developer 
programs 
DK 
Domain Experts 
describes 
Specifications 
read / writes 
DK = Domain Knowledge 
IMPLEMENTATION 
Software 
Software 
Software 
require 
Stakeholders 
DK 
DK’ 
DK 
© Software Competence Center Hagenberg GmbH 6
Wertstoff Software 
Wissenssicherung in Legacysystemen 
DK’ 
Code 
Problemkontext 
programs 
Software 
developer 
programs 
DK 
Domain Experts 
describes 
Specifications 
Software 
Software 
Software 
Uses / Requires 
Stakeholders 
DK 
read / writes 
DK’ 
DK 
build / deploy 
DK = Domain Knowledge 
IMPLEMENTATION SOFTWARE MAINTENANCE 
© Software Competence Center Hagenberg GmbH 7
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Problemkontext 
build / deploy ! 
Code 
Software 
developer 
programs 
Domain Experts 
Specifications 
IMPLEMENTATION SOFTWARE MAINTENANCE 
© Software Competence Center Hagenberg GmbH 
Software 
Software 
Software 
Stakeholders 
DK 
Uses / Requires 
Change 
Management 
request changes 
DK 
describes 
read / writes 
programs 
DK’ 
DK’ 
DK 
! 
Documentation 
DK = Domain Knowledge
Wertstoff Software 
Wissenssicherung in Legacysystemen 
DK’ 
Code 
Problemkontext 
programs 
Software 
developer 
programs 
describes 
! 
Specifications 
Documentation 
DK 
Domain Experts 
Software 
Software 
Software 
Uses / Requires 
? 
! 
Stakeholders 
DK 
DK 
Change 
Management 
build / deploy 
request changes 
read / writes 
DK’ 
DK = Domain Knowledge 
IMPLEMENTATION SOFTWARE MAINTENANCE 
© Software Competence Center Hagenberg GmbH 9
Wertstoff Software 
Wissenssicherung in Legacysystemen 
DK’ 
Code 
Problemkontext 
programs 
Software 
developer 
programs 
describes 
Specifications 
Documentation 
DK 
! 
Domain Experts 
Software 
Software 
Software 
Uses / Requires 
? 
! 
Stakeholders 
DK 
DK 
Change 
Management 
build / deploy 
request changes 
DK’ 
?? 
read / writes 
DK = Domain Knowledge 
IMPLEMENTATION SOFTWARE MAINTENANCE 
© Software Competence Center Hagenberg GmbH 10
Wertstoff Software 
Wissenssicherung in Legacysystemen 
DK’ 
Code 
Problemkontext 
programs 
Software 
developer 
programs 
describes 
Specifications 
Documentation 
DK 
! 
Domain Experts 
Software 
Software 
Software 
Uses / Requires 
? 
! 
Stakeholders 
DK 
DK 
Change 
Management 
build / deploy 
request changes 
DK’ 
?? 
read / writes 
DK = Domain Knowledge 
IMPLEMENTATION SOFTWARE MAINTENANCE 
© Software Competence Center Hagenberg GmbH 11
Wertstoff Software 
Wissenssicherung in Legacysystemen 
DK’ 
Code 
Problemkontext 
programs 
Software 
developer 
programs 
DK 
! 
Domain Experts 
Software 
Software 
Software 
Uses / Requires 
? 
! 
Stakeholders 
DK 
DK 
Change 
Management 
build / deploy 
request changes 
describes 
DK’ 
?? 
Specifications 
Documentation 
read / writes 
DK = Domain Knowledge 
IMPLEMENTATION SOFTWARE MAINTENANCE 
DK’ 
Code’ 
DK 
DK 
build / deploy 
REENGINEERING 
Software 
Software 
Software 
? 
? 
© Software Competence Center Hagenberg GmbH 12
Wertstoff Software 
Wissenssicherung in Legacysystemen 
DK’ 
Code 
Problemkontext 
programs 
Software 
developer 
programs 
DK* 
! 
Domain Experts 
Software 
Software 
Software 
Uses / Requires 
? 
! 
Stakeholders 
DK 
DK 
Change 
Management 
build / deploy 
request changes 
describes 
DK’ 
?? 
Specifications 
Documentation 
read / writes 
DK = Domain Knowledge 
IMPLEMENTATION SOFTWARE MAINTENANCE 
DK’ 
Code’ 
DK 
DK 
build / deploy 
? 
REENGINEERING 
Software 
Software 
Software 
? 
? 
© Software Competence Center Hagenberg GmbH 13
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Legacy Systeme 
Aussagen aus der Literatur 
© Software Competence Center Hagenberg GmbH 14
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Legacy Systeme 
Aussagen aus der Literatur 
Schwer zu ändern und warten 
Schwer zu erweitern Unflexibel 
Integration mit anderen System schwierig 
Spezifisch für eine Organisation 
Benötigt veraltete Hardware 
© Software Competence Center Hagenberg GmbH 15
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Legacy Systeme 
Aussagen aus der Literatur 
Schwer zu ändern und warten 
Schwer zu erweitern Unstrukturiert 
Integration mit anderen System schwierig 
Spezifisch für eine Organisation 
Benötigt veraltete Hardware 
Entscheidend für Unternehmenserfolg 
Lange Lebensdauer 
Großes Risiko bei 
Migration oder Austausch 
Fehlende Dokumentation 
Fehlendes Verständnis 
© Software Competence Center Hagenberg GmbH 16
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Legacy Systeme 
How Legacy Systems are Perceived by IT Professionals 
Ravi Khadka et al., How Do Professionals Perceive 
Legacy Systems and Software Modernization? In 36th 
International Conference on Software Engineering. 
ACM, 2014. 
Nutzen 
Unternehmenskritisch 
Bewährte Technologie 
Verlässliches System 
Performant 
© Software Competence Center Hagenberg GmbH 17
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Legacy Systeme 
How Legacy Systems are Perceived by IT Professionals 
Ravi Khadka et al., How Do Professionals Perceive 
Legacy Systems and Software Modernization? In 36th 
International Conference on Software Engineering. 
ACM, 2014. 
Nutzen 
Unternehmenskritisch 
Bewährte Technologie 
Verlässliches System 
Performant 
Gründe für Modernisierung 
Auf Änderung rasch zu reagieren 
Hohe Wartungskosten 
Fehlendes Wissen 
Fehleranfällig 
© Software Competence Center Hagenberg GmbH 18
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Legacy Systeme 
How Legacy Systems are Perceived by IT Professionals 
Ravi Khadka et al., How Do Professionals Perceive 
Legacy Systems and Software Modernization? In 36th 
International Conference on Software Engineering. 
ACM, 2014. 
Nutzen 
Unternehmenskritisch 
Bewährte Technologie 
Verlässliches System 
Performant 
Gründe für Modernisierung 
Auf Änderung rasch zu reagieren 
Hohe Wartungskosten 
Fehlendes Wissen 
Fehleranfällig 
Herausforderungen bei Modernisierung 
Zeitdruck 
Daten Migration 
Komplexe Architektur 
Fehlendes Wissen 
Schwierig Business Logic zu extrahieren 
Widerstand innerhalb der Organisation 
© Software Competence Center Hagenberg GmbH 19
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Legacy Systeme 
How Legacy Systems are Perceived by IT Professionals 
Ravi Khadka et al., How Do Professionals Perceive 
Legacy Systems and Software Modernization? In 36th 
International Conference on Software Engineering. 
ACM, 2014. 
Nutzen 
Unternehmenskritisch 
Bewährte Technologie 
Verlässliches System 
Performant 
Gründe für Modernisierung 
Auf Änderung rasch zu reagieren 
Hohe Wartungskosten 
Fehlendes Wissen 
Fehleranfällig 
Herausforderungen bei Modernisierung 
Zeitdruck 
Daten Migration 
Komplexe Architektur 
Fehlendes Wissen 
Schwierig Business Logic zu extrahieren 
Widerstand innerhalb der Organisation 
© Software Competence Center Hagenberg GmbH 20
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Legacy Systeme 
Aus unserer Projekterfahrung 
© Software Competence Center Hagenberg GmbH 21
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Legacy Systeme 
Aus unserer Projekterfahrung 
Technische u. wissenschaftliche Software 
Fortran, C/C++, PL/SQL 
Komplexe Berechnungen 
Umfangreiche Berechnungen 
Optimiert (Laufzeit, Speicher) 
© Software Competence Center Hagenberg GmbH 22
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Legacy Systeme 
Aus unserer Projekterfahrung 
Technische u. wissenschaftliche Software 
Individueller Code 
Langlebig (über Jahrzehnte) 
Fehlende Dokumentation 
Fortran, C/C++, PL/SQL 
Komplexe Berechnungen 
Umfangreiche Berechnungen 
Optimiert (Laufzeit, Speicher) 
Funktionale Spezifikation gefordert 
© Software Competence Center Hagenberg GmbH 23
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Ziele 
 Lokalisierung von Fachwissen in Programmcode 
 Rekonstruktion von Fachwissen aus Programmcode 
 Fachwissen in für Fachexperten geeigneter Notation ablegen 
 Fachliche Spezifikation für bestehende/neue Software 
FW 
Code 
Extraktion Transformation 
Fachwissen 
Spezifikation 
© Software Competence Center Hagenberg GmbH 24
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Beispiele für Fachwissen 
Finanzprodukte 
Klimamodelle 
Spritzgießverfahren 
Auslegung elekt. Maschinen 
© Software Competence Center Hagenberg GmbH 25
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Ansätze zur Wissenssicherung aus Software 
 Business Rule Extraction, Business Processes Extraction 
 Methoden 
Program Slicing, Pattern Matching, Variable Classification, Control flow 
Analysis, Dependency Mining, Process Mining, Program Trace Generation, 
Execution Pattern Generation, User-System Interaction Analysis, 
Feature Location, ... 
 Automatisierungsgrad 
Manuell, halbautomatisch, automatisch 
 Repäsentationen 
When Employee On Leave is not true, 
Total Salary = Total Salary + Union 
Fees 
NOT A Calculate C = C + B 
IF 
NOT A 
COMPUTE C 
= 
C + B 
011115 IF NOT A THEN 
011116 COMPUTE C = C + B 
011117 ENDIF 
End User 
Data 
Business 
Rule 
Abstract 
Syntax 
Tree 
Source 
Code 
 Intern: Abstract Syntax Trees, Control Flow Graphs, Program Dependency Graphs 
 Ausgabe: Code, Snippets, Text, Snippets, Business Rule Languages, Business 
Process Models, Business Processes Extraction, Entity Relationship Diagrams 
© Software Competence Center Hagenberg GmbH 26
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Unser Ansatz zur Wissenssicherung aus Software 
Fokus auf technische u. 
wissenschaftliche Software 
When Employee On Leave is not true, 
Total Salary = Total Salary + Union 
Fees 
NOT A Calculate C = C + B 
IF 
NOT A 
COMPUTE C 
= 
C + B 
011115 IF NOT A THEN 
011116 COMPUTE C = C + B 
011117 ENDIF 
DO 100 I = 1, N 
A = A + B(I) 
100 CONTINUE 
End User 
Data 
Business 
Rule 
Abstract 
Syntax 
Tree 
Source 
Code 
© Software Competence Center Hagenberg GmbH 27
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Unser Ansatz zur Wissenssicherung aus Software 
Fokus auf technische u. 
wissenschaftliche Software 
Statische Analyse von Source Code 
Generische Repräsentation der 
Programmstruktur (GAST) 
When Employee On Leave is not true, 
Total Salary = Total Salary + Union 
Fees 
NOT A Calculate C = C + B 
IF 
NOT A 
COMPUTE C 
= 
C + B 
011115 IF NOT A THEN 
011116 COMPUTE C = C + B 
011117 ENDIF 
I 1 N 
BODY A 
DO 100 I = 1, N 
A = A + B(I) 
100 CONTINUE 
DO 
= 
A + B(I) 
End User 
Data 
Business 
Rule 
Abstract 
Syntax 
Tree 
Source 
Code 
© Software Competence Center Hagenberg GmbH 28
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Unser Ansatz zur Wissenssicherung aus Software 
Fokus auf technische u. 
wissenschaftliche Software 
Statische Analyse von Source Code 
Generische Repräsentation der 
Programmstruktur (GAST) 
When Employee On Leave is not true, 
Total Salary = Total Salary + Union 
Fees 
NOT A Calculate C = C + B 
IF 
NOT A 
COMPUTE C 
= 
C + B 
011115 IF NOT A THEN 
011116 COMPUTE C = C + B 
011117 ENDIF 
domänenspezifische Modelle 
A = SUM(B, 1, N) 
I 1 N 
BODY A 
DO 100 I = 1, N 
A = A + B(I) 
100 CONTINUE 
DO 
= 
A + B(I) 
End User 
Data 
Business 
Rule 
Abstract 
Syntax 
Tree 
Source 
Code 
Transformation in 
© Software Competence Center Hagenberg GmbH 29
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Unser Ansatz zur Wissenssicherung aus Software 
Fokus auf technische u. 
wissenschaftliche Software 
Statische Analyse von Source Code 
Generische Repräsentation der 
Programmstruktur (GAST) 
When Employee On Leave is not true, 
Total Salary = Total Salary + Union 
Fees 
NOT A Calculate C = C + B 
IF 
NOT A 
COMPUTE C 
= 
C + B 
011115 IF NOT A THEN 
011116 COMPUTE C = C + B 
011117 ENDIF 
domänenspezifische Modelle 
Ausgabe in Notation der Domäne 
퐴 = 
푁 
퐵푖 
1 
A = SUM(B, 1, N) 
I 1 N 
BODY A 
DO 100 I = 1, N 
A = A + B(I) 
100 CONTINUE 
DO 
= 
Mathematische Notation 
A + B(I) 
End User 
Data 
Business 
Rule 
Abstract 
Syntax 
Tree 
Source 
Code 
Transformation in 
© Software Competence Center Hagenberg GmbH 30
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Unser Ansatz zur Wissenssicherung aus Software 
© Software Competence Center Hagenberg GmbH 31
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Einsatzszenarien und Beispiele 
Reverse Engineering mit Fokus auf Redokumentation 
Forward Engineering 
© Software Competence Center Hagenberg GmbH 32
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Szenario – Redokumentation 
Program Documentation 
Technische 
Dokumentation 
Programmcode 
 High writing effort because of redundant data in code and 
Keine Dokumenation verfügbar 
documentation (formula, diagrams) 
 Source code and documentation are out-of-sync over time 
 Documentation not consistent (not formal) 
Hoher Aufwand zur (Re)Dokumentation 
Programmcode und Dokumenation sind nicht synchronisiert 
© Software Competence Center Hagenberg GmbH 33
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Szenario – Redokumentation 
Program Documentation 
Programmcode 
Single Source of Truth 
1. Annotation 
2. Generierung 
Technische 
Dokumentation 
 High writing effort because of redundant data in code and 
Keine Dokumenation verfügbar 
documentation (formula, diagrams) 
 Source code and documentation are out-of-sync over time 
 Documentation not consistent (not formal) 
Hoher Aufwand zur (Re)Dokumentation 
Programmcode und Dokumenation sind nicht synchronisiert 
© Software Competence Center Hagenberg GmbH 34
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Szenario – Redokumentation 
! @section The ... 
! @subsection The ... 
! @p Short text goes here 
! @include{Text.odt} 
! @includegraphics{data.png} 
REAL :: a ! @symbol alpha @text Nominal .. 
REAL :: b ! @symbol U_{eff} @unit kV 
Struktur von Dokumenation 
Einbinden von Text 
Einbinden von Bildern 
Symbole (explicit in LaTeX style) 
double precision AZ2 
double precision AZ4 1:1 Zuweisungen von Variablen 
... 
AZ2 = (ALPHA*Z)**2 
AZ4 = AZ2 * AZ2 
FP = (0.0083*AZ4+0.20206+1./(1.+AZ2) )*AZ2 
FM = (0.0020*AZ4 + 0.0369 ) * AZ4 
GFCOUL = FP – FM 
© Software Competence Center Hagenberg GmbH 35
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Szenario – Redokumentation 
! @section The ... 
! @subsection The ... 
! @p Short text goes here 
! @include{Text.odt} 
! @includegraphics{data.png} 
REAL :: a ! @symbol alpha @text Nominal .. 
REAL :: b ! @symbol U_{eff} @unit kV 
Struktur von Dokumenation 
Einbinden von Text 
Einbinden von Bildern 
Symbole (explicit in LaTeX style) 
double precision AZ2 ! @substitute @suppress 
double precision AZ4 ! @substitute @suppress Unterdrücken von Zuweisungen 
... 
AZ2 = (ALPHA*Z)**2 
AZ4 = AZ2 * AZ2 
FP = (0.0083*AZ4+0.20206+1./(1.+AZ2) )*AZ2 
FM = (0.0020*AZ4 + 0.0369 ) * AZ4 
GFCOUL = FP – FM 
© Software Competence Center Hagenberg GmbH 36
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Szenario – Redokumentation 
geschlossene 
Formeln 
© Software Competence Center Hagenberg GmbH 37
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Szenario – Redokumentation 
Entscheidungs-tabelle 
© Software Competence Center Hagenberg GmbH 38
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Szenario – Redokumentation 
Diagramme 
© Software Competence Center Hagenberg GmbH 39
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Szenario – Redokumentation 
Werkzeug-unterstützung 
© Software Competence Center Hagenberg GmbH 40
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Spezifikation 
(handgeschrieben) 
41 
© Software Competence Center Hagenberg GmbH 
Programmcode 
Szenario – Forward Engineering
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Szenario – Forward Engineering 
Spezifikation 
(handgeschrieben) 
42 
© Software Competence Center Hagenberg GmbH 
Programmcode 
Implementiert Code, diese Formel?
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Szenario – Forward Engineering 
Platzhalter für Symbole / Variablen 
{var Q_w_flk} 
Platzhalter für Gleichungen 
© Software Competence Center Hagenberg GmbH 
Symbol definintions symbols.txt 
@var pi @symbol pi @text pi 
@var sig_m @symbol sigma{N} @text Normal stress 
@var Q_w_flk @symbol Q* @text The generali 
@var n_vec @symbol N @text The normal v 
Verwendung von Symbolersetztungsdatei 
Annotation von Gleichungen
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Szenario – Forward Engineering 
.docx .sources .pdf 
Parser / Analyzer / Documentation Generator 
© Software Competence Center Hagenberg GmbH 44
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Analyse von 
Programmcode 
Evolution von 
Software 
Generierung von 
Dokumentation 
Spezifikation und 
Modellierung 
© Software Competence Center Hagenberg GmbH 45
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Take Aways 
© Software Competence Center Hagenberg GmbH 46
Wertstoff Software 
Wissenssicherung in Legacysystemen 
Danke. 
Mag. Michael Moser 
Software Competence Center Hagenberg 
Software Analytics and Evolution 
+43 7236 3343 - 814 
michael.moser@scch.at 
www.scch.at 
© Software Competence Center Hagenberg GmbH 47

Wertstoff Software - Wissenssicherung in Legacy-Systemen

  • 1.
    Wertstoff Software Wissenssicherungin (Legacy-) Systemen Mag. Michael Moser Software Competence Center Hagenberg Software Analytics and Evolution +43 7236 3343 814 michael.moser@scch.at www.scch.at SCCH is an initiative of SCCH is located in
  • 2.
    Wertstoff Software Wissenssicherungin Legacysystemen Fortran-Entwickler gesucht! © Software Competence Center Hagenberg GmbH 2
  • 3.
    Wertstoff Software Wissenssicherungin Legacysystemen Fortran-Entwickler gesucht! 30 – 40 Jahre Softwareentwicklung Fachwissen in Software abgelegt Physikalische Berechnungen Kundenanforderungen Fehlende Dokumentation Millionen von Fortran-Codezeilen Pensionierungswelle in 5 Jahren! © Software Competence Center Hagenberg GmbH 3
  • 4.
    Wertstoff Software Wissenssicherungin Legacysystemen Software Software Software Problemkontext DK Domain Experts DK = Domain Knowledge IMPLEMENTATION require Stakeholders © Software Competence Center Hagenberg GmbH 4
  • 5.
    Wertstoff Software Wissenssicherungin Legacysystemen Problemkontext programs DK’ Code DK Domain Experts DK = Domain Knowledge IMPLEMENTATION Software Software Software require Stakeholders DK DK © Software Competence Center Hagenberg GmbH 5
  • 6.
    Wertstoff Software Wissenssicherungin Legacysystemen Problemkontext programs DK’ Code Software developer programs DK Domain Experts describes Specifications read / writes DK = Domain Knowledge IMPLEMENTATION Software Software Software require Stakeholders DK DK’ DK © Software Competence Center Hagenberg GmbH 6
  • 7.
    Wertstoff Software Wissenssicherungin Legacysystemen DK’ Code Problemkontext programs Software developer programs DK Domain Experts describes Specifications Software Software Software Uses / Requires Stakeholders DK read / writes DK’ DK build / deploy DK = Domain Knowledge IMPLEMENTATION SOFTWARE MAINTENANCE © Software Competence Center Hagenberg GmbH 7
  • 8.
    Wertstoff Software Wissenssicherungin Legacysystemen Problemkontext build / deploy ! Code Software developer programs Domain Experts Specifications IMPLEMENTATION SOFTWARE MAINTENANCE © Software Competence Center Hagenberg GmbH Software Software Software Stakeholders DK Uses / Requires Change Management request changes DK describes read / writes programs DK’ DK’ DK ! Documentation DK = Domain Knowledge
  • 9.
    Wertstoff Software Wissenssicherungin Legacysystemen DK’ Code Problemkontext programs Software developer programs describes ! Specifications Documentation DK Domain Experts Software Software Software Uses / Requires ? ! Stakeholders DK DK Change Management build / deploy request changes read / writes DK’ DK = Domain Knowledge IMPLEMENTATION SOFTWARE MAINTENANCE © Software Competence Center Hagenberg GmbH 9
  • 10.
    Wertstoff Software Wissenssicherungin Legacysystemen DK’ Code Problemkontext programs Software developer programs describes Specifications Documentation DK ! Domain Experts Software Software Software Uses / Requires ? ! Stakeholders DK DK Change Management build / deploy request changes DK’ ?? read / writes DK = Domain Knowledge IMPLEMENTATION SOFTWARE MAINTENANCE © Software Competence Center Hagenberg GmbH 10
  • 11.
    Wertstoff Software Wissenssicherungin Legacysystemen DK’ Code Problemkontext programs Software developer programs describes Specifications Documentation DK ! Domain Experts Software Software Software Uses / Requires ? ! Stakeholders DK DK Change Management build / deploy request changes DK’ ?? read / writes DK = Domain Knowledge IMPLEMENTATION SOFTWARE MAINTENANCE © Software Competence Center Hagenberg GmbH 11
  • 12.
    Wertstoff Software Wissenssicherungin Legacysystemen DK’ Code Problemkontext programs Software developer programs DK ! Domain Experts Software Software Software Uses / Requires ? ! Stakeholders DK DK Change Management build / deploy request changes describes DK’ ?? Specifications Documentation read / writes DK = Domain Knowledge IMPLEMENTATION SOFTWARE MAINTENANCE DK’ Code’ DK DK build / deploy REENGINEERING Software Software Software ? ? © Software Competence Center Hagenberg GmbH 12
  • 13.
    Wertstoff Software Wissenssicherungin Legacysystemen DK’ Code Problemkontext programs Software developer programs DK* ! Domain Experts Software Software Software Uses / Requires ? ! Stakeholders DK DK Change Management build / deploy request changes describes DK’ ?? Specifications Documentation read / writes DK = Domain Knowledge IMPLEMENTATION SOFTWARE MAINTENANCE DK’ Code’ DK DK build / deploy ? REENGINEERING Software Software Software ? ? © Software Competence Center Hagenberg GmbH 13
  • 14.
    Wertstoff Software Wissenssicherungin Legacysystemen Legacy Systeme Aussagen aus der Literatur © Software Competence Center Hagenberg GmbH 14
  • 15.
    Wertstoff Software Wissenssicherungin Legacysystemen Legacy Systeme Aussagen aus der Literatur Schwer zu ändern und warten Schwer zu erweitern Unflexibel Integration mit anderen System schwierig Spezifisch für eine Organisation Benötigt veraltete Hardware © Software Competence Center Hagenberg GmbH 15
  • 16.
    Wertstoff Software Wissenssicherungin Legacysystemen Legacy Systeme Aussagen aus der Literatur Schwer zu ändern und warten Schwer zu erweitern Unstrukturiert Integration mit anderen System schwierig Spezifisch für eine Organisation Benötigt veraltete Hardware Entscheidend für Unternehmenserfolg Lange Lebensdauer Großes Risiko bei Migration oder Austausch Fehlende Dokumentation Fehlendes Verständnis © Software Competence Center Hagenberg GmbH 16
  • 17.
    Wertstoff Software Wissenssicherungin Legacysystemen Legacy Systeme How Legacy Systems are Perceived by IT Professionals Ravi Khadka et al., How Do Professionals Perceive Legacy Systems and Software Modernization? In 36th International Conference on Software Engineering. ACM, 2014. Nutzen Unternehmenskritisch Bewährte Technologie Verlässliches System Performant © Software Competence Center Hagenberg GmbH 17
  • 18.
    Wertstoff Software Wissenssicherungin Legacysystemen Legacy Systeme How Legacy Systems are Perceived by IT Professionals Ravi Khadka et al., How Do Professionals Perceive Legacy Systems and Software Modernization? In 36th International Conference on Software Engineering. ACM, 2014. Nutzen Unternehmenskritisch Bewährte Technologie Verlässliches System Performant Gründe für Modernisierung Auf Änderung rasch zu reagieren Hohe Wartungskosten Fehlendes Wissen Fehleranfällig © Software Competence Center Hagenberg GmbH 18
  • 19.
    Wertstoff Software Wissenssicherungin Legacysystemen Legacy Systeme How Legacy Systems are Perceived by IT Professionals Ravi Khadka et al., How Do Professionals Perceive Legacy Systems and Software Modernization? In 36th International Conference on Software Engineering. ACM, 2014. Nutzen Unternehmenskritisch Bewährte Technologie Verlässliches System Performant Gründe für Modernisierung Auf Änderung rasch zu reagieren Hohe Wartungskosten Fehlendes Wissen Fehleranfällig Herausforderungen bei Modernisierung Zeitdruck Daten Migration Komplexe Architektur Fehlendes Wissen Schwierig Business Logic zu extrahieren Widerstand innerhalb der Organisation © Software Competence Center Hagenberg GmbH 19
  • 20.
    Wertstoff Software Wissenssicherungin Legacysystemen Legacy Systeme How Legacy Systems are Perceived by IT Professionals Ravi Khadka et al., How Do Professionals Perceive Legacy Systems and Software Modernization? In 36th International Conference on Software Engineering. ACM, 2014. Nutzen Unternehmenskritisch Bewährte Technologie Verlässliches System Performant Gründe für Modernisierung Auf Änderung rasch zu reagieren Hohe Wartungskosten Fehlendes Wissen Fehleranfällig Herausforderungen bei Modernisierung Zeitdruck Daten Migration Komplexe Architektur Fehlendes Wissen Schwierig Business Logic zu extrahieren Widerstand innerhalb der Organisation © Software Competence Center Hagenberg GmbH 20
  • 21.
    Wertstoff Software Wissenssicherungin Legacysystemen Legacy Systeme Aus unserer Projekterfahrung © Software Competence Center Hagenberg GmbH 21
  • 22.
    Wertstoff Software Wissenssicherungin Legacysystemen Legacy Systeme Aus unserer Projekterfahrung Technische u. wissenschaftliche Software Fortran, C/C++, PL/SQL Komplexe Berechnungen Umfangreiche Berechnungen Optimiert (Laufzeit, Speicher) © Software Competence Center Hagenberg GmbH 22
  • 23.
    Wertstoff Software Wissenssicherungin Legacysystemen Legacy Systeme Aus unserer Projekterfahrung Technische u. wissenschaftliche Software Individueller Code Langlebig (über Jahrzehnte) Fehlende Dokumentation Fortran, C/C++, PL/SQL Komplexe Berechnungen Umfangreiche Berechnungen Optimiert (Laufzeit, Speicher) Funktionale Spezifikation gefordert © Software Competence Center Hagenberg GmbH 23
  • 24.
    Wertstoff Software Wissenssicherungin Legacysystemen Ziele  Lokalisierung von Fachwissen in Programmcode  Rekonstruktion von Fachwissen aus Programmcode  Fachwissen in für Fachexperten geeigneter Notation ablegen  Fachliche Spezifikation für bestehende/neue Software FW Code Extraktion Transformation Fachwissen Spezifikation © Software Competence Center Hagenberg GmbH 24
  • 25.
    Wertstoff Software Wissenssicherungin Legacysystemen Beispiele für Fachwissen Finanzprodukte Klimamodelle Spritzgießverfahren Auslegung elekt. Maschinen © Software Competence Center Hagenberg GmbH 25
  • 26.
    Wertstoff Software Wissenssicherungin Legacysystemen Ansätze zur Wissenssicherung aus Software  Business Rule Extraction, Business Processes Extraction  Methoden Program Slicing, Pattern Matching, Variable Classification, Control flow Analysis, Dependency Mining, Process Mining, Program Trace Generation, Execution Pattern Generation, User-System Interaction Analysis, Feature Location, ...  Automatisierungsgrad Manuell, halbautomatisch, automatisch  Repäsentationen When Employee On Leave is not true, Total Salary = Total Salary + Union Fees NOT A Calculate C = C + B IF NOT A COMPUTE C = C + B 011115 IF NOT A THEN 011116 COMPUTE C = C + B 011117 ENDIF End User Data Business Rule Abstract Syntax Tree Source Code  Intern: Abstract Syntax Trees, Control Flow Graphs, Program Dependency Graphs  Ausgabe: Code, Snippets, Text, Snippets, Business Rule Languages, Business Process Models, Business Processes Extraction, Entity Relationship Diagrams © Software Competence Center Hagenberg GmbH 26
  • 27.
    Wertstoff Software Wissenssicherungin Legacysystemen Unser Ansatz zur Wissenssicherung aus Software Fokus auf technische u. wissenschaftliche Software When Employee On Leave is not true, Total Salary = Total Salary + Union Fees NOT A Calculate C = C + B IF NOT A COMPUTE C = C + B 011115 IF NOT A THEN 011116 COMPUTE C = C + B 011117 ENDIF DO 100 I = 1, N A = A + B(I) 100 CONTINUE End User Data Business Rule Abstract Syntax Tree Source Code © Software Competence Center Hagenberg GmbH 27
  • 28.
    Wertstoff Software Wissenssicherungin Legacysystemen Unser Ansatz zur Wissenssicherung aus Software Fokus auf technische u. wissenschaftliche Software Statische Analyse von Source Code Generische Repräsentation der Programmstruktur (GAST) When Employee On Leave is not true, Total Salary = Total Salary + Union Fees NOT A Calculate C = C + B IF NOT A COMPUTE C = C + B 011115 IF NOT A THEN 011116 COMPUTE C = C + B 011117 ENDIF I 1 N BODY A DO 100 I = 1, N A = A + B(I) 100 CONTINUE DO = A + B(I) End User Data Business Rule Abstract Syntax Tree Source Code © Software Competence Center Hagenberg GmbH 28
  • 29.
    Wertstoff Software Wissenssicherungin Legacysystemen Unser Ansatz zur Wissenssicherung aus Software Fokus auf technische u. wissenschaftliche Software Statische Analyse von Source Code Generische Repräsentation der Programmstruktur (GAST) When Employee On Leave is not true, Total Salary = Total Salary + Union Fees NOT A Calculate C = C + B IF NOT A COMPUTE C = C + B 011115 IF NOT A THEN 011116 COMPUTE C = C + B 011117 ENDIF domänenspezifische Modelle A = SUM(B, 1, N) I 1 N BODY A DO 100 I = 1, N A = A + B(I) 100 CONTINUE DO = A + B(I) End User Data Business Rule Abstract Syntax Tree Source Code Transformation in © Software Competence Center Hagenberg GmbH 29
  • 30.
    Wertstoff Software Wissenssicherungin Legacysystemen Unser Ansatz zur Wissenssicherung aus Software Fokus auf technische u. wissenschaftliche Software Statische Analyse von Source Code Generische Repräsentation der Programmstruktur (GAST) When Employee On Leave is not true, Total Salary = Total Salary + Union Fees NOT A Calculate C = C + B IF NOT A COMPUTE C = C + B 011115 IF NOT A THEN 011116 COMPUTE C = C + B 011117 ENDIF domänenspezifische Modelle Ausgabe in Notation der Domäne 퐴 = 푁 퐵푖 1 A = SUM(B, 1, N) I 1 N BODY A DO 100 I = 1, N A = A + B(I) 100 CONTINUE DO = Mathematische Notation A + B(I) End User Data Business Rule Abstract Syntax Tree Source Code Transformation in © Software Competence Center Hagenberg GmbH 30
  • 31.
    Wertstoff Software Wissenssicherungin Legacysystemen Unser Ansatz zur Wissenssicherung aus Software © Software Competence Center Hagenberg GmbH 31
  • 32.
    Wertstoff Software Wissenssicherungin Legacysystemen Einsatzszenarien und Beispiele Reverse Engineering mit Fokus auf Redokumentation Forward Engineering © Software Competence Center Hagenberg GmbH 32
  • 33.
    Wertstoff Software Wissenssicherungin Legacysystemen Szenario – Redokumentation Program Documentation Technische Dokumentation Programmcode  High writing effort because of redundant data in code and Keine Dokumenation verfügbar documentation (formula, diagrams)  Source code and documentation are out-of-sync over time  Documentation not consistent (not formal) Hoher Aufwand zur (Re)Dokumentation Programmcode und Dokumenation sind nicht synchronisiert © Software Competence Center Hagenberg GmbH 33
  • 34.
    Wertstoff Software Wissenssicherungin Legacysystemen Szenario – Redokumentation Program Documentation Programmcode Single Source of Truth 1. Annotation 2. Generierung Technische Dokumentation  High writing effort because of redundant data in code and Keine Dokumenation verfügbar documentation (formula, diagrams)  Source code and documentation are out-of-sync over time  Documentation not consistent (not formal) Hoher Aufwand zur (Re)Dokumentation Programmcode und Dokumenation sind nicht synchronisiert © Software Competence Center Hagenberg GmbH 34
  • 35.
    Wertstoff Software Wissenssicherungin Legacysystemen Szenario – Redokumentation ! @section The ... ! @subsection The ... ! @p Short text goes here ! @include{Text.odt} ! @includegraphics{data.png} REAL :: a ! @symbol alpha @text Nominal .. REAL :: b ! @symbol U_{eff} @unit kV Struktur von Dokumenation Einbinden von Text Einbinden von Bildern Symbole (explicit in LaTeX style) double precision AZ2 double precision AZ4 1:1 Zuweisungen von Variablen ... AZ2 = (ALPHA*Z)**2 AZ4 = AZ2 * AZ2 FP = (0.0083*AZ4+0.20206+1./(1.+AZ2) )*AZ2 FM = (0.0020*AZ4 + 0.0369 ) * AZ4 GFCOUL = FP – FM © Software Competence Center Hagenberg GmbH 35
  • 36.
    Wertstoff Software Wissenssicherungin Legacysystemen Szenario – Redokumentation ! @section The ... ! @subsection The ... ! @p Short text goes here ! @include{Text.odt} ! @includegraphics{data.png} REAL :: a ! @symbol alpha @text Nominal .. REAL :: b ! @symbol U_{eff} @unit kV Struktur von Dokumenation Einbinden von Text Einbinden von Bildern Symbole (explicit in LaTeX style) double precision AZ2 ! @substitute @suppress double precision AZ4 ! @substitute @suppress Unterdrücken von Zuweisungen ... AZ2 = (ALPHA*Z)**2 AZ4 = AZ2 * AZ2 FP = (0.0083*AZ4+0.20206+1./(1.+AZ2) )*AZ2 FM = (0.0020*AZ4 + 0.0369 ) * AZ4 GFCOUL = FP – FM © Software Competence Center Hagenberg GmbH 36
  • 37.
    Wertstoff Software Wissenssicherungin Legacysystemen Szenario – Redokumentation geschlossene Formeln © Software Competence Center Hagenberg GmbH 37
  • 38.
    Wertstoff Software Wissenssicherungin Legacysystemen Szenario – Redokumentation Entscheidungs-tabelle © Software Competence Center Hagenberg GmbH 38
  • 39.
    Wertstoff Software Wissenssicherungin Legacysystemen Szenario – Redokumentation Diagramme © Software Competence Center Hagenberg GmbH 39
  • 40.
    Wertstoff Software Wissenssicherungin Legacysystemen Szenario – Redokumentation Werkzeug-unterstützung © Software Competence Center Hagenberg GmbH 40
  • 41.
    Wertstoff Software Wissenssicherungin Legacysystemen Spezifikation (handgeschrieben) 41 © Software Competence Center Hagenberg GmbH Programmcode Szenario – Forward Engineering
  • 42.
    Wertstoff Software Wissenssicherungin Legacysystemen Szenario – Forward Engineering Spezifikation (handgeschrieben) 42 © Software Competence Center Hagenberg GmbH Programmcode Implementiert Code, diese Formel?
  • 43.
    Wertstoff Software Wissenssicherungin Legacysystemen Szenario – Forward Engineering Platzhalter für Symbole / Variablen {var Q_w_flk} Platzhalter für Gleichungen © Software Competence Center Hagenberg GmbH Symbol definintions symbols.txt @var pi @symbol pi @text pi @var sig_m @symbol sigma{N} @text Normal stress @var Q_w_flk @symbol Q* @text The generali @var n_vec @symbol N @text The normal v Verwendung von Symbolersetztungsdatei Annotation von Gleichungen
  • 44.
    Wertstoff Software Wissenssicherungin Legacysystemen Szenario – Forward Engineering .docx .sources .pdf Parser / Analyzer / Documentation Generator © Software Competence Center Hagenberg GmbH 44
  • 45.
    Wertstoff Software Wissenssicherungin Legacysystemen Analyse von Programmcode Evolution von Software Generierung von Dokumentation Spezifikation und Modellierung © Software Competence Center Hagenberg GmbH 45
  • 46.
    Wertstoff Software Wissenssicherungin Legacysystemen Take Aways © Software Competence Center Hagenberg GmbH 46
  • 47.
    Wertstoff Software Wissenssicherungin Legacysystemen Danke. Mag. Michael Moser Software Competence Center Hagenberg Software Analytics and Evolution +43 7236 3343 - 814 michael.moser@scch.at www.scch.at © Software Competence Center Hagenberg GmbH 47