SlideShare a Scribd company logo
1 of 22
Download to read offline
A Taxonomy for Program Metamodels
in Program Reverse Engineering
Hironori Washizaki1, Yann-Gael Gueheneuc2, Foutse Khomh2
ICSME 2016, Oct 5, 2016
H. Washizaki, Y-G. Gueheneuc, F. Khomh, “A Taxonomy for Program Metamodels in Program Reverse
Engineering,” 32nd IEEE International Conference on Software Maintenance and Evolution (ICSME 2016)
1 2
SYSTEM INFORMATION
CO., LTD.
What Are Program Metamodels?
2
Abstract
represen
tation
Program
source
code
Reverse
Program Grammar
Program Metamodel
Class
Method Attribute
Inheritance
Definition
Invocation Access
FAMIX (excerpt.)
Entity
Relationship
KDM (excerpt.)
Forward
Models of grammars, which
represent target programs
according to a specific purpose
Case 1: Program Transformation [HICSS’17]
“Program meta model”
Package, class, method, statement, …
Navigation, transformation
3
Juhua Li, Kazunori Sakamoto, Hironori Washizaki, Yoshiaki Fukazawa, “Promotion of Educational Effectiveness by
Translation-based Programming Language Learning Using Java and Swift,” 50th Annual Hawaii International Conference on
System Sciences (HICSS-50), Waikoloa, Hawaii, Jan 4-7, 2017
Case 2: Program Visualization [VISSOFT’16]
“Database schema”
Package, class
History, …
4
Ryosuke Ishizue, Hironori Washizaki, Yoshiaki Fukazawa, Sakae Inoue, Yoshiiku Hanai, Masanobu Kanazawa and Katsushi
Namba, “Metrics visualization technique based on the origins and function layers for OSS-based development,” 4th IEEE
Working Conference on Software Visualization (VISSOFT 2016)
What’s the problem?
5
Statement
Method
Transformation
・・・
Package
Class
・・・
History
・・・
Tool developer
Researcher
How to
select?
Reverse
engineer
How to
communicate?How to
design?
Concepts are not uniformly
recognized
Need a common
vocabulary!
Hard to select, design or
communicate metamodels
without common classification
Need a comprehensive
taxonomy and classification
based on the taxonomy!
“Program meta model” “Database schema”
Research Goal and Method
6
To provide a comprehensive taxonomy and use this
taxonomy to classify some popular metamodels
(1) Conceptual Framework
Taxonomy
62 papers
1200+ papers
Metamodels
X X
X X
X
・・・
・・・
M1
M2
M5
(2) SLR
(3) Analysis
(4) Classification
"meta model" AND ("source code”
OR program*) AND (extract* OR
transform* OR generat*)
Engineering Village covers 12 trusted databases incl. Ei Compendex and Inspec http://www.engineeringvillage.com/
(1) Conceptual framework
7
Metasyntax
Grammar
Program
Meta
language
Program
metamodel
Program
model
Metasyntax
of schema
Exchange
format
Model data
conforms
describes
can be
mapped to
describes
can be
mapped to
class C {
void m() {
...
}
<class/>
<name>C
</name>
...
C: Class
m: Method
Grammarware Modelware Dataware
conforms
(2-3) ProMeTA: Program Metamodel Taxonomy
8
Program Metamodel
Target Language
Abstraction Level
Meta-Language
Exchange Format Processing Env.
Definition
Meta and History
Quality
(2-3) ProMeTA – Target Language
9
Program Metamodel
Target Language
Abstraction Level
Meta-Language
Exchange Format Processing Env.
Definition
Meta and History
Quality
Independence Supported Langs
Java C ・・・
(2-3) ProMeTA – Abstraction Level
10
Program Metamodel
Target Language
Abstraction Level
Meta-Language
Exchange Format Processing Env.
Definition
Meta and History
Quality
High Middle Low
System Module ・・・
(2-3) ProMeTA – Meta-Language
11
Program Metamodel
Target Language
Abstraction Level
Meta-Language
Exchange Format Processing Env.
Definition
Meta and History
Quality
Meta-Metamodel Metasyntax of Grammar
Graph Tree Only
(2-3) ProMeTA – Exchange Format
12
Program Metamodel
Target Language
Abstraction Level
Meta-Language
Exchange Format Processing Env.
Definition
Meta and History
Quality
Encoding Transfer
Mechanism
Text Binary
Abstract
Syntax
Exchange
Pattern
Exchange
Format Quality
(2-3) ProMeTA – Processing Environment
13
Program Metamodel
Target Language
Abstraction Level
Meta-Language
Exchange Format Processing Env.
Definition
Meta and History
Quality
Navigation Extractor
GPL Query
Analysis Transformation
(2-3) ProMeTA – Program Meta and History
14
Program Metamodel
Target Language
Abstraction Level
Meta-Language
Exchange Format Processing Env.
Definition
Meta and History
Quality
Language Soft. Ver. File Date File Ver. History
Ver. Change
(2-3) ProMeTA – Definition
15
Program Metamodel
Target Language
Abstraction Level
Meta-Language
Exchange Format Processing Env.
Definition
Meta and History
Quality
Strategy Clarity Locality
Auto Manual
(2-3) ProMeTA – Quality
16
Program Metamodel
Target Language
Abstraction Level
Meta-Language
Exchange Format Processing Env.
Definition
Meta and History
Quality
Performance UsabilityCompatibilityFunctional
Suitability
Reliability Portability Maintainability
ReusabilityModifiabilityISO/IEC 25010 quality model adopted
17
M
Target Language High Middle Lexical Structure Syntax Semantics Dialects
T1 T2 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19 A20
M1 Independent Java, Delphi X X X X X X X X X X X X X
M2 Independent Java, PL/SQL X X X X X X X X X X X X X X
M3 Object-Oriented Java, C++, Ada, Smalltalk X X X X X X
M4 Object-Oriented Java, C++ X X X X X X
M5 Independent Java, C++, C X X X X X X X X
M
Meta-Language Exchange Format
L1 L2 L3 L4 E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12 E13 E14 E15 E16 E17 E18 E19 E20 F21 F22
M1 MOF Text File Transfer XMI, XSD Exp Ext + + ++ ++ ++ ++ + + ++ + + Exp Ext
M2 MOF Text File Transfer XMI Exp Ext + + ++ ++ ++ ++ + + ++ + + Exp Ext
M3 UML Text Text Stream XMI, CDIF Exp Ext + + ++ ++ ++ ++ + + ++ + + Exp Ext
M4 UML Text File Transfer XMI Exp Ext + + ++ ++ ++ ++ ++ + + Exp Ext
M5 X Binary Direct RDB Imp Int - - - - - - - - - Imp Int
M
Processing Environment
P1 P2 P3 P4 P5 P6 P7 P8 P9
M1 OCL, KDM Analysis Package
MoDisco (dedicated parsers),
Gra2MoL
KDM Target Mapping &
Transformation Package
X
M2 OCL, Modisco Java Model Query
MoDisco (KDM Source
Discovery, Java Discoverer)
ADM tools X X
M3 MOOSE Navigation and Querying Engine MOOSE MOOSE Refactoring Engine X X
M4 X Datrix X X
M5 SQL SPOOL (dedicated extractors) X
M
Definition Program Meta and History Data Functionality
D1 D2 D3 H1 H2 H3 H4 H5 H6 H7 Q1 Q2 Q3 Q4 Q5 Q6 Q7
M1 Manually Exp Ext X + Embedded Manual + +
M2 Manually Exp Ext X + Embedded Manual + +
M3 Manually Exp Ext +
M4 Manually Exp Int + +
M5 Manually Imp Int Dependency analysis
M
Non-Functionality
Q8 Q9 Q10 Q11 Q12 Q13 Q14 Q15 Q16 Q18 Q19 Q20 Q21 Q22 Q23 Q24 Q25
M1 - Doc, Sample, Community ++ ++ + + Free Fully Inheritance, Composition + ++ Fully ++ + +
M2 Doc, Sample, Community ++ ++ + + Free Fully Package Inheritance, Composition + ++ Fully ++ ++ +
M3 Doc, Sample, Community ++ ++ + Free Fully Inheritance, Composition + ++ Fully ++ ++ +
M4 ++ - - Free Unavailable Inheritance, Composition + - Partially + +
M5 - - - Free Unavailable - - Partially - -
(4) Classification Results and Findings
• Metamodels can be reused for major languages (Java, C++)
• Better to choose/create metamodels defined by explicitly-
externally defined major metalanguages/exchange formats
• Most are suitable for transformations and program analysis
• Few supports to describe meta and history data
18
Lang Abst Meta Exch Env. Hist Defi Func Qual
ASTM any M L MOF XMI OCL, MoDisco Lang Ext General ++
KDM any H M L MOF XMI OCL, MoDisco Ver. Ext General ++
FAMIX OOP M UML MSE MOOSE Ext General ++
SPOOL OOP M UML XMI Datrix Int General +
UNIQ Any M L EBNF RDB SPOOL, SQL Int Dependency
Abstract Syntax Tree Metamodel (ASTM), Knowledge Discovery Meta-Model (KDM)
FAMOOS Information Exchange Model (FAMIX)
Related Work and Conclusion
• Existing comparisons and evaluations (e.g.,
[Jin06][Izq14]) were conducted independently
– Do not provide a comprehensive guide of characteristics and
limitations of metamodels.
• Contribution
– A conceptual framework
– A comprehensive taxonomy, named ProMeTA
– A classification of existing popular program metamodels
• Future work
– Validate ProMeTA by conducting experiments
– Make ProMeTA available and modifiable to the community
19
[Jin06] D. Jin and J. R. Cordy, “Integrating reverse engineering tools using a service-sharing methodology,” in 14th IEEE
International Conference on Program Comprehension (ICPC’06). IEEE Computer Society, 2006, pp. 94–99.
[Izq14] J. L. C. Izquierdo and J. G. Molina, “Extracting models from source code in software modernization,” Software and
Systems Modeling, vol. 13, no. 2, pp. 713–734, 2014.
Thanks! Questions?
20
What are metamodels?
21
• Reverse engineering: analysis process to identify
elements and create target’s representations in
another or at a higher level of abstraction
• Program metamodel: a model of a programming
language grammar, which represents target
programs according to a specific purpose
Class
Method Attribute
Inheritance
Definition
Invocation Access
FAMIX (excerpt.)
Entity
Relationship
KDM (excerpt.)
Key Findings
• Target language: If the target is a major one like Java or C++, existing
metamodels and tools may be reused.
• Abstraction level: None of the existing metamodels supports all of the
required features at certain abstraction levels.
• Metalanguage: Better to choose or create metamodels defined by widely
accepted, explicitly-externally defined metalanguages like MOF and UML,
for long-term usage.
• Exchange format: Better to choose of create metamodels which support
the widely accepted, explicitly-externally defined SEFs like XMI, for long-
term usage.
• Processing environment: Most of the metamodels are suitable for
transformations and program analysis.
• Definition: Better to select or create explicitly-externally defined
metamodels, for long-term usage.
• Program meta and history data: There are few supports to describe meta
and history data in metamodels.
• Functionality: Better to select a general metamodel for various reverse
engineering purposes.
• Non-functionality: Should select fully available and formalized
metamodels.
22
Need to revise

More Related Content

What's hot

A Taxonomy for Program Metamodels in Program Reverse Engineering
A Taxonomy for Program Metamodels in Program Reverse EngineeringA Taxonomy for Program Metamodels in Program Reverse Engineering
A Taxonomy for Program Metamodels in Program Reverse EngineeringHironori Washizaki
 
What java developers (don’t) know about api compatibility
What java developers (don’t) know about api compatibilityWhat java developers (don’t) know about api compatibility
What java developers (don’t) know about api compatibilityJens Dietrich
 
Butler
ButlerButler
Butleranesah
 
Encoding and Designing for the Swift Poems Project
Encoding and Designing for the Swift Poems ProjectEncoding and Designing for the Swift Poems Project
Encoding and Designing for the Swift Poems ProjectJames Griffin
 
IRJET- An Efficient Way to Querying XML Database using Natural Language
IRJET-  	  An Efficient Way to Querying XML Database using Natural LanguageIRJET-  	  An Efficient Way to Querying XML Database using Natural Language
IRJET- An Efficient Way to Querying XML Database using Natural LanguageIRJET Journal
 
A novel approach for clone group mapping
A novel approach for clone group mappingA novel approach for clone group mapping
A novel approach for clone group mappingijseajournal
 
Intelligent query converter a domain independent interfacefor conversion
Intelligent query converter a domain independent interfacefor conversionIntelligent query converter a domain independent interfacefor conversion
Intelligent query converter a domain independent interfacefor conversionIAEME Publication
 
IRJET - Pseudocode to Python Translation using Machine Learning
IRJET - Pseudocode to Python Translation using Machine LearningIRJET - Pseudocode to Python Translation using Machine Learning
IRJET - Pseudocode to Python Translation using Machine LearningIRJET Journal
 
A UML profile for OData Web APIs
A UML profile for OData Web APIsA UML profile for OData Web APIs
A UML profile for OData Web APIsJordi Cabot
 
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...Method-Level Code Clone Modification using Refactoring Techniques for Clone M...
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...acijjournal
 
Deep learning based code smell detection - Qualifying Talk
Deep learning based code smell detection - Qualifying TalkDeep learning based code smell detection - Qualifying Talk
Deep learning based code smell detection - Qualifying TalkSayed Mohsin Reza
 

What's hot (16)

A Taxonomy for Program Metamodels in Program Reverse Engineering
A Taxonomy for Program Metamodels in Program Reverse EngineeringA Taxonomy for Program Metamodels in Program Reverse Engineering
A Taxonomy for Program Metamodels in Program Reverse Engineering
 
What java developers (don’t) know about api compatibility
What java developers (don’t) know about api compatibilityWhat java developers (don’t) know about api compatibility
What java developers (don’t) know about api compatibility
 
Butler
ButlerButler
Butler
 
Encoding and Designing for the Swift Poems Project
Encoding and Designing for the Swift Poems ProjectEncoding and Designing for the Swift Poems Project
Encoding and Designing for the Swift Poems Project
 
Core java part1
Core java  part1Core java  part1
Core java part1
 
IRJET- An Efficient Way to Querying XML Database using Natural Language
IRJET-  	  An Efficient Way to Querying XML Database using Natural LanguageIRJET-  	  An Efficient Way to Querying XML Database using Natural Language
IRJET- An Efficient Way to Querying XML Database using Natural Language
 
A novel approach for clone group mapping
A novel approach for clone group mappingA novel approach for clone group mapping
A novel approach for clone group mapping
 
Intelligent query converter a domain independent interfacefor conversion
Intelligent query converter a domain independent interfacefor conversionIntelligent query converter a domain independent interfacefor conversion
Intelligent query converter a domain independent interfacefor conversion
 
IRJET - Pseudocode to Python Translation using Machine Learning
IRJET - Pseudocode to Python Translation using Machine LearningIRJET - Pseudocode to Python Translation using Machine Learning
IRJET - Pseudocode to Python Translation using Machine Learning
 
A UML profile for OData Web APIs
A UML profile for OData Web APIsA UML profile for OData Web APIs
A UML profile for OData Web APIs
 
Oop
OopOop
Oop
 
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...Method-Level Code Clone Modification using Refactoring Techniques for Clone M...
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...
 
Istqb ctfl syll 2011
Istqb ctfl syll 2011Istqb ctfl syll 2011
Istqb ctfl syll 2011
 
Deep learning based code smell detection - Qualifying Talk
Deep learning based code smell detection - Qualifying TalkDeep learning based code smell detection - Qualifying Talk
Deep learning based code smell detection - Qualifying Talk
 
C+++
C+++C+++
C+++
 
Csci360 20
Csci360 20Csci360 20
Csci360 20
 

Similar to Icsme16.ppt

Overlapping optimization with parsing through metagrammars
Overlapping optimization with parsing through metagrammarsOverlapping optimization with parsing through metagrammars
Overlapping optimization with parsing through metagrammarsIAEME Publication
 
Re-implementing Thrift using MDE
Re-implementing Thrift using MDERe-implementing Thrift using MDE
Re-implementing Thrift using MDESina Madani
 
Recent Trends in Translation of Programming Languages using NLP Approaches
Recent Trends in Translation of Programming Languages using NLP ApproachesRecent Trends in Translation of Programming Languages using NLP Approaches
Recent Trends in Translation of Programming Languages using NLP ApproachesIRJET Journal
 
Leveraging Model-Driven Technologies for JSON Artefacts: The Shipyard Case Study
Leveraging Model-Driven Technologies for JSON Artefacts: The Shipyard Case StudyLeveraging Model-Driven Technologies for JSON Artefacts: The Shipyard Case Study
Leveraging Model-Driven Technologies for JSON Artefacts: The Shipyard Case StudyLuca Berardinelli
 
Source-to-source transformations: Supporting tools and infrastructure
Source-to-source transformations: Supporting tools and infrastructureSource-to-source transformations: Supporting tools and infrastructure
Source-to-source transformations: Supporting tools and infrastructurekaveirious
 
Project_Report (BARC-Jerin)_final
Project_Report (BARC-Jerin)_finalProject_Report (BARC-Jerin)_final
Project_Report (BARC-Jerin)_finalJerin John
 
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worldsmbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling WorldsIstvan Rath
 
Mit302 web technologies
Mit302 web technologiesMit302 web technologies
Mit302 web technologiessmumbahelp
 
Large Language Models Bootcamp
Large Language Models BootcampLarge Language Models Bootcamp
Large Language Models BootcampData Science Dojo
 
Srinivas Muddana Resume
Srinivas Muddana ResumeSrinivas Muddana Resume
Srinivas Muddana Resumemuddanas
 
Srinivas Muddana Resume
Srinivas Muddana ResumeSrinivas Muddana Resume
Srinivas Muddana Resumemuddanas
 
Srinivas Muddana Resume
Srinivas Muddana ResumeSrinivas Muddana Resume
Srinivas Muddana Resumemuddanas
 
GATE, HLT and Machine Learning, Sheffield, July 2003
GATE, HLT and Machine Learning, Sheffield, July 2003GATE, HLT and Machine Learning, Sheffield, July 2003
GATE, HLT and Machine Learning, Sheffield, July 2003butest
 
Is fortran still relevant comparing fortran with java and c++
Is fortran still relevant comparing fortran with java and c++Is fortran still relevant comparing fortran with java and c++
Is fortran still relevant comparing fortran with java and c++ijseajournal
 
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
 
Overview of the SPARQL-Generate language and latest developments
Overview of the SPARQL-Generate language and latest developmentsOverview of the SPARQL-Generate language and latest developments
Overview of the SPARQL-Generate language and latest developmentsMaxime Lefrançois
 
Towards Reusable Research Software
Towards Reusable Research SoftwareTowards Reusable Research Software
Towards Reusable Research Softwaredgarijo
 
Ontology mapping for the semantic web
Ontology mapping for the semantic webOntology mapping for the semantic web
Ontology mapping for the semantic webWorawith Sangkatip
 

Similar to Icsme16.ppt (20)

Overlapping optimization with parsing through metagrammars
Overlapping optimization with parsing through metagrammarsOverlapping optimization with parsing through metagrammars
Overlapping optimization with parsing through metagrammars
 
Re-implementing Thrift using MDE
Re-implementing Thrift using MDERe-implementing Thrift using MDE
Re-implementing Thrift using MDE
 
Recent Trends in Translation of Programming Languages using NLP Approaches
Recent Trends in Translation of Programming Languages using NLP ApproachesRecent Trends in Translation of Programming Languages using NLP Approaches
Recent Trends in Translation of Programming Languages using NLP Approaches
 
Leveraging Model-Driven Technologies for JSON Artefacts: The Shipyard Case Study
Leveraging Model-Driven Technologies for JSON Artefacts: The Shipyard Case StudyLeveraging Model-Driven Technologies for JSON Artefacts: The Shipyard Case Study
Leveraging Model-Driven Technologies for JSON Artefacts: The Shipyard Case Study
 
Source-to-source transformations: Supporting tools and infrastructure
Source-to-source transformations: Supporting tools and infrastructureSource-to-source transformations: Supporting tools and infrastructure
Source-to-source transformations: Supporting tools and infrastructure
 
Project_Report (BARC-Jerin)_final
Project_Report (BARC-Jerin)_finalProject_Report (BARC-Jerin)_final
Project_Report (BARC-Jerin)_final
 
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worldsmbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
 
Mit302 web technologies
Mit302 web technologiesMit302 web technologies
Mit302 web technologies
 
Large Language Models Bootcamp
Large Language Models BootcampLarge Language Models Bootcamp
Large Language Models Bootcamp
 
Resume
ResumeResume
Resume
 
Srinivas Muddana Resume
Srinivas Muddana ResumeSrinivas Muddana Resume
Srinivas Muddana Resume
 
Srinivas Muddana Resume
Srinivas Muddana ResumeSrinivas Muddana Resume
Srinivas Muddana Resume
 
Srinivas Muddana Resume
Srinivas Muddana ResumeSrinivas Muddana Resume
Srinivas Muddana Resume
 
Chandra_CV 3 8Yr Exp
Chandra_CV 3 8Yr Exp Chandra_CV 3 8Yr Exp
Chandra_CV 3 8Yr Exp
 
GATE, HLT and Machine Learning, Sheffield, July 2003
GATE, HLT and Machine Learning, Sheffield, July 2003GATE, HLT and Machine Learning, Sheffield, July 2003
GATE, HLT and Machine Learning, Sheffield, July 2003
 
Is fortran still relevant comparing fortran with java and c++
Is fortran still relevant comparing fortran with java and c++Is fortran still relevant comparing fortran with java and c++
Is fortran still relevant comparing fortran with java and c++
 
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
 
Overview of the SPARQL-Generate language and latest developments
Overview of the SPARQL-Generate language and latest developmentsOverview of the SPARQL-Generate language and latest developments
Overview of the SPARQL-Generate language and latest developments
 
Towards Reusable Research Software
Towards Reusable Research SoftwareTowards Reusable Research Software
Towards Reusable Research Software
 
Ontology mapping for the semantic web
Ontology mapping for the semantic webOntology mapping for the semantic web
Ontology mapping for the semantic web
 

More from Ptidej Team

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software MiniaturisationPtidej Team
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel BriandPtidej Team
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel AbdellatifPtidej Team
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh KermansaraviPtidej Team
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel GrichiPtidej Team
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano PolitowskiPtidej Team
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisisPtidej Team
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptPtidej Team
 
Thesis+of+étienne+duclos.ppt
Thesis+of+étienne+duclos.pptThesis+of+étienne+duclos.ppt
Thesis+of+étienne+duclos.pptPtidej Team
 

More from Ptidej Team (20)

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software Miniaturisation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel Grichi
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisis
 
MIPA
MIPAMIPA
MIPA
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
 
Thesis+of+étienne+duclos.ppt
Thesis+of+étienne+duclos.pptThesis+of+étienne+duclos.ppt
Thesis+of+étienne+duclos.ppt
 
Icsoc16b.ppt
Icsoc16b.pptIcsoc16b.ppt
Icsoc16b.ppt
 

Recently uploaded

KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
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
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
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
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
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
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
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
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 

Recently uploaded (20)

KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
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
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
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
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
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
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
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...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 

Icsme16.ppt

  • 1. A Taxonomy for Program Metamodels in Program Reverse Engineering Hironori Washizaki1, Yann-Gael Gueheneuc2, Foutse Khomh2 ICSME 2016, Oct 5, 2016 H. Washizaki, Y-G. Gueheneuc, F. Khomh, “A Taxonomy for Program Metamodels in Program Reverse Engineering,” 32nd IEEE International Conference on Software Maintenance and Evolution (ICSME 2016) 1 2 SYSTEM INFORMATION CO., LTD.
  • 2. What Are Program Metamodels? 2 Abstract represen tation Program source code Reverse Program Grammar Program Metamodel Class Method Attribute Inheritance Definition Invocation Access FAMIX (excerpt.) Entity Relationship KDM (excerpt.) Forward Models of grammars, which represent target programs according to a specific purpose
  • 3. Case 1: Program Transformation [HICSS’17] “Program meta model” Package, class, method, statement, … Navigation, transformation 3 Juhua Li, Kazunori Sakamoto, Hironori Washizaki, Yoshiaki Fukazawa, “Promotion of Educational Effectiveness by Translation-based Programming Language Learning Using Java and Swift,” 50th Annual Hawaii International Conference on System Sciences (HICSS-50), Waikoloa, Hawaii, Jan 4-7, 2017
  • 4. Case 2: Program Visualization [VISSOFT’16] “Database schema” Package, class History, … 4 Ryosuke Ishizue, Hironori Washizaki, Yoshiaki Fukazawa, Sakae Inoue, Yoshiiku Hanai, Masanobu Kanazawa and Katsushi Namba, “Metrics visualization technique based on the origins and function layers for OSS-based development,” 4th IEEE Working Conference on Software Visualization (VISSOFT 2016)
  • 5. What’s the problem? 5 Statement Method Transformation ・・・ Package Class ・・・ History ・・・ Tool developer Researcher How to select? Reverse engineer How to communicate?How to design? Concepts are not uniformly recognized Need a common vocabulary! Hard to select, design or communicate metamodels without common classification Need a comprehensive taxonomy and classification based on the taxonomy! “Program meta model” “Database schema”
  • 6. Research Goal and Method 6 To provide a comprehensive taxonomy and use this taxonomy to classify some popular metamodels (1) Conceptual Framework Taxonomy 62 papers 1200+ papers Metamodels X X X X X ・・・ ・・・ M1 M2 M5 (2) SLR (3) Analysis (4) Classification "meta model" AND ("source code” OR program*) AND (extract* OR transform* OR generat*) Engineering Village covers 12 trusted databases incl. Ei Compendex and Inspec http://www.engineeringvillage.com/
  • 7. (1) Conceptual framework 7 Metasyntax Grammar Program Meta language Program metamodel Program model Metasyntax of schema Exchange format Model data conforms describes can be mapped to describes can be mapped to class C { void m() { ... } <class/> <name>C </name> ... C: Class m: Method Grammarware Modelware Dataware conforms
  • 8. (2-3) ProMeTA: Program Metamodel Taxonomy 8 Program Metamodel Target Language Abstraction Level Meta-Language Exchange Format Processing Env. Definition Meta and History Quality
  • 9. (2-3) ProMeTA – Target Language 9 Program Metamodel Target Language Abstraction Level Meta-Language Exchange Format Processing Env. Definition Meta and History Quality Independence Supported Langs Java C ・・・
  • 10. (2-3) ProMeTA – Abstraction Level 10 Program Metamodel Target Language Abstraction Level Meta-Language Exchange Format Processing Env. Definition Meta and History Quality High Middle Low System Module ・・・
  • 11. (2-3) ProMeTA – Meta-Language 11 Program Metamodel Target Language Abstraction Level Meta-Language Exchange Format Processing Env. Definition Meta and History Quality Meta-Metamodel Metasyntax of Grammar Graph Tree Only
  • 12. (2-3) ProMeTA – Exchange Format 12 Program Metamodel Target Language Abstraction Level Meta-Language Exchange Format Processing Env. Definition Meta and History Quality Encoding Transfer Mechanism Text Binary Abstract Syntax Exchange Pattern Exchange Format Quality
  • 13. (2-3) ProMeTA – Processing Environment 13 Program Metamodel Target Language Abstraction Level Meta-Language Exchange Format Processing Env. Definition Meta and History Quality Navigation Extractor GPL Query Analysis Transformation
  • 14. (2-3) ProMeTA – Program Meta and History 14 Program Metamodel Target Language Abstraction Level Meta-Language Exchange Format Processing Env. Definition Meta and History Quality Language Soft. Ver. File Date File Ver. History Ver. Change
  • 15. (2-3) ProMeTA – Definition 15 Program Metamodel Target Language Abstraction Level Meta-Language Exchange Format Processing Env. Definition Meta and History Quality Strategy Clarity Locality Auto Manual
  • 16. (2-3) ProMeTA – Quality 16 Program Metamodel Target Language Abstraction Level Meta-Language Exchange Format Processing Env. Definition Meta and History Quality Performance UsabilityCompatibilityFunctional Suitability Reliability Portability Maintainability ReusabilityModifiabilityISO/IEC 25010 quality model adopted
  • 17. 17 M Target Language High Middle Lexical Structure Syntax Semantics Dialects T1 T2 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19 A20 M1 Independent Java, Delphi X X X X X X X X X X X X X M2 Independent Java, PL/SQL X X X X X X X X X X X X X X M3 Object-Oriented Java, C++, Ada, Smalltalk X X X X X X M4 Object-Oriented Java, C++ X X X X X X M5 Independent Java, C++, C X X X X X X X X M Meta-Language Exchange Format L1 L2 L3 L4 E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12 E13 E14 E15 E16 E17 E18 E19 E20 F21 F22 M1 MOF Text File Transfer XMI, XSD Exp Ext + + ++ ++ ++ ++ + + ++ + + Exp Ext M2 MOF Text File Transfer XMI Exp Ext + + ++ ++ ++ ++ + + ++ + + Exp Ext M3 UML Text Text Stream XMI, CDIF Exp Ext + + ++ ++ ++ ++ + + ++ + + Exp Ext M4 UML Text File Transfer XMI Exp Ext + + ++ ++ ++ ++ ++ + + Exp Ext M5 X Binary Direct RDB Imp Int - - - - - - - - - Imp Int M Processing Environment P1 P2 P3 P4 P5 P6 P7 P8 P9 M1 OCL, KDM Analysis Package MoDisco (dedicated parsers), Gra2MoL KDM Target Mapping & Transformation Package X M2 OCL, Modisco Java Model Query MoDisco (KDM Source Discovery, Java Discoverer) ADM tools X X M3 MOOSE Navigation and Querying Engine MOOSE MOOSE Refactoring Engine X X M4 X Datrix X X M5 SQL SPOOL (dedicated extractors) X M Definition Program Meta and History Data Functionality D1 D2 D3 H1 H2 H3 H4 H5 H6 H7 Q1 Q2 Q3 Q4 Q5 Q6 Q7 M1 Manually Exp Ext X + Embedded Manual + + M2 Manually Exp Ext X + Embedded Manual + + M3 Manually Exp Ext + M4 Manually Exp Int + + M5 Manually Imp Int Dependency analysis M Non-Functionality Q8 Q9 Q10 Q11 Q12 Q13 Q14 Q15 Q16 Q18 Q19 Q20 Q21 Q22 Q23 Q24 Q25 M1 - Doc, Sample, Community ++ ++ + + Free Fully Inheritance, Composition + ++ Fully ++ + + M2 Doc, Sample, Community ++ ++ + + Free Fully Package Inheritance, Composition + ++ Fully ++ ++ + M3 Doc, Sample, Community ++ ++ + Free Fully Inheritance, Composition + ++ Fully ++ ++ + M4 ++ - - Free Unavailable Inheritance, Composition + - Partially + + M5 - - - Free Unavailable - - Partially - -
  • 18. (4) Classification Results and Findings • Metamodels can be reused for major languages (Java, C++) • Better to choose/create metamodels defined by explicitly- externally defined major metalanguages/exchange formats • Most are suitable for transformations and program analysis • Few supports to describe meta and history data 18 Lang Abst Meta Exch Env. Hist Defi Func Qual ASTM any M L MOF XMI OCL, MoDisco Lang Ext General ++ KDM any H M L MOF XMI OCL, MoDisco Ver. Ext General ++ FAMIX OOP M UML MSE MOOSE Ext General ++ SPOOL OOP M UML XMI Datrix Int General + UNIQ Any M L EBNF RDB SPOOL, SQL Int Dependency Abstract Syntax Tree Metamodel (ASTM), Knowledge Discovery Meta-Model (KDM) FAMOOS Information Exchange Model (FAMIX)
  • 19. Related Work and Conclusion • Existing comparisons and evaluations (e.g., [Jin06][Izq14]) were conducted independently – Do not provide a comprehensive guide of characteristics and limitations of metamodels. • Contribution – A conceptual framework – A comprehensive taxonomy, named ProMeTA – A classification of existing popular program metamodels • Future work – Validate ProMeTA by conducting experiments – Make ProMeTA available and modifiable to the community 19 [Jin06] D. Jin and J. R. Cordy, “Integrating reverse engineering tools using a service-sharing methodology,” in 14th IEEE International Conference on Program Comprehension (ICPC’06). IEEE Computer Society, 2006, pp. 94–99. [Izq14] J. L. C. Izquierdo and J. G. Molina, “Extracting models from source code in software modernization,” Software and Systems Modeling, vol. 13, no. 2, pp. 713–734, 2014.
  • 21. What are metamodels? 21 • Reverse engineering: analysis process to identify elements and create target’s representations in another or at a higher level of abstraction • Program metamodel: a model of a programming language grammar, which represents target programs according to a specific purpose Class Method Attribute Inheritance Definition Invocation Access FAMIX (excerpt.) Entity Relationship KDM (excerpt.)
  • 22. Key Findings • Target language: If the target is a major one like Java or C++, existing metamodels and tools may be reused. • Abstraction level: None of the existing metamodels supports all of the required features at certain abstraction levels. • Metalanguage: Better to choose or create metamodels defined by widely accepted, explicitly-externally defined metalanguages like MOF and UML, for long-term usage. • Exchange format: Better to choose of create metamodels which support the widely accepted, explicitly-externally defined SEFs like XMI, for long- term usage. • Processing environment: Most of the metamodels are suitable for transformations and program analysis. • Definition: Better to select or create explicitly-externally defined metamodels, for long-term usage. • Program meta and history data: There are few supports to describe meta and history data in metamodels. • Functionality: Better to select a general metamodel for various reverse engineering purposes. • Non-functionality: Should select fully available and formalized metamodels. 22 Need to revise