Similar to fREX: fUML-based Reverse Engineering of Executable Behavior for Software Dynamic Analysis - MiSE 2016 (ICSE 2016) @Austin, Texas, U.S.A. (20)
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
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
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
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