SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

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 MethodsKamiya Toshihiro
 
Storage Class Specifiers in C++
Storage Class Specifiers in C++Storage Class Specifiers in C++
Storage Class Specifiers in C++Reddhi Basu
 
Storage Classes and Functions
Storage Classes and FunctionsStorage Classes and Functions
Storage Classes and FunctionsJake Bond
 
Storage classes in c language
Storage classes in c languageStorage classes in c language
Storage classes in c languagetanmaymodi4
 
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 ...Kamiya Toshihiro
 
C++ concept of Polymorphism
C++ concept of  PolymorphismC++ concept of  Polymorphism
C++ concept of Polymorphismkiran Patel
 
Polymorphism
PolymorphismPolymorphism
PolymorphismAmir Ali
 
[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 +이동우Seok-joon Yun
 
Polymorphism and its types
Polymorphism and its typesPolymorphism and its types
Polymorphism and its typesSuraj Bora
 

What's hot (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
 

Viewers also liked

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 2011Hugo Bruneliere
 
AToMPM - Introductory Tutorial
AToMPM - Introductory TutorialAToMPM - Introductory Tutorial
AToMPM - Introductory TutorialEugene Syriani
 
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...Hugo Bruneliere
 
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 NantesHugo Bruneliere
 
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 @ ...Hugo Bruneliere
 
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...Hugo Bruneliere
 
Introducing Eclipse MoDisco
Introducing Eclipse MoDiscoIntroducing Eclipse MoDisco
Introducing Eclipse MoDiscoHugo Bruneliere
 
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 DatabasesGwendal Daniel
 
keynote modelsward 2017
keynote modelsward 2017keynote modelsward 2017
keynote modelsward 2017miso_uam
 
ARTIST Project general presentation
ARTIST Project general presentationARTIST Project general presentation
ARTIST Project general presentationIlias Spais
 
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 AlfEd Seidewitz
 
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 2016Jordi Cabot
 

Viewers also liked (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
 

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

Delving (Smalltalk) Source Code
Delving (Smalltalk) Source CodeDelving (Smalltalk) Source Code
Delving (Smalltalk) Source CodeESUG
 
Matlab and Python: Basic Operations
Matlab and Python: Basic OperationsMatlab and Python: Basic Operations
Matlab and Python: Basic OperationsWai Nwe Tun
 
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...Ra'Fat Al-Msie'deen
 
Evolution of Patterns
Evolution of PatternsEvolution of Patterns
Evolution of PatternsChris Eargle
 
A brief overview of java frameworks
A brief overview of java frameworksA brief overview of java frameworks
A brief overview of java frameworksMD Sayem Ahmed
 
Advanced Reflection in Java
Advanced Reflection in JavaAdvanced Reflection in Java
Advanced Reflection in Javakim.mens
 
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-oplbergmans
 
C# Summer course - Lecture 1
C# Summer course - Lecture 1C# Summer course - Lecture 1
C# Summer course - Lecture 1mohamedsamyali
 
1. Mini seminar intro
1. Mini seminar intro1. Mini seminar intro
1. Mini seminar introLeonid Maslov
 
Patterns in Python
Patterns in PythonPatterns in Python
Patterns in Pythondn
 
Functions2.pdf
Functions2.pdfFunctions2.pdf
Functions2.pdfDaddy84
 
TWINS: OOP and FP - Warburton
TWINS: OOP and FP - WarburtonTWINS: OOP and FP - Warburton
TWINS: OOP and FP - WarburtonCodemotion
 
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 ProgrammingRichardWarburton
 
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 SiskoTrivadis
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twentiesPuppet
 

Similar to 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
 

More from Hugo Bruneliere

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 -...Hugo Bruneliere
 
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...Hugo Bruneliere
 
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...Hugo Bruneliere
 
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...Hugo Bruneliere
 
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...Hugo Bruneliere
 
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 @...Hugo Bruneliere
 
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)...Hugo Bruneliere
 
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 ...Hugo Bruneliere
 
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...Hugo Bruneliere
 
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...Hugo Bruneliere
 
EMF Views - EclipseCon 2014, Modeling Symposium
EMF Views - EclipseCon 2014, Modeling SymposiumEMF Views - EclipseCon 2014, Modeling Symposium
EMF Views - EclipseCon 2014, Modeling SymposiumHugo Bruneliere
 
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 SymposiumHugo Bruneliere
 
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 2013Hugo 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 SessionHugo Bruneliere
 
Collaboro - EclipseCon Europe 2012, Modeling Symposium
Collaboro - EclipseCon Europe 2012, Modeling SymposiumCollaboro - EclipseCon Europe 2012, Modeling Symposium
Collaboro - EclipseCon Europe 2012, Modeling SymposiumHugo 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 SymposiumHugo Bruneliere
 
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...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 2011Hugo 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
 

More from 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 ...
 

Recently uploaded

Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineeringssuserb3a23b
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 

Recently uploaded (20)

Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineering
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Odoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting ServiceOdoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting Service
 

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