SlideShare une entreprise Scribd logo
1  sur  23
fREX:
fUML-based Reverse Engineering
of Executable Behavior
for Software Dynamic Analysis
Alexander Bergmayr, Hugo Bruneliere,
Jordi Cabot, Jokin Garcia,
Tanja Mayerhofer and Manuel Wimmer
MiSE’16 (co-located with ICSE 2016)
@ Austin, Texas, U.S.A.
Tuesday 17th of May 2016
Motivation & Context
http://www.artist-project.eu/
2
Motivation & Context
http://www.artist-project.eu/
3
Key Challenges
● Analyzing dynamic
aspects of software
o Reverse Engineering
process...
● Various languages &
platforms used
o Cost of specific analysis
techniques…
4
Key Requirements
● Genericity / Reusability
o Potential multiple sources
(e.g. Java, C#, etc.)
● Extensibility
o New languages  pivot
o Combination of them
● Non-intrusiveness
o No source code
instrumentation
5
fREX – Contributions
● Open and extensible framework for
o Automated generation of fUML models
o Execution of fUML models (fUML VM…)
● Initial base mapping between Java and
fUML languages
o Focus on behavioral aspects of Java
o Focus on a subset of Java (MiniJava)
6
fREX – Overall Framework
Java
code
Code-level
Model-level
Model / code artifacts Tools
Legend
7
fREX – Overall Framework
Java
code
Java
model
Java Model
Discoverer
Code-level
Model-level
Model / code artifacts Tools
translated into
Legend
8
fREX – Overall Framework
Java
code
Java
model
fUML
model
Java Model
Discoverer
Java2fUML
Transformer
Code-level
Model-level
Model / code artifacts Tools
translated into
translated into
Legend
9
fREX – Overall Framework
Java
code
Java
model
Extended
fUML VM
fUML
model
Runtime
model
Java Model
Discoverer
Java2fUML
Transformer
executes
produces
refers to
Code-level
Model-level
Model / code artifacts Tools
translated into
translated into
Legend
10
fREX – Overall Framework
defined forJava
code
Java
model
Extended
fUML VM
fUML
model
Runtime
model
Test
Cases
Java Model
Discoverer
Java2fUML
Transformer
executes
produces
refers to proves assertions against
invokes
Code-level
Model-level
Model / code artifacts Tools
translated into
translated into
Legend
11
fREX – Overall Framework
defined forJava
code
Java
model
Extended
fUML VM
fUML
model
Runtime
model
Test
Cases
Java Model
Discoverer
Java2fUML
Transformer
executes
produces
refers to proves assertions against
invokes
Model-based
Analyzer
exploits
Code-level
Model-level
exploits
Model / code artifacts Tools
translated into
translated into
Legend
12
fREX – Java-to-fUML Example
13
fREX – Java-to-fUML Example
14
fREX – Java-to-fUML Example
15
fREX – Java-to-fUML Example
16
fREX – Java-to-fUML Mapping (1/3)
Java concept fUML concept
MethodDeclaration md Add Activity a
a.name = md.name
…
ReturnType rt Add ActivityParameterNode rapn
rapn.name = "return“
rapn.type = rt.type
…
FormalParameter fp Add ActivityParameterNode fapn
fapn.name = fp.name
fapn.type = fp.type
…
Block b Add InitialNode in, FinalNode fn,
StructuredActivityNode san
…
17
fREX – Java-to-fUML Mapping (2/3)
Java concept fUML concept
VariableDeclaration vd,
ClassInstanceCreation
cic
Add CreateObjectAction createOA
createOA.name = vd.type.name
createOA.classifier = vd.type
Add OutputPin op, ObjectFlow of,
ForkNode fn,
of.source = op, of.target = fn
MethodInvocation mi Add CallOperationAction callOA
callOA.name = mi.method.name
callOA.operation = mi.method
Add InputPin ip, ObjectFlow of -- target
Add InputPin ip, ObjectFlow of foreach
FormalParameter fp in mi.method
Add OutputPin op for ReturnType rt
in mi.method
18
fREX – Java-to-fUML Mapping (3/3)
Java concept fUML concept
Assignment a
switch
(a.leftHandSide)
case
ArrayAccess
Add AddStructuralFeatureValueAction
asfva
asfva.name = -- cf. left hand side
asfva.structuralFeature = -- cf. left hand
side
Add InputPin ip, ObjectFlow of for
a.leftHandSide
Add InputPin ip, ObjectFlow of for
a.rightHandSide
ThisExpression Add ReadSelfAction rsa
rsa.name = "this"
Add OutputPin op
19
fREX – Eclipse-based tooling
● https://www.youtube.com/watch?v=Z-X_tNlwLtA
20
Application Scenarios
● Model Refinement
o Via model transformation(s)
o E.g. using fUML VM traces
● Model Slicing
o More specific fUML models
o Impact on other (UML) models
● View Generation
o Relation with other DSLs
o Various model views
21
Conclusion / Future Work
● Reuse of existing model-
based techniques
o Scalability?
● Possible next steps
o Full Java-to-fUML
mapping...
o Other (OO) languages...
o Multiple programs...
22
Questions? Comments?
● https://github.com/atlanmod/fREX
● Contact persons:
o Alexander Bergmayr - bergmayr@big.tuwien.ac.at
o Hugo Bruneliere - hugo.bruneliere@inria.fr
23

Contenu connexe

Tendances

Storage Classes and Functions
Storage Classes and FunctionsStorage Classes and Functions
Storage Classes and Functions
Jake Bond
 
Polymorphism
PolymorphismPolymorphism
Polymorphism
Amir Ali
 

Tendances (20)

Storage class
Storage classStorage class
Storage class
 
Storage classes
Storage classesStorage classes
Storage classes
 
Storage classes
Storage classesStorage classes
Storage classes
 
Storage classes
Storage classesStorage classes
Storage classes
 
Introducing Parameter Sensitivity to Dynamic Code-Clone Analysis Methods
Introducing Parameter Sensitivity to Dynamic Code-Clone Analysis MethodsIntroducing Parameter Sensitivity to Dynamic Code-Clone Analysis Methods
Introducing Parameter Sensitivity to Dynamic Code-Clone Analysis Methods
 
STORAGE CLASSES
STORAGE CLASSESSTORAGE CLASSES
STORAGE CLASSES
 
Storage Class Specifiers in C++
Storage Class Specifiers in C++Storage Class Specifiers in C++
Storage Class Specifiers in C++
 
Storage Classes and Functions
Storage Classes and FunctionsStorage Classes and Functions
Storage Classes and Functions
 
5.program structure
5.program structure5.program structure
5.program structure
 
Storage classes in c language
Storage classes in c languageStorage classes in c language
Storage classes in c language
 
An Execution-Semantic and Content-and-Context-Based Code-Clone Detection and ...
An Execution-Semantic and Content-and-Context-Based Code-Clone Detection and ...An Execution-Semantic and Content-and-Context-Based Code-Clone Detection and ...
An Execution-Semantic and Content-and-Context-Based Code-Clone Detection and ...
 
Storage classess of C progamming
Storage classess of C progamming Storage classess of C progamming
Storage classess of C progamming
 
C++ concept of Polymorphism
C++ concept of  PolymorphismC++ concept of  Polymorphism
C++ concept of Polymorphism
 
Polymorphism
PolymorphismPolymorphism
Polymorphism
 
5.functions
5.functions5.functions
5.functions
 
[C++ korea] effective modern c++ study item 3 understand decltype +이동우
[C++ korea] effective modern c++ study   item 3 understand decltype +이동우[C++ korea] effective modern c++ study   item 3 understand decltype +이동우
[C++ korea] effective modern c++ study item 3 understand decltype +이동우
 
Functions in c
Functions in cFunctions in c
Functions in c
 
Some basic FP concepts
Some basic FP conceptsSome basic FP concepts
Some basic FP concepts
 
Pointers & functions
Pointers &  functionsPointers &  functions
Pointers & functions
 
Polymorphism and its types
Polymorphism and its typesPolymorphism and its types
Polymorphism and its types
 

En vedette

Virtual EMF - Standard talk at EclipseCon Europe 2011
Virtual EMF - Standard talk at EclipseCon Europe 2011Virtual EMF - Standard talk at EclipseCon Europe 2011
Virtual EMF - Standard talk at EclipseCon Europe 2011
Hugo Bruneliere
 

En vedette (13)

Virtual EMF - Standard talk at EclipseCon Europe 2011
Virtual EMF - Standard talk at EclipseCon Europe 2011Virtual EMF - Standard talk at EclipseCon Europe 2011
Virtual EMF - Standard talk at EclipseCon Europe 2011
 
AToMPM - Features
AToMPM - FeaturesAToMPM - Features
AToMPM - Features
 
AToMPM - Introductory Tutorial
AToMPM - Introductory TutorialAToMPM - Introductory Tutorial
AToMPM - Introductory Tutorial
 
On Lightweight Metamodel Extension to Support Modeling Tools Agility - ECMFA...
On Lightweight  Metamodel Extension to Support Modeling Tools Agility - ECMFA...On Lightweight  Metamodel Extension to Support Modeling Tools Agility - ECMFA...
On Lightweight Metamodel Extension to Support Modeling Tools Agility - ECMFA...
 
MoDisco & ATL - Eclipse DemoCamp Indigo 2011 in Nantes
MoDisco & ATL - Eclipse DemoCamp Indigo 2011 in NantesMoDisco & ATL - Eclipse DemoCamp Indigo 2011 in Nantes
MoDisco & ATL - Eclipse DemoCamp Indigo 2011 in Nantes
 
EMF Views: A View Mechanism for Integrating Heterogeneous Models - ER 2015 @ ...
EMF Views: A View Mechanism for Integrating Heterogeneous Models - ER 2015 @ ...EMF Views: A View Mechanism for Integrating Heterogeneous Models - ER 2015 @ ...
EMF Views: A View Mechanism for Integrating Heterogeneous Models - ER 2015 @ ...
 
Eclipse Modeling & MoDisco - An Introduction to Modeling and (Model Driven) R...
Eclipse Modeling & MoDisco - An Introduction to Modeling and (Model Driven) R...Eclipse Modeling & MoDisco - An Introduction to Modeling and (Model Driven) R...
Eclipse Modeling & MoDisco - An Introduction to Modeling and (Model Driven) R...
 
Introducing Eclipse MoDisco
Introducing Eclipse MoDiscoIntroducing Eclipse MoDisco
Introducing Eclipse MoDisco
 
UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases
UMLtoGraphDB: Mapping Conceptual Schemas to Graph DatabasesUMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases
UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases
 
keynote modelsward 2017
keynote modelsward 2017keynote modelsward 2017
keynote modelsward 2017
 
ARTIST Project general presentation
ARTIST Project general presentationARTIST Project general presentation
ARTIST Project general presentation
 
Programming in UML: An Introduction to fUML and Alf
Programming in UML: An Introduction to fUML and AlfProgramming in UML: An Introduction to fUML and Alf
Programming in UML: An Introduction to fUML and Alf
 
Model-based Analysis of Java EE Web Security Configurations - Mise 2016
Model-based Analysis of Java EE Web Security Configurations - Mise 2016Model-based Analysis of Java EE Web Security Configurations - Mise 2016
Model-based Analysis of Java EE Web Security Configurations - Mise 2016
 

Similaire à fREX: fUML-based Reverse Engineering of Executable Behavior for Software Dynamic Analysis - MiSE 2016 (ICSE 2016) @Austin, Texas, U.S.A.

Similaire à fREX: fUML-based Reverse Engineering of Executable Behavior for Software Dynamic Analysis - MiSE 2016 (ICSE 2016) @Austin, Texas, U.S.A. (20)

Delving (Smalltalk) Source Code
Delving (Smalltalk) Source CodeDelving (Smalltalk) Source Code
Delving (Smalltalk) Source Code
 
Matlab and Python: Basic Operations
Matlab and Python: Basic OperationsMatlab and Python: Basic Operations
Matlab and Python: Basic Operations
 
Reverse Engineering Feature Models From Software Variants to Build Software P...
Reverse Engineering Feature Models From Software Variants to Build Software P...Reverse Engineering Feature Models From Software Variants to Build Software P...
Reverse Engineering Feature Models From Software Variants to Build Software P...
 
PHP 5.3
PHP 5.3PHP 5.3
PHP 5.3
 
Evolution of Patterns
Evolution of PatternsEvolution of Patterns
Evolution of Patterns
 
A brief overview of java frameworks
A brief overview of java frameworksA brief overview of java frameworks
A brief overview of java frameworks
 
Advanced Reflection in Java
Advanced Reflection in JavaAdvanced Reflection in Java
Advanced Reflection in Java
 
Software development effort reduction with Co-op
Software development effort reduction with Co-opSoftware development effort reduction with Co-op
Software development effort reduction with Co-op
 
C# Summer course - Lecture 1
C# Summer course - Lecture 1C# Summer course - Lecture 1
C# Summer course - Lecture 1
 
Lect 1
Lect 1Lect 1
Lect 1
 
1. Mini seminar intro
1. Mini seminar intro1. Mini seminar intro
1. Mini seminar intro
 
Patterns in Python
Patterns in PythonPatterns in Python
Patterns in Python
 
An introduction to automated analysis of feature models through propositional...
An introduction to automated analysis of feature models through propositional...An introduction to automated analysis of feature models through propositional...
An introduction to automated analysis of feature models through propositional...
 
ExSchema
ExSchemaExSchema
ExSchema
 
Functions2.pdf
Functions2.pdfFunctions2.pdf
Functions2.pdf
 
TWINS: OOP and FP - Warburton
TWINS: OOP and FP - WarburtonTWINS: OOP and FP - Warburton
TWINS: OOP and FP - Warburton
 
STAMP
STAMPSTAMP
STAMP
 
Twins: Object Oriented Programming and Functional Programming
Twins: Object Oriented Programming and Functional ProgrammingTwins: Object Oriented Programming and Functional Programming
Twins: Object Oriented Programming and Functional Programming
 
Trivadis TechEvent 2016 Go - The Cloud Programming Language by Andija Sisko
Trivadis TechEvent 2016 Go - The Cloud Programming Language by Andija SiskoTrivadis TechEvent 2016 Go - The Cloud Programming Language by Andija Sisko
Trivadis TechEvent 2016 Go - The Cloud Programming Language by Andija Sisko
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
 

Plus de Hugo Bruneliere

Collaboro - EclipseCon France 2013 - Ignite Talks Session
Collaboro - EclipseCon France 2013 - Ignite Talks SessionCollaboro - EclipseCon France 2013 - Ignite Talks Session
Collaboro - EclipseCon France 2013 - Ignite Talks Session
Hugo Bruneliere
 
Collaboro - EclipseCon Europe 2012, Modeling Symposium
Collaboro - EclipseCon Europe 2012, Modeling SymposiumCollaboro - EclipseCon Europe 2012, Modeling Symposium
Collaboro - EclipseCon Europe 2012, Modeling Symposium
Hugo Bruneliere
 
Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...
Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...
Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...
Hugo Bruneliere
 
EMF Facet vs. EMF Profiles - EclipseCon North America 2012, Modeling Symposium
EMF Facet vs. EMF Profiles - EclipseCon North America 2012, Modeling SymposiumEMF Facet vs. EMF Profiles - EclipseCon North America 2012, Modeling Symposium
EMF Facet vs. EMF Profiles - EclipseCon North America 2012, Modeling Symposium
Hugo Bruneliere
 
Spy On Your Models, Standard talk at EclipseCon 2011
Spy On Your Models, Standard talk at EclipseCon 2011Spy On Your Models, Standard talk at EclipseCon 2011
Spy On Your Models, Standard talk at EclipseCon 2011
Hugo Bruneliere
 
Possible Benefits of Bridging Eclipse-EMF and Microsoft "Oslo", Long Talk at ...
Possible Benefits of Bridging Eclipse-EMF and Microsoft "Oslo", Long Talk at ...Possible Benefits of Bridging Eclipse-EMF and Microsoft "Oslo", Long Talk at ...
Possible Benefits of Bridging Eclipse-EMF and Microsoft "Oslo", Long Talk at ...
Hugo Bruneliere
 

Plus de Hugo Bruneliere (20)

Scalable Model Views over Heterogeneous Modeling Technologies and Resources -...
Scalable Model Views over Heterogeneous Modeling Technologies and Resources -...Scalable Model Views over Heterogeneous Modeling Technologies and Resources -...
Scalable Model Views over Heterogeneous Modeling Technologies and Resources -...
 
Model-driven Design-Runtime Interaction in Safety Critical System Development...
Model-driven Design-Runtime Interaction in Safety Critical System Development...Model-driven Design-Runtime Interaction in Safety Critical System Development...
Model-driven Design-Runtime Interaction in Safety Critical System Development...
 
A Model-based Framework for Continuous Development and Runtime Validation of...
A Model-based Framework for Continuous Development and Runtime Validation  of...A Model-based Framework for Continuous Development and Runtime Validation  of...
A Model-based Framework for Continuous Development and Runtime Validation of...
 
Model Driven Engineering for Design-Runtime Interaction in Complex Systems: S...
Model Driven Engineering for Design-Runtime Interaction in Complex Systems: S...Model Driven Engineering for Design-Runtime Interaction in Complex Systems: S...
Model Driven Engineering for Design-Runtime Interaction in Complex Systems: S...
 
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
 
Towards Scalable Model Views on Heterogeneous Model Resources - MODELS 2018 @...
Towards Scalable Model Views on Heterogeneous Model Resources - MODELS 2018 @...Towards Scalable Model Views on Heterogeneous Model Resources - MODELS 2018 @...
Towards Scalable Model Views on Heterogeneous Model Resources - MODELS 2018 @...
 
A Feature-based Survey of Model View Approaches (SOSYM 2018 Best Paper Award)...
A Feature-based Survey of Model View Approaches (SOSYM 2018 Best Paper Award)...A Feature-based Survey of Model View Approaches (SOSYM 2018 Best Paper Award)...
A Feature-based Survey of Model View Approaches (SOSYM 2018 Best Paper Award)...
 
Migrating Applications to the Cloud with Eclipse Technologies: Feedback from ...
Migrating Applications to the Cloud with Eclipse Technologies: Feedback from ...Migrating Applications to the Cloud with Eclipse Technologies: Feedback from ...
Migrating Applications to the Cloud with Eclipse Technologies: Feedback from ...
 
Developing Open Source MDE Tools / Eclipse Stories and Lessons Learned - OSS4...
Developing Open Source MDE Tools / Eclipse Stories and Lessons Learned - OSS4...Developing Open Source MDE Tools / Eclipse Stories and Lessons Learned - OSS4...
Developing Open Source MDE Tools / Eclipse Stories and Lessons Learned - OSS4...
 
Neo4EMF : big models made easier! @ EclipseCon France 2014 - Ignite Talks Ses...
Neo4EMF : big models made easier! @ EclipseCon France 2014 - Ignite Talks Ses...Neo4EMF : big models made easier! @ EclipseCon France 2014 - Ignite Talks Ses...
Neo4EMF : big models made easier! @ EclipseCon France 2014 - Ignite Talks Ses...
 
EMF Views - EclipseCon 2014, Modeling Symposium
EMF Views - EclipseCon 2014, Modeling SymposiumEMF Views - EclipseCon 2014, Modeling Symposium
EMF Views - EclipseCon 2014, Modeling Symposium
 
EMF-REST - EclipseCon Europe 2013, Modeling Symposium
EMF-REST - EclipseCon Europe 2013, Modeling SymposiumEMF-REST - EclipseCon Europe 2013, Modeling Symposium
EMF-REST - EclipseCon Europe 2013, Modeling Symposium
 
TEAP MDE Framework for Enterprise Architecture - AMINO 2013 @ MODELS 2013
TEAP MDE Framework for Enterprise Architecture - AMINO 2013 @ MODELS 2013TEAP MDE Framework for Enterprise Architecture - AMINO 2013 @ MODELS 2013
TEAP MDE Framework for Enterprise Architecture - AMINO 2013 @ MODELS 2013
 
Collaboro - EclipseCon France 2013 - Ignite Talks Session
Collaboro - EclipseCon France 2013 - Ignite Talks SessionCollaboro - EclipseCon France 2013 - Ignite Talks Session
Collaboro - EclipseCon France 2013 - Ignite Talks Session
 
Collaboro - EclipseCon Europe 2012, Modeling Symposium
Collaboro - EclipseCon Europe 2012, Modeling SymposiumCollaboro - EclipseCon Europe 2012, Modeling Symposium
Collaboro - EclipseCon Europe 2012, Modeling Symposium
 
Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...
Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...
Eclipse Labs for Improving DSL Development - Eclipse DemoCamp Juno 2012 in Na...
 
EMF Facet vs. EMF Profiles - EclipseCon North America 2012, Modeling Symposium
EMF Facet vs. EMF Profiles - EclipseCon North America 2012, Modeling SymposiumEMF Facet vs. EMF Profiles - EclipseCon North America 2012, Modeling Symposium
EMF Facet vs. EMF Profiles - EclipseCon North America 2012, Modeling Symposium
 
An Open Source Approach for Industrializing Research Tools - OW2Con 2011, ses...
An Open Source Approach for Industrializing Research Tools - OW2Con 2011, ses...An Open Source Approach for Industrializing Research Tools - OW2Con 2011, ses...
An Open Source Approach for Industrializing Research Tools - OW2Con 2011, ses...
 
Spy On Your Models, Standard talk at EclipseCon 2011
Spy On Your Models, Standard talk at EclipseCon 2011Spy On Your Models, Standard talk at EclipseCon 2011
Spy On Your Models, Standard talk at EclipseCon 2011
 
Possible Benefits of Bridging Eclipse-EMF and Microsoft "Oslo", Long Talk at ...
Possible Benefits of Bridging Eclipse-EMF and Microsoft "Oslo", Long Talk at ...Possible Benefits of Bridging Eclipse-EMF and Microsoft "Oslo", Long Talk at ...
Possible Benefits of Bridging Eclipse-EMF and Microsoft "Oslo", Long Talk at ...
 

Dernier

Dernier (20)

Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
 
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
 
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
 
WSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in UgandaWSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in Uganda
 
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
 
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
 

fREX: fUML-based Reverse Engineering of Executable Behavior for Software Dynamic Analysis - MiSE 2016 (ICSE 2016) @Austin, Texas, U.S.A.

  • 1. fREX: fUML-based Reverse Engineering of Executable Behavior for Software Dynamic Analysis Alexander Bergmayr, Hugo Bruneliere, Jordi Cabot, Jokin Garcia, Tanja Mayerhofer and Manuel Wimmer MiSE’16 (co-located with ICSE 2016) @ Austin, Texas, U.S.A. Tuesday 17th of May 2016
  • 4. Key Challenges ● Analyzing dynamic aspects of software o Reverse Engineering process... ● Various languages & platforms used o Cost of specific analysis techniques… 4
  • 5. Key Requirements ● Genericity / Reusability o Potential multiple sources (e.g. Java, C#, etc.) ● Extensibility o New languages  pivot o Combination of them ● Non-intrusiveness o No source code instrumentation 5
  • 6. fREX – Contributions ● Open and extensible framework for o Automated generation of fUML models o Execution of fUML models (fUML VM…) ● Initial base mapping between Java and fUML languages o Focus on behavioral aspects of Java o Focus on a subset of Java (MiniJava) 6
  • 7. fREX – Overall Framework Java code Code-level Model-level Model / code artifacts Tools Legend 7
  • 8. fREX – Overall Framework Java code Java model Java Model Discoverer Code-level Model-level Model / code artifacts Tools translated into Legend 8
  • 9. fREX – Overall Framework Java code Java model fUML model Java Model Discoverer Java2fUML Transformer Code-level Model-level Model / code artifacts Tools translated into translated into Legend 9
  • 10. fREX – Overall Framework Java code Java model Extended fUML VM fUML model Runtime model Java Model Discoverer Java2fUML Transformer executes produces refers to Code-level Model-level Model / code artifacts Tools translated into translated into Legend 10
  • 11. fREX – Overall Framework defined forJava code Java model Extended fUML VM fUML model Runtime model Test Cases Java Model Discoverer Java2fUML Transformer executes produces refers to proves assertions against invokes Code-level Model-level Model / code artifacts Tools translated into translated into Legend 11
  • 12. fREX – Overall Framework defined forJava code Java model Extended fUML VM fUML model Runtime model Test Cases Java Model Discoverer Java2fUML Transformer executes produces refers to proves assertions against invokes Model-based Analyzer exploits Code-level Model-level exploits Model / code artifacts Tools translated into translated into Legend 12
  • 13. fREX – Java-to-fUML Example 13
  • 14. fREX – Java-to-fUML Example 14
  • 15. fREX – Java-to-fUML Example 15
  • 16. fREX – Java-to-fUML Example 16
  • 17. fREX – Java-to-fUML Mapping (1/3) Java concept fUML concept MethodDeclaration md Add Activity a a.name = md.name … ReturnType rt Add ActivityParameterNode rapn rapn.name = "return“ rapn.type = rt.type … FormalParameter fp Add ActivityParameterNode fapn fapn.name = fp.name fapn.type = fp.type … Block b Add InitialNode in, FinalNode fn, StructuredActivityNode san … 17
  • 18. fREX – Java-to-fUML Mapping (2/3) Java concept fUML concept VariableDeclaration vd, ClassInstanceCreation cic Add CreateObjectAction createOA createOA.name = vd.type.name createOA.classifier = vd.type Add OutputPin op, ObjectFlow of, ForkNode fn, of.source = op, of.target = fn MethodInvocation mi Add CallOperationAction callOA callOA.name = mi.method.name callOA.operation = mi.method Add InputPin ip, ObjectFlow of -- target Add InputPin ip, ObjectFlow of foreach FormalParameter fp in mi.method Add OutputPin op for ReturnType rt in mi.method 18
  • 19. fREX – Java-to-fUML Mapping (3/3) Java concept fUML concept Assignment a switch (a.leftHandSide) case ArrayAccess Add AddStructuralFeatureValueAction asfva asfva.name = -- cf. left hand side asfva.structuralFeature = -- cf. left hand side Add InputPin ip, ObjectFlow of for a.leftHandSide Add InputPin ip, ObjectFlow of for a.rightHandSide ThisExpression Add ReadSelfAction rsa rsa.name = "this" Add OutputPin op 19
  • 20. fREX – Eclipse-based tooling ● https://www.youtube.com/watch?v=Z-X_tNlwLtA 20
  • 21. Application Scenarios ● Model Refinement o Via model transformation(s) o E.g. using fUML VM traces ● Model Slicing o More specific fUML models o Impact on other (UML) models ● View Generation o Relation with other DSLs o Various model views 21
  • 22. Conclusion / Future Work ● Reuse of existing model- based techniques o Scalability? ● Possible next steps o Full Java-to-fUML mapping... o Other (OO) languages... o Multiple programs... 22
  • 23. Questions? Comments? ● https://github.com/atlanmod/fREX ● Contact persons: o Alexander Bergmayr - bergmayr@big.tuwien.ac.at o Hugo Bruneliere - hugo.bruneliere@inria.fr 23