Model-Driven Instrumentationfor Dynamic Analysis
of Legacy Software Systems
André van Hoorn1, Holger Knoche2,Wolfgang Goerigk2, and Wilhelm Hasselbring1
1Software Engineering Group, University of Kiel, Germany2b+m Informatik AG, Melsdorf, Germany
May 03, 2011 @ WSR 2011, Bad Honnef
May 03, 2011 @ WSR, Bad Honnef
Context — DynaMod ProjectContext & Motivation
Dynamic Analysis forModel-Driven Software Modernization
WP 7 Project Management WP 8 Publication of Results
Static Analysis
Dynamic Analysis
Model-BasedTesting
Code Generation
Definition of Transformations
Evaluation
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 2 / 15
Context — DynaMod ProjectContext & Motivation
Dynamic Analysis forModel-Driven Software Modernization
Project Consortium:
1 b+m Informatik AG(Development partner, consortium leader)
• Comprehensive MDSD know-how• Initiated openArchitectureWare (oAW)
2 Software Engineering Group, Univ. Kiel(Research partner)
3 Dataport(Associated partner)
4 HSH Nordbank AG(Associated partner)
b+m Informatik AG, Melsdorfhttp://www.bmiag.de/
Software Engineering GroupUniversity of Kiel, Kielhttp://se.informatik.uni-kiel.de/
HSH Nordbank AG, Kielhttp://www.hsh-nordbank.de/
Dataport, Altenholzhttp://www.dataport.de/
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 2 / 15
Context — DynaMod ProjectContext & Motivation
Dynamic Analysis forModel-Driven Software Modernization
Project Consortium:
1 b+m Informatik AG(Development partner, consortium leader)
• Comprehensive MDSD know-how• Initiated openArchitectureWare (oAW)
2 Software Engineering Group, Univ. Kiel(Research partner)
• Model-driven engineering, operation,and evolution of software systems
• Emphasis on software quality (of service)
3 Dataport(Associated partner)
4 HSH Nordbank AG(Associated partner)
b+m Informatik AG, Melsdorfhttp://www.bmiag.de/
Software Engineering GroupUniversity of Kiel, Kielhttp://se.informatik.uni-kiel.de/
HSH Nordbank AG, Kielhttp://www.hsh-nordbank.de/
Dataport, Altenholzhttp://www.dataport.de/
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 2 / 15
Context — DynaMod ProjectContext & Motivation
Dynamic Analysis forModel-Driven Software Modernization
Project Consortium:
1 b+m Informatik AG(Development partner, consortium leader)
• Comprehensive MDSD know-how• Initiated openArchitectureWare (oAW)
2 Software Engineering Group, Univ. Kiel(Research partner)
• Model-driven engineering, operation,and evolution of software systems
• Emphasis on software quality (of service)
3 Dataport(Associated partner)
• Provides ICT services for public/taxadministrations
4 HSH Nordbank AG(Associated partner)
b+m Informatik AG, Melsdorfhttp://www.bmiag.de/
Software Engineering GroupUniversity of Kiel, Kielhttp://se.informatik.uni-kiel.de/
HSH Nordbank AG, Kielhttp://www.hsh-nordbank.de/
Dataport, Altenholzhttp://www.dataport.de/
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 2 / 15
Context — DynaMod ProjectContext & Motivation
Dynamic Analysis forModel-Driven Software Modernization
Project Consortium:
1 b+m Informatik AG(Development partner, consortium leader)
• Comprehensive MDSD know-how• Initiated openArchitectureWare (oAW)
2 Software Engineering Group, Univ. Kiel(Research partner)
• Model-driven engineering, operation,and evolution of software systems
• Emphasis on software quality (of service)
3 Dataport(Associated partner)
• Provides ICT services for public/taxadministrations
4 HSH Nordbank AG(Associated partner)
• Leading bank for corporate and private clients innorthern Germany
b+m Informatik AG, Melsdorfhttp://www.bmiag.de/
Software Engineering GroupUniversity of Kiel, Kielhttp://se.informatik.uni-kiel.de/
HSH Nordbank AG, Kielhttp://www.hsh-nordbank.de/
Dataport, Altenholzhttp://www.dataport.de/
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 2 / 15
Context — DynaMod ProjectContext & Motivation
Dynamic Analysis forModel-Driven Software Modernization
Project Consortium:
1 b+m Informatik AG(Development partner, consortium leader)
2 Software Engineering Group, Univ. Kiel(Research partner)
3 Dataport(Associated partner)
4 HSH Nordbank AG(Associated partner)
Funding:
• BMBF “KMU-innovativ”
• 2 years (01/11–12/12)
Under grant no. 01IS10051
Read More:• http://kosse-sh.de/dynamod/
• MDSM @ CSMR 2011 [vHFG+11]
b+m Informatik AG, Melsdorfhttp://www.bmiag.de/
Software Engineering GroupUniversity of Kiel, Kielhttp://se.informatik.uni-kiel.de/
HSH Nordbank AG, Kielhttp://www.hsh-nordbank.de/
Dataport, Altenholzhttp://www.dataport.de/
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 2 / 15
Context — DynaMod ProjectContext & Motivation
Dynamic Analysis forModel-Driven Software Modernization
WP 7 Project Management WP 8 Publication of Results
Static Analysis
Dynamic Analysis
Model-BasedTesting
Code Generation
Definition of Transformations
Evaluation
b+m Informatik AG, Melsdorfhttp://www.bmiag.de/
Software Engineering GroupUniversity of Kiel, Kielhttp://se.informatik.uni-kiel.de/
HSH Nordbank AG, Kielhttp://www.hsh-nordbank.de/
Dataport, Altenholzhttp://www.dataport.de/
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 2 / 15
Dynamic Analysis of Software Runtime Behavior
Context & Motivation
Motivation
Static analysis is not sufficient to study a system’s architecture comprehensively
How to Gather Runtime Data from Executing Systems? — Instrumentation
• Profiling — employed in development environments; considerable performance overhead
• Monitoring — employed in production environments; captures real usage profile
Use Cases — Online & Offline Analysis
The obtained monitoring data can, for instance, be used for
• Performance evaluation (e.g., bottleneck detection)• (Self-)adaptation control (e.g., capacity management)• Application-level failure detection and diagnosis• Service-level management• Software reengineering: (architecture) reconstruction, modernization
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 3 / 15
Dynamic Analysis of Software Runtime Behavior
Context & Motivation
Motivation
Static analysis is not sufficient to study a system’s architecture comprehensively
How to Gather Runtime Data from Executing Systems? — Instrumentation
• Profiling — employed in development environments; considerable performance overhead
• Monitoring — employed in production environments; captures real usage profile
Use Cases — Online & Offline Analysis
The obtained monitoring data can, for instance, be used for
• Performance evaluation (e.g., bottleneck detection)• (Self-)adaptation control (e.g., capacity management)• Application-level failure detection and diagnosis• Service-level management• Software reengineering: (architecture) reconstruction, modernization
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 3 / 15
Dynamic Analysis of Software Runtime Behavior
Context & Motivation
Motivation
Static analysis is not sufficient to study a system’s architecture comprehensively
How to Gather Runtime Data from Executing Systems? — Instrumentation
• Profiling — employed in development environments; considerable performance overhead
• Monitoring — employed in production environments; captures real usage profile
Use Cases — Online & Offline Analysis
The obtained monitoring data can, for instance, be used for
• Performance evaluation (e.g., bottleneck detection)• (Self-)adaptation control (e.g., capacity management)• Application-level failure detection and diagnosis• Service-level management
• Software reengineering: (architecture) reconstruction, modernization
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 3 / 15
Dynamic Analysis of Software Runtime Behavior
Context & Motivation
Motivation
Static analysis is not sufficient to study a system’s architecture comprehensively
How to Gather Runtime Data from Executing Systems? — Instrumentation
• Profiling — employed in development environments; considerable performance overhead
• Monitoring — employed in production environments; captures real usage profile
Use Cases — Online & Offline Analysis
The obtained monitoring data can, for instance, be used for
• Performance evaluation (e.g., bottleneck detection)• (Self-)adaptation control (e.g., capacity management)• Application-level failure detection and diagnosis• Service-level management• Software reengineering: (architecture) reconstruction, modernization
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 3 / 15
AgendaAgenda
1 Context & Motivation
2 Model-Driven Instrumentation for Dynamic Analysis
3 AOP for Legacy Languages
4 Monitoring Instrumentation
5 Conclusions
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 4 / 15
AgendaModel-Driven Instrumentation for Dynamic Analysis
1 Context & Motivation
2 Model-Driven Instrumentation for Dynamic Analysis
3 AOP for Legacy Languages
4 Monitoring Instrumentation
5 Conclusions
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 5 / 15
OverviewModel-Driven Instrumentation for Dynamic Analysis
Imple
men
tation
Arc
hite c
ture
Dom
ain
AST
Code
DSL
ADL
Shop
search()
Instr.code
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 6 / 15
OverviewModel-Driven Instrumentation for Dynamic Analysis
Imple
men
tation
Arc
hite c
ture
Dom
ain
AST
Code
DSL
ADL
Shop
search()
Instr.code
Model
- Drive
nSoftw
a re
Dev
elopm
e nt
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 6 / 15
OverviewModel-Driven Instrumentation for Dynamic Analysis
Imple
men
tation
Arc
hite c
ture
Dom
ain
AST
Code
DSL
ADL
Shop
search()
Instr.code
Model
- Drive
nSoftw
a re
Dev
elopm
e nt
Sta
tic
Anal
ysi s
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 6 / 15
OverviewModel-Driven Instrumentation for Dynamic Analysis
Imp
lem
enta
tio
nA
rch
ite c
ture
Do
mai
n
AST
Code
DSL
ADL
Shop
search()
Instr.code
Mo
del
- Dri
ven
So
ftw
a re
Dev
elo
pm
e nt
Sta
tic
An
alys
i s
Queries
AnalysisMeasures
InstrumentationDirectives
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 6 / 15
OverviewModel-Driven Instrumentation for Dynamic Analysis
Imp
lem
enta
tio
nA
rch
ite c
ture
Do
mai
n
AST
Code
DSL
ADL
Shop
search()
Instr.code
Mo
del
- Dri
ven
So
ftw
a re
Dev
elo
pm
e nt
Sta
tic
An
alys
i s
Queries
AnalysisMeasures
InstrumentationDirectives
<<OpExecProbe>>
<<RespTReq>>
<<AvgRespT>>
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 6 / 15
OverviewModel-Driven Instrumentation for Dynamic Analysis
Imp
lem
enta
tio
nA
rch
ite c
ture
Do
mai
n
AST
Code
DSL
ADL
Shop
search()
Instr.code
Mo
del
- Dri
ven
So
ftw
a re
Dev
elo
pm
e nt
Sta
tic
An
alys
i s
Queries
AnalysisMeasures
InstrumentationDirectives
<<OpExecProbe>>
<<RespTReq>>
<<AvgRespT>>
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 6 / 15
OverviewModel-Driven Instrumentation for Dynamic Analysis
Imp
lem
enta
tio
nA
rch
ite c
ture
Do
mai
n
AST
Code
DSL
ADL
Shop
search()
Instr.code
Mo
del
- Dri
ven
So
ftw
a re
Dev
elo
pm
e nt
Sta
tic
An
alys
i s
Queries
AnalysisMeasures
InstrumentationDirectives
<<OpExecProbe>>
<<RespTReq>>
<<AvgRespT>>
Mo
del
- Dri
ven
Inst
rum
enta
tio
n
'@intercept#Call:CallProbe[]Call bookstore.searchBook
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 6 / 15
OverviewModel-Driven Instrumentation for Dynamic Analysis
Imp
lem
enta
tio
nA
rch
ite c
ture
Do
mai
n
AST
Code
DSL
ADL
Shop
search()
Instr.code
Mo
del
- Dri
ven
So
ftw
a re
Dev
elo
pm
e nt
Sta
tic
An
alys
i s
Queries
AnalysisMeasures
InstrumentationDirectives
<<OpExecProbe>>
<<RespTReq>>
<<AvgRespT>>
Mo
del
- Dri
ven
Inst
rum
enta
tio
n
'@intercept#Call:CallProbe[]Call bookstore.searchBook
Dyn
amic
An
alys
is
MonitoringEvents
Measure-ments
:AvgRTval=730
:EvalResval=true
:OpExectin=211tout=955
Results
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 6 / 15
Overview—DynaMod ExamplesModel-Driven Instrumentation for Dynamic Analysis
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 7 / 15
Overview—DynaMod ExamplesModel-Driven Instrumentation for Dynamic Analysis
Public Sub searchBook()...
crm.getOffersEnd Sub
Code
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 7 / 15
Overview—DynaMod ExamplesModel-Driven Instrumentation for Dynamic Analysis
Public Sub searchBook()...
crm.getOffersEnd Sub
Code
e[]k
AST
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 7 / 15
Overview—DynaMod ExamplesModel-Driven Instrumentation for Dynamic Analysis
Public Sub searchBook()...
crm.getOffersEnd Sub
Code
e[]k
AST
CatalogBookstore
searchBook()
DADL (DynaMod ADL)
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 7 / 15
Overview—DynaMod ExamplesModel-Driven Instrumentation for Dynamic Analysis
Public Sub searchBook()...
crm.getOffersEnd Sub
Code
e[]k
AST
CatalogBookstore
searchBook()
DADL (DynaMod ADL)DMeasures
:OperationInvocationCountMeasure
:AvgOperationRTMeasure
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 7 / 15
Overview—DynaMod ExamplesModel-Driven Instrumentation for Dynamic Analysis
Public Sub searchBook()...
crm.getOffersEnd Sub
Code
e[]k
AST
CatalogBookstore
searchBook()
DADL (DynaMod ADL)DMeasures
:OperationInvocationCountMeasure
:AvgOperationRTMeasure
DInstrumentation
:OperationExecutionProbe
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 7 / 15
Overview—DynaMod ExamplesModel-Driven Instrumentation for Dynamic Analysis
Public Sub searchBook()...
crm.getOffersEnd Sub
Code
e[]k
AST
CatalogBookstore
searchBook()
DADL (DynaMod ADL)DMeasures
:OperationInvocationCountMeasure
:AvgOperationRTMeasure
DInstrumentation
:OperationExecutionProbe
+AST
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 7 / 15
Overview—DynaMod ExamplesModel-Driven Instrumentation for Dynamic Analysis
Public Sub searchBook()...
crm.getOffersEnd Sub
Code
e[]k
AST
CatalogBookstore
searchBook()
DADL (DynaMod ADL)DMeasures
:OperationInvocationCountMeasure
:AvgOperationRTMeasure
DInstrumentation
:OperationExecutionProbe
+AST
'@intercept#Call:OpCallIcptr["Bookstore", "searchBook","CRM", "getOffers"]
Instrumented
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 7 / 15
Overview—DynaMod ExamplesModel-Driven Instrumentation for Dynamic Analysis
Public Sub searchBook()...
crm.getOffersEnd Sub
Code
e[]k
AST
CatalogBookstore
searchBook()
DADL (DynaMod ADL)DMeasures
:OperationInvocationCountMeasure
:AvgOperationRTMeasure
DInstrumentation
:OperationExecutionProbe
+AST
'@intercept#Call:OpCallIcptr["Bookstore", "searchBook","CRM", "getOffers"]
Instrumented
MonitoringRecord MonitoringEvents
:OperationExecutionRecord
tin=34tout=38
class="CRM"operation="getOffers"
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 7 / 15
Overview—DynaMod ExamplesModel-Driven Instrumentation for Dynamic Analysis
Public Sub searchBook()...
crm.getOffersEnd Sub
Code
e[]k
AST
CatalogBookstore
searchBook()
DADL (DynaMod ADL)DMeasures
:OperationInvocationCountMeasure
:AvgOperationRTMeasure
DInstrumentation
:OperationExecutionProbe
+AST
'@intercept#Call:OpCallIcptr["Bookstore", "searchBook","CRM", "getOffers"]
Instrumented
MonitoringRecord MonitoringEvents
:OperationExecutionRecord
tin=34tout=38
class="CRM"operation="getOffers"
DEvent MonitoringEvents
:OperationExecution
tin=34tout=38
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 7 / 15
Overview—DynaMod ExamplesModel-Driven Instrumentation for Dynamic Analysis
Public Sub searchBook()...
crm.getOffersEnd Sub
Code
e[]k
AST
CatalogBookstore
searchBook()
DADL (DynaMod ADL)DMeasures
:OperationInvocationCountMeasure
:AvgOperationRTMeasure
DInstrumentation
:OperationExecutionProbe
+AST
'@intercept#Call:OpCallIcptr["Bookstore", "searchBook","CRM", "getOffers"]
Instrumented
MonitoringRecord MonitoringEvents
:OperationExecutionRecord
tin=34tout=38
class="CRM"operation="getOffers"
DEvent MonitoringEvents
:OperationExecution
tin=34tout=38
DMeasurementst
:AvgOperationRT
avgRTMillis=5676
Measurements
count=67643:OperationInvocationCount
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 7 / 15
AgendaAOP for Legacy Languages
1 Context & Motivation
2 Model-Driven Instrumentation for Dynamic Analysis
3 AOP for Legacy Languages
4 Monitoring Instrumentation
5 Conclusions
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 8 / 15
AOP Framework—VB6 ExampleAOP for Legacy Languages
Public Sub searchBook()...
crm.getOffersEnd Sub
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 9 / 15
AOP Framework—VB6 ExampleAOP for Legacy Languages
Public Sub searchBook()...
crm.getOffersEnd Sub
'@intercept#Call:OpCallIcptr["Bookstore", "searchBook", "CRM", "getOffers"]
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 9 / 15
AOP Framework—VB6 ExampleAOP for Legacy Languages
Public Sub searchBook()...
crm.getOffersEnd Sub
'@intercept#Call:OpCallIcptr["Bookstore", "searchBook", "CRM", "getOffers"]
before(IcptOpCall)after(IcptOpCall)
OpCallIcptr
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 9 / 15
AOP Framework—VB6 ExampleAOP for Legacy Languages
Public Sub searchBook()...
crm.getOffersEnd Sub
'@intercept#Call:OpCallIcptr["Bookstore", "searchBook", "CRM", "getOffers"]
before(IcptOpCall)after(IcptOpCall)
OpCallIcptr
callerClass:StringcallerMethod:StringcalleeClass:StringcalleeMethod:Stringobject:Variant
IcptOpCall
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 9 / 15
AOP Framework—VB6 ExampleAOP for Legacy Languages
Public Sub searchBook()...
crm.getOffersEnd Sub
'@intercept#Call:OpCallIcptr["Bookstore", "searchBook", "CRM", "getOffers"]
before(IcptOpCall)after(IcptOpCall)
OpCallIcptr
callerClass:StringcallerMethod:StringcalleeClass:StringcalleeMethod:Stringobject:Variant
IcptOpCall
Private Sub Class_Initialize()...
End Sub
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 9 / 15
AOP Framework—VB6 ExampleAOP for Legacy Languages
Public Sub searchBook()...
crm.getOffersEnd Sub
'@intercept#Call:OpCallIcptr["Bookstore", "searchBook", "CRM", "getOffers"]
before(IcptOpCall)after(IcptOpCall)
OpCallIcptr
callerClass:StringcallerMethod:StringcalleeClass:StringcalleeMethod:Stringobject:Variant
IcptOpCall
Private Sub Class_Initialize()...
End Sub
'@intercept"Class_Initialize"]
#Execution:OpExecIcptr["Bookstore",
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 9 / 15
AOP Framework—VB6 ExampleAOP for Legacy Languages
Public Sub searchBook()...
crm.getOffersEnd Sub
'@intercept#Call:OpCallIcptr["Bookstore", "searchBook", "CRM", "getOffers"]
before(IcptOpCall)after(IcptOpCall)
OpCallIcptr
callerClass:StringcallerMethod:StringcalleeClass:StringcalleeMethod:Stringobject:Variant
IcptOpCall
Private Sub Class_Initialize()...
End Sub
'@intercept"Class_Initialize"]
#Execution:OpExecIcptr["Bookstore",
before(IcptOpExec)after(IcptOpExec)
OpExecIcptr
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 9 / 15
AOP Framework—VB6 ExampleAOP for Legacy Languages
Public Sub searchBook()...
crm.getOffersEnd Sub
'@intercept#Call:OpCallIcptr["Bookstore", "searchBook", "CRM", "getOffers"]
before(IcptOpCall)after(IcptOpCall)
OpCallIcptr
callerClass:StringcallerMethod:StringcalleeClass:StringcalleeMethod:Stringobject:Variant
IcptOpCall
Private Sub Class_Initialize()...
End Sub
'@intercept"Class_Initialize"]
#Execution:OpExecIcptr["Bookstore",
before(IcptOpExec)after(IcptOpExec)
OpExecIcptr
class:Stringmethod:Stringobject:String
IcptOpExec
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 9 / 15
AOP Framework—VB6 ExampleAOP for Legacy Languages
Public Sub searchBook()...
crm.getOffersEnd Sub
'@intercept#Call:OpCallIcptr["Bookstore", "searchBook", "CRM", "getOffers"]
before(IcptOpCall)after(IcptOpCall)
OpCallIcptr
callerClass:StringcallerMethod:StringcalleeClass:StringcalleeMethod:Stringobject:Variant
IcptOpCall
Private Sub Class_Initialize()...
End Sub
'@intercept"Class_Initialize"]
#Execution:OpExecIcptr["Bookstore",
before(IcptOpExec)after(IcptOpExec)
OpExecIcptr
class:Stringmethod:Stringobject:String
IcptOpExec
Public Sub searchBook()…Dim iCall0 As IcptOpCallSet iCall0 = New IcptOpCallCall iCall0.init("Bookstore", "searchBook", "CRM", "getOffers")Call opCallIntcptr.before(iCall0)crm.getOffersCall opCallIntcptr.after(iCall0)
End Sub
AVB6C
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 9 / 15
AVB6C — IDE IntegrationAOP for Legacy Languages
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 10 / 15
AVB6C — IDE IntegrationAOP for Legacy Languages
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 10 / 15
AVB6C — IDE IntegrationAOP for Legacy Languages
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 10 / 15
AVB6C — IDE IntegrationAOP for Legacy Languages
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 10 / 15
AVB6C — IDE IntegrationAOP for Legacy Languages
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 10 / 15
AVB6C — IDE IntegrationAOP for Legacy Languages
Acknowledgment : Our DynaMod student assistants, Eike Schulz and Benjamin Schnoor,are responsible for large parts of the implementation!
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 10 / 15
AgendaMonitoring Instrumentation
1 Context & Motivation
2 Model-Driven Instrumentation for Dynamic Analysis
3 AOP for Legacy Languages
4 Monitoring Instrumentation
5 Conclusions
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 11 / 15
Kieker Monitoring & Analysis FrameworkMonitoring Instrumentation
Analysis Plug-In
Monitoring log
e.g., file system, database, message-oriented middleware
e.g., trace information, workload, response times, resource utilization, loop counts
Monitoring Record
M
M
M
M
M
M
e.g., AOP-based method call interception
M
e.g., architecture reconstruction,performance evaluation, online adaptation control, failure diagnosis
Kieker.Monitoring Kieker.Analysis
Kieker Framework — Core Characteristics [vHRH+09]
• Flexible architecture (custom probes, readers, writers, analysis plug-ins)• Integrated & extensible record type model for monitoring & analysis• Logging, reconstruction, analysis/visualization of (distributed) traces• Low overhead (designed for continuous operation in multi-user systems)• Evaluated in industry case studies
http://kieker.sourceforge.net
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 12 / 15
Kieker Monitoring & Analysis FrameworkMonitoring Instrumentation
Analysis Plug-In
Monitoring log
e.g., file system, database, message-oriented middleware
e.g., trace information, workload, response times, resource utilization, loop counts
Monitoring Record
M
M
M
M
M
M
e.g., AOP-based method call interception
M
e.g., architecture reconstruction,performance evaluation, online adaptation control, failure diagnosis
Kieker.Monitoring
Monitoring Probe
Monitoring Controller
Monitoring Log Writer
Kieker.Analysis
MonitoringRecord
Consumer
AnalysisController
Monitoring Log Reader
Kieker Framework — Core Characteristics [vHRH+09]
• Flexible architecture (custom probes, readers, writers, analysis plug-ins)• Integrated & extensible record type model for monitoring & analysis• Logging, reconstruction, analysis/visualization of (distributed) traces• Low overhead (designed for continuous operation in multi-user systems)• Evaluated in industry case studies
http://kieker.sourceforge.net
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 12 / 15
Instrumentation of Legacy LanguagesMonitoring Instrumentation
Monitoring log
e.g., file system, database, message-oriented middleware
Monitoring Record
Kieker.Monitoring(Java)
• Goal: Reuse existing Java-based Kieker.Monitoring component
• Requires communication bridge among legacy language and Java• Instantiation of presented AOP framework for monitoring probes• Developed proof-of-concept implementation for VB6
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 13 / 15
Instrumentation of Legacy LanguagesMonitoring Instrumentation
Monitoring log
e.g., file system, database, message-oriented middleware
Monitoring Record
Kieker.Monitoring(Java)
Kieker.Monitoring(DLL)
• Goal: Reuse existing Java-based Kieker.Monitoring component• Requires communication bridge among legacy language and Java
• Instantiation of presented AOP framework for monitoring probes• Developed proof-of-concept implementation for VB6
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 13 / 15
Instrumentation of Legacy LanguagesMonitoring Instrumentation
Monitoring log
e.g., file system, database, message-oriented middleware
Monitoring Record
Kieker.Monitoring(Java)
Kieker.Monitoring(DLL)
M
M
M
M
M
M
M
• Goal: Reuse existing Java-based Kieker.Monitoring component• Requires communication bridge among legacy language and Java• Instantiation of presented AOP framework for monitoring probes
• Developed proof-of-concept implementation for VB6
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 13 / 15
Instrumentation of Legacy LanguagesMonitoring Instrumentation
Monitoring log
e.g., file system, database, message-oriented middleware
Monitoring Record
Kieker.Monitoring(Java)
Kieker.Monitoring(DLL)
M
M
M
M
M
M
M
Public Sub searchBook()...'@intercept#Call:OpCallIcptr["Bookstore", "searchBook",
"CRM", "getOffers"]crm.getOffers
End Sub
• Goal: Reuse existing Java-based Kieker.Monitoring component• Requires communication bridge among legacy language and Java• Instantiation of presented AOP framework for monitoring probes• Developed proof-of-concept implementation for VB6
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 13 / 15
Instrumentation of Legacy LanguagesMonitoring Instrumentation
Monitoring log
e.g., file system, database, message-oriented middleware
Monitoring Record
Kieker.Monitoring(Java)
Kieker.Monitoring(DLL)
M
M
M
M
M
M
M
Public Sub searchBook()...'@intercept#Call:OpCallIcptr["Bookstore", "searchBook",
"CRM", "getOffers"]crm.getOffers
End Sub
Public Sub before(icptOpExec As IcptOpExec)Dim tin As Varianttin = monitoringCtrl.currentTimeNanosicptOpExec.object = tin
End Sub
Public Sub after(icptOpExec As IcptOpExec)Dim r As OperationExecutionRecordDim tin, tout As VariantSet r = New OperationExecutionRecordtin = icptOpExec.objecttout = monitoringCtrl.currentTimeNanosCall r.initFields(icptOpExec.class, icptOpExec.class, icptOpExec.class, tin, tout)Call monitoringCtrl.writeRecord(r)
End Sub
before(IcptOpExec)after(IcptOpExec)
OpExecProbe
class:Stringmethod:Stringobject:String
IcptOpExec
• Goal: Reuse existing Java-based Kieker.Monitoring component• Requires communication bridge among legacy language and Java• Instantiation of presented AOP framework for monitoring probes• Developed proof-of-concept implementation for VB6
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 13 / 15
AgendaConclusions
1 Context & Motivation
2 Model-Driven Instrumentation for Dynamic Analysis
3 AOP for Legacy Languages
4 Monitoring Instrumentation
5 Conclusions
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 14 / 15
ConclusionsConclusions
Summary
• Context: DynaMod project for model-driven modernization
• Model-driven instrumentation for dynamic analysis
• AOP for legacy languages
• Monitoring instrumentation employing AOP framework and Kieker
• Current focus on Visual Basic 6
Future Work
• Refine and extend meta-models for queries, measures, instrumentation etc.
• Development of corresponding tool support — e.g., M2M/M2Code transformations
• Evaluate approach on other abstraction layers — e.g., DSLs, ASTs
• Additional AOP features — e.g., loops, branches
• Additional programming languages — e.g., COBOL, Natural, Structured Text
• Study performance overhead
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 15 / 15
ConclusionsConclusions
Summary
• Context: DynaMod project for model-driven modernization
• Model-driven instrumentation for dynamic analysis
• AOP for legacy languages
• Monitoring instrumentation employing AOP framework and Kieker
• Current focus on Visual Basic 6
Future Work
• Refine and extend meta-models for queries, measures, instrumentation etc.
• Development of corresponding tool support — e.g., M2M/M2Code transformations
• Evaluate approach on other abstraction layers — e.g., DSLs, ASTs
• Additional AOP features — e.g., loops, branches
• Additional programming languages — e.g., COBOL, Natural, Structured Text
• Study performance overhead
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 15 / 15
ConclusionsConclusions
Summary
• Context: DynaMod project for model-driven modernization
• Model-driven instrumentation for dynamic analysis
• AOP for legacy languages
• Monitoring instrumentation employing AOP framework and Kieker
• Current focus on Visual Basic 6
Future Work
• Refine and extend meta-models for queries, measures, instrumentation etc.
• Development of corresponding tool support — e.g., M2M/M2Code transformations
• Evaluate approach on other abstraction layers — e.g., DSLs, ASTs
• Additional AOP features — e.g., loops, branches
• Additional programming languages — e.g., COBOL, Natural, Structured Text
• Study performance overhead
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 15 / 15
Literature
Thomas Stahl and Markus Völter.
Model-Driven Software Development – Technology, Engineering, Management.Wiley & Sons, 2006.
André van Hoorn, Sören Frey, Wolfgang Goerigk, Wilhelm Hasselbring, Holger Knoche, Sönke Köster, Harald Krause, Marcus Porembski, Thomas
Stahl, Marcus Steinkamp, and Norman Wittmüss.DynaMod project: Dynamic analysis for model-driven software modernization.In Andreas Fuhr, Wilhelm Hasselbring, Volker Riediger, Magiel Bruntink, and Kostas Kontogiannis, editors, Joint Proceedings of the 1stInternational Workshop on Model-Driven Software Migration (MDSM 2011) and the 5th International Workshop on Software Quality andMaintainability (SQM 2011), volume 708 of CEUR Workshop Proceedings, pages 12–13, March 2011.Invited paper.
André van Hoorn, Holger Knoche, Wolfgang Goerigk, and Wilhelm Hasselbring.
Model-driven instrumentation for dynamic analysis of legacy software systems.In Proceedings of the 13. Workshop Software-Reengineering (WSR ’11), 2011.
André van Hoorn, Matthias Rohr, Wilhelm Hasselbring, Jan Waller, Jens Ehlers, Sören Frey, and Dennis Kieselhorst.
Continuous monitoring of software services: Design and application of the Kieker framework.Technical Report TR-0921, Department of Computer Science, University of Kiel, Germany, November 2009.
v. Hoorn, Knoche, Goerigk, Hasselbring Model-Driven Instrumentation for Dynamic Analysis May 03, 2011 16 / 15
Top Related