SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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 ...
 

Kürzlich hochgeladen

Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 

Kürzlich hochgeladen (20)

Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS 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