SlideShare a Scribd company logo
SCCH is an initiative of SCCH is located in
Integration of Static and Dynamic Analysis for
Understanding Legacy Source Code
Michael Moser
+43 7236 3343 814
michael.moser@scch.at
www.scch.at
ICSME’16, Industry Track, 06.10.2016
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
An Industry Collaboration
2© Software Competence Center Hagenberg GmbH
Michael Moser
michael.moser@scch.at
Pichler Josef
josef.pichler@scch.at
Wilhelm Kirchmayr
wilhelm.kirchmayr@voestalpine.com
Ludwig Nocke
ludwig.nocke@voestalpine.com
Rudolf Tober
wilhelm.kirchmayr@voestalpine.com
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
3© Software Competence Center Hagenberg GmbH
Background: Mr. Kaufmann’s Process Models
Mr. Kaufmann
(Process Engineer)
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
4© Software Competence Center Hagenberg GmbH
Background: Mr. Kaufmann’s Process Models
Mr. Kaufmann
(Process Engineer)
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
5© Software Competence Center Hagenberg GmbH
Background: Mr. Kaufmann’s Process Models
Mr. Kaufmann
(Process Engineer)
controlled by
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
6© Software Competence Center Hagenberg GmbH
Background: Mr. Kaufmann’s Process Models
Mr. Kaufmann
(Process Engineer)
controlled by feedback from
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
7© Software Competence Center Hagenberg GmbH
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
C++, 5600 LoC
Core Model created by 3rd
party company
20 model outputs from 22 inputs
Evolved in a multi-shell model
Background: Mr. Kaufmann’s Process Models
DeMo - Process model for desulphurization
Influence of input values not documented
Mr. Kaufmann
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
8© Software Competence Center Hagenberg GmbH
Mr. Kaufmann
(retired)
Background: Mr. Kaufmann’s Process Models
Mr. Bauer / Mr. Huber
(Process Engineers)
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
9© Software Competence Center Hagenberg GmbH
Background: Mr. Kaufmann’s Process Models
Questions ???
What is the formula for a model result?
Which input values affect which result?
What are all results of a process model?
Mr. Kaufmann
(retired)
Mr. Bauer / Mr. Huber
(Process Engineers)
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
Starting Point: Requirements and Goals
10© Software Competence Center Hagenberg GmbH
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
Documentation requested!
Simplify maintenance and optimization
Grant quick overview of the system
Capture dependencies between inputs and outputs
Flexible clipping of model source code
Reflect the hierarchical structure
Offline documentation
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
use of dynamic analysis
Examine program execution
Do not fully capture behavior
Needed: Model Interpretation
Include values from model execution
Merge with results from static analysis
Starting Point: Overall Approach
11
use of static analysis
Analyze entire program sources
Extract abstract representations
Application of RbG* to extract
Mathematical formulae
Decision tables / path conditions
Essential program structures
Needed: Stepwise Computation
from a model input to its outputs
Out1
Var1
In1
Var2
In2
Out1
Var1
In1
Var2
In2
input
values
*M. Moser and J. Pichler: RbG: A Documentation Generator
for Scientific and Engineering Software, (SANER 2015)
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
Example: A process model
12© Software Competence Center Hagenberg GmbH
Calling Context
typedef struct {
double snow_density;
} output;
typedef struct {
double snow_height;
double gamma_rho_S;
bool useFudgeFactor;
} input;
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
Example: A process model
13© Software Competence Center Hagenberg GmbH
Pre processing of input in outer shell
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
Example: A process model
14© Software Competence Center Hagenberg GmbH
Execution of core computational model
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
Example: A process model
15© Software Competence Center Hagenberg GmbH
Post processing of result data
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
Results for Example: Stepwise Computation
Symbol Formula Path Condition Input
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
Results for Example: Stepwise Computation
Symbol Formula Path Condition Input
One table for each result
One row for each computation that may influence result
Variables used within definitions are repeatedly resolved
Variable names may be replaced with symbol info
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
18© Software Competence Center Hagenberg GmbH
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
Results for Example: Model Execution
Symbol Formula Value Path Condition Input
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
19© Software Competence Center Hagenberg GmbH
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
Results for Example: Model Execution
Symbol Formula Value Path Condition Input
Results from model execution merged with static tables
Model execution with concrete input values
Unexecuted rows are hidden
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
20© Software Competence Center Hagenberg GmbH
Results for Example: Model Execution
Symbol Formula Value Path Condition Input
Results from model execution merged with static tables
Model execution with concrete input values
Unexecuted rows can be displayed
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
Results for Example: Big Picture
21© Software Competence Center Hagenberg GmbH
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
Results for Example: Big Picture
22© Software Competence Center Hagenberg GmbH
Fits on a sheet of paper
C++ methods and functions
Ordered call relations
Sub model clustering
Database access
Side-by-side with code
Packaged with documentation
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
dynamic analysis
model execution
program interpretation
flow-sensitive analysis
inter-procedural control-flow-graph
Specification of concrete values
Merge with stepwise computation
Analysis: A little more details
23© Software Competence Center Hagenberg GmbH
static analysis
stepwise computation
Construction of use-definition chains
Inter-procedural control-flow-graph
Forward propagation of definitions
Use-Definition chains per model output
“Entry-Point” Aware
big picture
Call-graph analysis
Pattern-matching
Out1
Var1
In1
Var2
In2
Out1
Var1
In1
Var2
In2
input
values
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
Results: Tool Support for Documentation Generation
24© Software Competence Center Hagenberg GmbH
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
Results: Lessons Learned from DeMo Process Model
25© Software Competence Center Hagenberg GmbH
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
Results: Lessons Learned from DeMo Process Model
26© Software Competence Center Hagenberg GmbH
domain experts provided
model outputs and model inputs
2 entry point definitions (F1, F2)
3 sets of input values
core entry point (F2)
21 outputs, 22 inputs
significant drop of rows
reduction 78% - 98%
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
Limitations: For the General Case
27© Software Competence Center Hagenberg GmbH
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
Implementation limited in several ways
Bindings are only statically resolved
No 100% language coverage for C++
Pointer arithmetic not supported
Missing input values yield incomplete results
Interpreted model execution vs. real program execution
Extraction of formulae is limited (partly on purpose)
Scalability of big picture representation
Limited
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
28© Software Competence Center Hagenberg GmbH
Take Aways / Summary Characterization of
computational models in
process control software
Integration of static and
dynamic program analysis
Documentation generation for a
real world process model
Dynamic analysis creates more
compact and understandable
documentation
Integration of Static and Dynamic Analysis for Understanding Legacy Source Code
Thanks and Discussion
Michael Moser
Software Analytics and Evolution
Software Competence Center Hagenberg, Austria
michael.moser@scch.at
29© Software Competence Center Hagenberg GmbH

More Related Content

What's hot (17)

Managing large (and small) R based solutions with R Suite
Managing large (and small) R based solutions with R SuiteManaging large (and small) R based solutions with R Suite
Managing large (and small) R based solutions with R Suite
Wit Jakuczun
 
Analytic hierarchy process for pif thomas fehlmann
Analytic hierarchy process for pif   thomas fehlmannAnalytic hierarchy process for pif   thomas fehlmann
Analytic hierarchy process for pif thomas fehlmann
IWSM Mensura
 
Case Studies in advanced analytics with R
Case Studies in advanced analytics with RCase Studies in advanced analytics with R
Case Studies in advanced analytics with R
Wit Jakuczun
 
Adoption of a Graph Database in the Insurance Sector - Jan-Frederik Wilhelm &...
Adoption of a Graph Database in the Insurance Sector - Jan-Frederik Wilhelm &...Adoption of a Graph Database in the Insurance Sector - Jan-Frederik Wilhelm &...
Adoption of a Graph Database in the Insurance Sector - Jan-Frederik Wilhelm &...
Neo4j
 
Showcase slide
Showcase slideShowcase slide
Showcase slide
Victor Mitov
 
Power Meter Presentation
Power Meter PresentationPower Meter Presentation
Power Meter Presentation
Antonio Mondragon
 
Impact Analysis using Graph DB
Impact Analysis using Graph DBImpact Analysis using Graph DB
Impact Analysis using Graph DB
Ignaz Wanders
 
3D PDF Implementor Forum - Validation with CADIQ
3D PDF Implementor Forum - Validation with CADIQ3D PDF Implementor Forum - Validation with CADIQ
3D PDF Implementor Forum - Validation with CADIQ
3dpdfconsortium
 
Ac2017 6. output based contracting
Ac2017   6. output based contractingAc2017   6. output based contracting
Ac2017 6. output based contracting
Nesma
 
Ac2017 8. metrics forprivacysafety-slides
Ac2017   8. metrics forprivacysafety-slidesAc2017   8. metrics forprivacysafety-slides
Ac2017 8. metrics forprivacysafety-slides
Nesma
 
Do-It-Yourself ENOVIA PLM MIgration
Do-It-Yourself ENOVIA PLM MIgrationDo-It-Yourself ENOVIA PLM MIgration
Do-It-Yourself ENOVIA PLM MIgration
Joseph Lopez, M.ISM
 
Complex cloudification: Porting bare metal apps to telco cloud vnf
Complex cloudification: Porting bare metal apps to telco cloud vnfComplex cloudification: Porting bare metal apps to telco cloud vnf
Complex cloudification: Porting bare metal apps to telco cloud vnf
Computaris
 
Introduction to Adaptive and 3DEXPERIENCE Cloud
Introduction to Adaptive and 3DEXPERIENCE CloudIntroduction to Adaptive and 3DEXPERIENCE Cloud
Introduction to Adaptive and 3DEXPERIENCE Cloud
Adaptive Corporation
 
RuaumokoSuite
RuaumokoSuiteRuaumokoSuite
RuaumokoSuite
Athol Carr
 
Project design considerations for integration of oem skid equipment with plan...
Project design considerations for integration of oem skid equipment with plan...Project design considerations for integration of oem skid equipment with plan...
Project design considerations for integration of oem skid equipment with plan...
IntelligentManufacturingInstitute
 
PCB Virtual Prototyping with PSpice
PCB Virtual Prototyping with PSpicePCB Virtual Prototyping with PSpice
PCB Virtual Prototyping with PSpice
EMA Design Automation
 
Q-ImPrESS
Q-ImPrESSQ-ImPrESS
Q-ImPrESS
Heiko Koziolek
 
Managing large (and small) R based solutions with R Suite
Managing large (and small) R based solutions with R SuiteManaging large (and small) R based solutions with R Suite
Managing large (and small) R based solutions with R Suite
Wit Jakuczun
 
Analytic hierarchy process for pif thomas fehlmann
Analytic hierarchy process for pif   thomas fehlmannAnalytic hierarchy process for pif   thomas fehlmann
Analytic hierarchy process for pif thomas fehlmann
IWSM Mensura
 
Case Studies in advanced analytics with R
Case Studies in advanced analytics with RCase Studies in advanced analytics with R
Case Studies in advanced analytics with R
Wit Jakuczun
 
Adoption of a Graph Database in the Insurance Sector - Jan-Frederik Wilhelm &...
Adoption of a Graph Database in the Insurance Sector - Jan-Frederik Wilhelm &...Adoption of a Graph Database in the Insurance Sector - Jan-Frederik Wilhelm &...
Adoption of a Graph Database in the Insurance Sector - Jan-Frederik Wilhelm &...
Neo4j
 
Impact Analysis using Graph DB
Impact Analysis using Graph DBImpact Analysis using Graph DB
Impact Analysis using Graph DB
Ignaz Wanders
 
3D PDF Implementor Forum - Validation with CADIQ
3D PDF Implementor Forum - Validation with CADIQ3D PDF Implementor Forum - Validation with CADIQ
3D PDF Implementor Forum - Validation with CADIQ
3dpdfconsortium
 
Ac2017 6. output based contracting
Ac2017   6. output based contractingAc2017   6. output based contracting
Ac2017 6. output based contracting
Nesma
 
Ac2017 8. metrics forprivacysafety-slides
Ac2017   8. metrics forprivacysafety-slidesAc2017   8. metrics forprivacysafety-slides
Ac2017 8. metrics forprivacysafety-slides
Nesma
 
Do-It-Yourself ENOVIA PLM MIgration
Do-It-Yourself ENOVIA PLM MIgrationDo-It-Yourself ENOVIA PLM MIgration
Do-It-Yourself ENOVIA PLM MIgration
Joseph Lopez, M.ISM
 
Complex cloudification: Porting bare metal apps to telco cloud vnf
Complex cloudification: Porting bare metal apps to telco cloud vnfComplex cloudification: Porting bare metal apps to telco cloud vnf
Complex cloudification: Porting bare metal apps to telco cloud vnf
Computaris
 
Introduction to Adaptive and 3DEXPERIENCE Cloud
Introduction to Adaptive and 3DEXPERIENCE CloudIntroduction to Adaptive and 3DEXPERIENCE Cloud
Introduction to Adaptive and 3DEXPERIENCE Cloud
Adaptive Corporation
 
Project design considerations for integration of oem skid equipment with plan...
Project design considerations for integration of oem skid equipment with plan...Project design considerations for integration of oem skid equipment with plan...
Project design considerations for integration of oem skid equipment with plan...
IntelligentManufacturingInstitute
 

Similar to Integration of static and dynamic analysis for understanding legacy source code (20)

No liftoff, touchdown, or heartbeat shall miss because of a software failure
No liftoff, touchdown, or heartbeat shall miss because of a software failureNo liftoff, touchdown, or heartbeat shall miss because of a software failure
No liftoff, touchdown, or heartbeat shall miss because of a software failure
Rogue Wave Software
 
Know Your Analysis: How Instrumentation Aids Static Analysis
Know Your Analysis: How Instrumentation Aids Static AnalysisKnow Your Analysis: How Instrumentation Aids Static Analysis
Know Your Analysis: How Instrumentation Aids Static Analysis
Ben Hermann
 
Does static analysis need machine learning?
Does static analysis need machine learning?Does static analysis need machine learning?
Does static analysis need machine learning?
Andrey Karpov
 
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Parasoft .TEST, Write better C# Code Using  Data Flow Analysis Parasoft .TEST, Write better C# Code Using  Data Flow Analysis
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Engineering Software Lab
 
Static analysis works for mission-critical systems, why not yours?
Static analysis works for mission-critical systems, why not yours? Static analysis works for mission-critical systems, why not yours?
Static analysis works for mission-critical systems, why not yours?
Rogue Wave Software
 
Online performance modeling and analysis of message-passing parallel applicat...
Online performance modeling and analysis of message-passing parallel applicat...Online performance modeling and analysis of message-passing parallel applicat...
Online performance modeling and analysis of message-passing parallel applicat...
MOCA Platform
 
Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...
Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...
Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...
StHack
 
St hack2015 dynamic_behavior_analysis_using_binary_instrumentation_jonathan_s...
St hack2015 dynamic_behavior_analysis_using_binary_instrumentation_jonathan_s...St hack2015 dynamic_behavior_analysis_using_binary_instrumentation_jonathan_s...
St hack2015 dynamic_behavior_analysis_using_binary_instrumentation_jonathan_s...
Jonathan Salwan
 
Software engineering
Software engineeringSoftware engineering
Software engineering
GuruAbirami2
 
Software Analytics: Data Analytics for Software Engineering
Software Analytics: Data Analytics for Software EngineeringSoftware Analytics: Data Analytics for Software Engineering
Software Analytics: Data Analytics for Software Engineering
Tao Xie
 
Dataflow Analysis
Dataflow AnalysisDataflow Analysis
Dataflow Analysis
Eelco Visser
 
Performancepredictionforsoftwarearchitectures 100810045752-phpapp02
Performancepredictionforsoftwarearchitectures 100810045752-phpapp02Performancepredictionforsoftwarearchitectures 100810045752-phpapp02
Performancepredictionforsoftwarearchitectures 100810045752-phpapp02
NNfamily
 
Performance prediction for software architectures
Performance prediction for software architecturesPerformance prediction for software architectures
Performance prediction for software architectures
Mr. Chanuwan
 
Icsm05.ppt
Icsm05.pptIcsm05.ppt
Icsm05.ppt
Yann-Gaël Guéhéneuc
 
Process model rup
Process model rupProcess model rup
Process model rup
Aryan Ajmer
 
Real time and distributed design
Real time and distributed designReal time and distributed design
Real time and distributed design
priyapavi96
 
Mi0033 software engineering...
Mi0033  software engineering...Mi0033  software engineering...
Mi0033 software engineering...
smumbahelp
 
Callgraph analysis
Callgraph analysisCallgraph analysis
Callgraph analysis
Roberto Agostino Vitillo
 
Software_Validation_and_Verification-Static_techniques-.ppt
Software_Validation_and_Verification-Static_techniques-.pptSoftware_Validation_and_Verification-Static_techniques-.ppt
Software_Validation_and_Verification-Static_techniques-.ppt
HeBa852419
 
Software Process Models
 Software Process Models  Software Process Models
Software Process Models
MohsinAli773
 
No liftoff, touchdown, or heartbeat shall miss because of a software failure
No liftoff, touchdown, or heartbeat shall miss because of a software failureNo liftoff, touchdown, or heartbeat shall miss because of a software failure
No liftoff, touchdown, or heartbeat shall miss because of a software failure
Rogue Wave Software
 
Know Your Analysis: How Instrumentation Aids Static Analysis
Know Your Analysis: How Instrumentation Aids Static AnalysisKnow Your Analysis: How Instrumentation Aids Static Analysis
Know Your Analysis: How Instrumentation Aids Static Analysis
Ben Hermann
 
Does static analysis need machine learning?
Does static analysis need machine learning?Does static analysis need machine learning?
Does static analysis need machine learning?
Andrey Karpov
 
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Parasoft .TEST, Write better C# Code Using  Data Flow Analysis Parasoft .TEST, Write better C# Code Using  Data Flow Analysis
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Engineering Software Lab
 
Static analysis works for mission-critical systems, why not yours?
Static analysis works for mission-critical systems, why not yours? Static analysis works for mission-critical systems, why not yours?
Static analysis works for mission-critical systems, why not yours?
Rogue Wave Software
 
Online performance modeling and analysis of message-passing parallel applicat...
Online performance modeling and analysis of message-passing parallel applicat...Online performance modeling and analysis of message-passing parallel applicat...
Online performance modeling and analysis of message-passing parallel applicat...
MOCA Platform
 
Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...
Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...
Sthack 2015 - Jonathan "@JonathanSalwan" Salwan - Dynamic Behavior Analysis U...
StHack
 
St hack2015 dynamic_behavior_analysis_using_binary_instrumentation_jonathan_s...
St hack2015 dynamic_behavior_analysis_using_binary_instrumentation_jonathan_s...St hack2015 dynamic_behavior_analysis_using_binary_instrumentation_jonathan_s...
St hack2015 dynamic_behavior_analysis_using_binary_instrumentation_jonathan_s...
Jonathan Salwan
 
Software engineering
Software engineeringSoftware engineering
Software engineering
GuruAbirami2
 
Software Analytics: Data Analytics for Software Engineering
Software Analytics: Data Analytics for Software EngineeringSoftware Analytics: Data Analytics for Software Engineering
Software Analytics: Data Analytics for Software Engineering
Tao Xie
 
Performancepredictionforsoftwarearchitectures 100810045752-phpapp02
Performancepredictionforsoftwarearchitectures 100810045752-phpapp02Performancepredictionforsoftwarearchitectures 100810045752-phpapp02
Performancepredictionforsoftwarearchitectures 100810045752-phpapp02
NNfamily
 
Performance prediction for software architectures
Performance prediction for software architecturesPerformance prediction for software architectures
Performance prediction for software architectures
Mr. Chanuwan
 
Process model rup
Process model rupProcess model rup
Process model rup
Aryan Ajmer
 
Real time and distributed design
Real time and distributed designReal time and distributed design
Real time and distributed design
priyapavi96
 
Mi0033 software engineering...
Mi0033  software engineering...Mi0033  software engineering...
Mi0033 software engineering...
smumbahelp
 
Software_Validation_and_Verification-Static_techniques-.ppt
Software_Validation_and_Verification-Static_techniques-.pptSoftware_Validation_and_Verification-Static_techniques-.ppt
Software_Validation_and_Verification-Static_techniques-.ppt
HeBa852419
 
Software Process Models
 Software Process Models  Software Process Models
Software Process Models
MohsinAli773
 
Ad

Recently uploaded (20)

Techdebt handling with cleancode focus and as risk taker
Techdebt handling with cleancode focus and as risk takerTechdebt handling with cleancode focus and as risk taker
Techdebt handling with cleancode focus and as risk taker
RajaNagendraKumar
 
Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...
Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...
Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...
Prachi Desai
 
Rebuilding Cadabra Studio: AI as Our Core Foundation
Rebuilding Cadabra Studio: AI as Our Core FoundationRebuilding Cadabra Studio: AI as Our Core Foundation
Rebuilding Cadabra Studio: AI as Our Core Foundation
Cadabra Studio
 
Topic 26 Security Testing Considerations.pptx
Topic 26 Security Testing Considerations.pptxTopic 26 Security Testing Considerations.pptx
Topic 26 Security Testing Considerations.pptx
marutnand8
 
Secure and Simplify IT Management with ManageEngine Endpoint Central.pdf
Secure and Simplify IT Management with ManageEngine Endpoint Central.pdfSecure and Simplify IT Management with ManageEngine Endpoint Central.pdf
Secure and Simplify IT Management with ManageEngine Endpoint Central.pdf
Northwind Technologies
 
How AI Can Improve Media Quality Testing Across Platforms (1).pptx
How AI Can Improve Media Quality Testing Across Platforms (1).pptxHow AI Can Improve Media Quality Testing Across Platforms (1).pptx
How AI Can Improve Media Quality Testing Across Platforms (1).pptx
kalichargn70th171
 
How a Staff Augmentation Company IN USA Powers Flutter App Breakthroughs.pdf
How a Staff Augmentation Company IN USA Powers Flutter App Breakthroughs.pdfHow a Staff Augmentation Company IN USA Powers Flutter App Breakthroughs.pdf
How a Staff Augmentation Company IN USA Powers Flutter App Breakthroughs.pdf
mary rojas
 
War Story: Removing Offensive Language from Percona Toolkit
War Story: Removing Offensive Language from Percona ToolkitWar Story: Removing Offensive Language from Percona Toolkit
War Story: Removing Offensive Language from Percona Toolkit
Sveta Smirnova
 
aswjkdwelhjdfshlfjkhewljhfljawerhwjarhwjkahrjar
aswjkdwelhjdfshlfjkhewljhfljawerhwjarhwjkahrjaraswjkdwelhjdfshlfjkhewljhfljawerhwjarhwjkahrjar
aswjkdwelhjdfshlfjkhewljhfljawerhwjarhwjkahrjar
muhammadalikhanalikh1
 
Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...
Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...
Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...
officeiqai
 
Optimising Claims Management with Claims Processing Systems
Optimising Claims Management with Claims Processing SystemsOptimising Claims Management with Claims Processing Systems
Optimising Claims Management with Claims Processing Systems
Insurance Tech Services
 
Boost Student Engagement with Smart Attendance Software for Schools
Boost Student Engagement with Smart Attendance Software for SchoolsBoost Student Engagement with Smart Attendance Software for Schools
Boost Student Engagement with Smart Attendance Software for Schools
Visitu
 
zOS CommServer support for the Network Express feature on z17
zOS CommServer support for the Network Express feature on z17zOS CommServer support for the Network Express feature on z17
zOS CommServer support for the Network Express feature on z17
zOSCommserver
 
Internship in South western railways on software
Internship in South western railways on softwareInternship in South western railways on software
Internship in South western railways on software
abhim5889
 
Top 10 Mobile Banking Apps in the USA.pdf
Top 10 Mobile Banking Apps in the USA.pdfTop 10 Mobile Banking Apps in the USA.pdf
Top 10 Mobile Banking Apps in the USA.pdf
LL Technolab
 
Risk Management in Software Projects: Identifying, Analyzing, and Controlling...
Risk Management in Software Projects: Identifying, Analyzing, and Controlling...Risk Management in Software Projects: Identifying, Analyzing, and Controlling...
Risk Management in Software Projects: Identifying, Analyzing, and Controlling...
gauravvmanchandaa200
 
How to purchase, license and subscribe to Microsoft Azure_PDF.pdf
How to purchase, license and subscribe to Microsoft Azure_PDF.pdfHow to purchase, license and subscribe to Microsoft Azure_PDF.pdf
How to purchase, license and subscribe to Microsoft Azure_PDF.pdf
victordsane
 
Facility Management Solution - TeroTAM CMMS Software
Facility Management Solution - TeroTAM CMMS SoftwareFacility Management Solution - TeroTAM CMMS Software
Facility Management Solution - TeroTAM CMMS Software
TeroTAM
 
Custom Software Development: Types, Applications and Benefits.pdf
Custom Software Development: Types, Applications and Benefits.pdfCustom Software Development: Types, Applications and Benefits.pdf
Custom Software Development: Types, Applications and Benefits.pdf
Digital Aptech
 
Intranet Examples That Are Changing the Way We Work
Intranet Examples That Are Changing the Way We WorkIntranet Examples That Are Changing the Way We Work
Intranet Examples That Are Changing the Way We Work
BizPortals Solutions
 
Techdebt handling with cleancode focus and as risk taker
Techdebt handling with cleancode focus and as risk takerTechdebt handling with cleancode focus and as risk taker
Techdebt handling with cleancode focus and as risk taker
RajaNagendraKumar
 
Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...
Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...
Why Indonesia’s $12.63B Alt-Lending Boom Needs Loan Servicing Automation & Re...
Prachi Desai
 
Rebuilding Cadabra Studio: AI as Our Core Foundation
Rebuilding Cadabra Studio: AI as Our Core FoundationRebuilding Cadabra Studio: AI as Our Core Foundation
Rebuilding Cadabra Studio: AI as Our Core Foundation
Cadabra Studio
 
Topic 26 Security Testing Considerations.pptx
Topic 26 Security Testing Considerations.pptxTopic 26 Security Testing Considerations.pptx
Topic 26 Security Testing Considerations.pptx
marutnand8
 
Secure and Simplify IT Management with ManageEngine Endpoint Central.pdf
Secure and Simplify IT Management with ManageEngine Endpoint Central.pdfSecure and Simplify IT Management with ManageEngine Endpoint Central.pdf
Secure and Simplify IT Management with ManageEngine Endpoint Central.pdf
Northwind Technologies
 
How AI Can Improve Media Quality Testing Across Platforms (1).pptx
How AI Can Improve Media Quality Testing Across Platforms (1).pptxHow AI Can Improve Media Quality Testing Across Platforms (1).pptx
How AI Can Improve Media Quality Testing Across Platforms (1).pptx
kalichargn70th171
 
How a Staff Augmentation Company IN USA Powers Flutter App Breakthroughs.pdf
How a Staff Augmentation Company IN USA Powers Flutter App Breakthroughs.pdfHow a Staff Augmentation Company IN USA Powers Flutter App Breakthroughs.pdf
How a Staff Augmentation Company IN USA Powers Flutter App Breakthroughs.pdf
mary rojas
 
War Story: Removing Offensive Language from Percona Toolkit
War Story: Removing Offensive Language from Percona ToolkitWar Story: Removing Offensive Language from Percona Toolkit
War Story: Removing Offensive Language from Percona Toolkit
Sveta Smirnova
 
aswjkdwelhjdfshlfjkhewljhfljawerhwjarhwjkahrjar
aswjkdwelhjdfshlfjkhewljhfljawerhwjarhwjkahrjaraswjkdwelhjdfshlfjkhewljhfljawerhwjarhwjkahrjar
aswjkdwelhjdfshlfjkhewljhfljawerhwjarhwjkahrjar
muhammadalikhanalikh1
 
Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...
Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...
Feeling Lost in the Blue? Exploring a New Path: AI Mental Health Counselling ...
officeiqai
 
Optimising Claims Management with Claims Processing Systems
Optimising Claims Management with Claims Processing SystemsOptimising Claims Management with Claims Processing Systems
Optimising Claims Management with Claims Processing Systems
Insurance Tech Services
 
Boost Student Engagement with Smart Attendance Software for Schools
Boost Student Engagement with Smart Attendance Software for SchoolsBoost Student Engagement with Smart Attendance Software for Schools
Boost Student Engagement with Smart Attendance Software for Schools
Visitu
 
zOS CommServer support for the Network Express feature on z17
zOS CommServer support for the Network Express feature on z17zOS CommServer support for the Network Express feature on z17
zOS CommServer support for the Network Express feature on z17
zOSCommserver
 
Internship in South western railways on software
Internship in South western railways on softwareInternship in South western railways on software
Internship in South western railways on software
abhim5889
 
Top 10 Mobile Banking Apps in the USA.pdf
Top 10 Mobile Banking Apps in the USA.pdfTop 10 Mobile Banking Apps in the USA.pdf
Top 10 Mobile Banking Apps in the USA.pdf
LL Technolab
 
Risk Management in Software Projects: Identifying, Analyzing, and Controlling...
Risk Management in Software Projects: Identifying, Analyzing, and Controlling...Risk Management in Software Projects: Identifying, Analyzing, and Controlling...
Risk Management in Software Projects: Identifying, Analyzing, and Controlling...
gauravvmanchandaa200
 
How to purchase, license and subscribe to Microsoft Azure_PDF.pdf
How to purchase, license and subscribe to Microsoft Azure_PDF.pdfHow to purchase, license and subscribe to Microsoft Azure_PDF.pdf
How to purchase, license and subscribe to Microsoft Azure_PDF.pdf
victordsane
 
Facility Management Solution - TeroTAM CMMS Software
Facility Management Solution - TeroTAM CMMS SoftwareFacility Management Solution - TeroTAM CMMS Software
Facility Management Solution - TeroTAM CMMS Software
TeroTAM
 
Custom Software Development: Types, Applications and Benefits.pdf
Custom Software Development: Types, Applications and Benefits.pdfCustom Software Development: Types, Applications and Benefits.pdf
Custom Software Development: Types, Applications and Benefits.pdf
Digital Aptech
 
Intranet Examples That Are Changing the Way We Work
Intranet Examples That Are Changing the Way We WorkIntranet Examples That Are Changing the Way We Work
Intranet Examples That Are Changing the Way We Work
BizPortals Solutions
 
Ad

Integration of static and dynamic analysis for understanding legacy source code

  • 1. SCCH is an initiative of SCCH is located in Integration of Static and Dynamic Analysis for Understanding Legacy Source Code Michael Moser +43 7236 3343 814 [email protected] www.scch.at ICSME’16, Industry Track, 06.10.2016
  • 2. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code An Industry Collaboration 2© Software Competence Center Hagenberg GmbH Michael Moser [email protected] Pichler Josef [email protected] Wilhelm Kirchmayr [email protected] Ludwig Nocke [email protected] Rudolf Tober [email protected]
  • 3. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code 3© Software Competence Center Hagenberg GmbH Background: Mr. Kaufmann’s Process Models Mr. Kaufmann (Process Engineer)
  • 4. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code 4© Software Competence Center Hagenberg GmbH Background: Mr. Kaufmann’s Process Models Mr. Kaufmann (Process Engineer)
  • 5. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code 5© Software Competence Center Hagenberg GmbH Background: Mr. Kaufmann’s Process Models Mr. Kaufmann (Process Engineer) controlled by
  • 6. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code 6© Software Competence Center Hagenberg GmbH Background: Mr. Kaufmann’s Process Models Mr. Kaufmann (Process Engineer) controlled by feedback from
  • 7. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code 7© Software Competence Center Hagenberg GmbH Integration of Static and Dynamic Analysis for Understanding Legacy Source Code C++, 5600 LoC Core Model created by 3rd party company 20 model outputs from 22 inputs Evolved in a multi-shell model Background: Mr. Kaufmann’s Process Models DeMo - Process model for desulphurization Influence of input values not documented Mr. Kaufmann
  • 8. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code 8© Software Competence Center Hagenberg GmbH Mr. Kaufmann (retired) Background: Mr. Kaufmann’s Process Models Mr. Bauer / Mr. Huber (Process Engineers)
  • 9. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code 9© Software Competence Center Hagenberg GmbH Background: Mr. Kaufmann’s Process Models Questions ??? What is the formula for a model result? Which input values affect which result? What are all results of a process model? Mr. Kaufmann (retired) Mr. Bauer / Mr. Huber (Process Engineers)
  • 10. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code Starting Point: Requirements and Goals 10© Software Competence Center Hagenberg GmbH Integration of Static and Dynamic Analysis for Understanding Legacy Source Code Documentation requested! Simplify maintenance and optimization Grant quick overview of the system Capture dependencies between inputs and outputs Flexible clipping of model source code Reflect the hierarchical structure Offline documentation
  • 11. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code use of dynamic analysis Examine program execution Do not fully capture behavior Needed: Model Interpretation Include values from model execution Merge with results from static analysis Starting Point: Overall Approach 11 use of static analysis Analyze entire program sources Extract abstract representations Application of RbG* to extract Mathematical formulae Decision tables / path conditions Essential program structures Needed: Stepwise Computation from a model input to its outputs Out1 Var1 In1 Var2 In2 Out1 Var1 In1 Var2 In2 input values *M. Moser and J. Pichler: RbG: A Documentation Generator for Scientific and Engineering Software, (SANER 2015)
  • 12. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code Example: A process model 12© Software Competence Center Hagenberg GmbH Calling Context typedef struct { double snow_density; } output; typedef struct { double snow_height; double gamma_rho_S; bool useFudgeFactor; } input;
  • 13. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code Example: A process model 13© Software Competence Center Hagenberg GmbH Pre processing of input in outer shell
  • 14. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code Example: A process model 14© Software Competence Center Hagenberg GmbH Execution of core computational model
  • 15. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code Example: A process model 15© Software Competence Center Hagenberg GmbH Post processing of result data
  • 16. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code Results for Example: Stepwise Computation Symbol Formula Path Condition Input
  • 17. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code Results for Example: Stepwise Computation Symbol Formula Path Condition Input One table for each result One row for each computation that may influence result Variables used within definitions are repeatedly resolved Variable names may be replaced with symbol info
  • 18. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code 18© Software Competence Center Hagenberg GmbH Integration of Static and Dynamic Analysis for Understanding Legacy Source Code Results for Example: Model Execution Symbol Formula Value Path Condition Input
  • 19. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code 19© Software Competence Center Hagenberg GmbH Integration of Static and Dynamic Analysis for Understanding Legacy Source Code Results for Example: Model Execution Symbol Formula Value Path Condition Input Results from model execution merged with static tables Model execution with concrete input values Unexecuted rows are hidden
  • 20. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code 20© Software Competence Center Hagenberg GmbH Results for Example: Model Execution Symbol Formula Value Path Condition Input Results from model execution merged with static tables Model execution with concrete input values Unexecuted rows can be displayed
  • 21. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code Results for Example: Big Picture 21© Software Competence Center Hagenberg GmbH
  • 22. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code Results for Example: Big Picture 22© Software Competence Center Hagenberg GmbH Fits on a sheet of paper C++ methods and functions Ordered call relations Sub model clustering Database access Side-by-side with code Packaged with documentation
  • 23. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code dynamic analysis model execution program interpretation flow-sensitive analysis inter-procedural control-flow-graph Specification of concrete values Merge with stepwise computation Analysis: A little more details 23© Software Competence Center Hagenberg GmbH static analysis stepwise computation Construction of use-definition chains Inter-procedural control-flow-graph Forward propagation of definitions Use-Definition chains per model output “Entry-Point” Aware big picture Call-graph analysis Pattern-matching Out1 Var1 In1 Var2 In2 Out1 Var1 In1 Var2 In2 input values
  • 24. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code Results: Tool Support for Documentation Generation 24© Software Competence Center Hagenberg GmbH
  • 25. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code Results: Lessons Learned from DeMo Process Model 25© Software Competence Center Hagenberg GmbH
  • 26. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code Results: Lessons Learned from DeMo Process Model 26© Software Competence Center Hagenberg GmbH domain experts provided model outputs and model inputs 2 entry point definitions (F1, F2) 3 sets of input values core entry point (F2) 21 outputs, 22 inputs significant drop of rows reduction 78% - 98%
  • 27. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code Limitations: For the General Case 27© Software Competence Center Hagenberg GmbH Integration of Static and Dynamic Analysis for Understanding Legacy Source Code Implementation limited in several ways Bindings are only statically resolved No 100% language coverage for C++ Pointer arithmetic not supported Missing input values yield incomplete results Interpreted model execution vs. real program execution Extraction of formulae is limited (partly on purpose) Scalability of big picture representation Limited
  • 28. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code 28© Software Competence Center Hagenberg GmbH Take Aways / Summary Characterization of computational models in process control software Integration of static and dynamic program analysis Documentation generation for a real world process model Dynamic analysis creates more compact and understandable documentation
  • 29. Integration of Static and Dynamic Analysis for Understanding Legacy Source Code Thanks and Discussion Michael Moser Software Analytics and Evolution Software Competence Center Hagenberg, Austria [email protected] 29© Software Competence Center Hagenberg GmbH