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

MGU SYLLABUS MANUAL-Advance diploma in computer applications
MGU SYLLABUS MANUAL-Advance diploma in computer applicationsMGU SYLLABUS MANUAL-Advance diploma in computer applications
MGU SYLLABUS MANUAL-Advance diploma in computer applicationsmahatmagandhiuniversity
 
Knowledge-poor and Knowledge-rich Approaches for Multilingual Terminology Ext...
Knowledge-poor and Knowledge-rich Approaches for Multilingual Terminology Ext...Knowledge-poor and Knowledge-rich Approaches for Multilingual Terminology Ext...
Knowledge-poor and Knowledge-rich Approaches for Multilingual Terminology Ext...Christophe Tricot
 
Pal gov.tutorial2.session5 2.rdfs_jarrar
Pal gov.tutorial2.session5 2.rdfs_jarrarPal gov.tutorial2.session5 2.rdfs_jarrar
Pal gov.tutorial2.session5 2.rdfs_jarrarMustafa Jarrar
 
Transformer Seq2Sqe Models: Concepts, Trends & Limitations (DLI)
Transformer Seq2Sqe Models: Concepts, Trends & Limitations (DLI)Transformer Seq2Sqe Models: Concepts, Trends & Limitations (DLI)
Transformer Seq2Sqe Models: Concepts, Trends & Limitations (DLI)Deep Learning Italia
 
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
 
Project_Report (BARC-Jerin)_final
Project_Report (BARC-Jerin)_finalProject_Report (BARC-Jerin)_final
Project_Report (BARC-Jerin)_finalJerin John
 
OOP Comparative Study
OOP Comparative StudyOOP Comparative Study
OOP Comparative StudyDarren Tan
 
Pal gov.tutorial2.session10.sparql
Pal gov.tutorial2.session10.sparqlPal gov.tutorial2.session10.sparql
Pal gov.tutorial2.session10.sparqlMustafa Jarrar
 
Création de la banque de corpus CoMeRe : un partenariat Corpus-écrits – ORTO...
Création de la banque de corpus CoMeRe :  un partenariat Corpus-écrits – ORTO...Création de la banque de corpus CoMeRe :  un partenariat Corpus-écrits – ORTO...
Création de la banque de corpus CoMeRe : un partenariat Corpus-écrits – ORTO...Thierry Chanier
 
OODP Unit 1 OOPs classes and objects
OODP Unit 1 OOPs classes and objectsOODP Unit 1 OOPs classes and objects
OODP Unit 1 OOPs classes and objectsShanmuganathan C
 
Pal gov.tutorial2.session1.xml basics and namespaces
Pal gov.tutorial2.session1.xml basics and namespacesPal gov.tutorial2.session1.xml basics and namespaces
Pal gov.tutorial2.session1.xml basics and namespacesMustafa Jarrar
 
Pal gov.tutorial2.session9.lab rdf-stores
Pal gov.tutorial2.session9.lab rdf-storesPal gov.tutorial2.session9.lab rdf-stores
Pal gov.tutorial2.session9.lab rdf-storesMustafa Jarrar
 
PYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELING
PYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELINGPYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELING
PYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELINGijseajournal
 
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
 

What's hot (19)

Generic Programming
Generic ProgrammingGeneric Programming
Generic Programming
 
MGU SYLLABUS MANUAL-Advance diploma in computer applications
MGU SYLLABUS MANUAL-Advance diploma in computer applicationsMGU SYLLABUS MANUAL-Advance diploma in computer applications
MGU SYLLABUS MANUAL-Advance diploma in computer applications
 
Knowledge-poor and Knowledge-rich Approaches for Multilingual Terminology Ext...
Knowledge-poor and Knowledge-rich Approaches for Multilingual Terminology Ext...Knowledge-poor and Knowledge-rich Approaches for Multilingual Terminology Ext...
Knowledge-poor and Knowledge-rich Approaches for Multilingual Terminology Ext...
 
Pal gov.tutorial2.session5 2.rdfs_jarrar
Pal gov.tutorial2.session5 2.rdfs_jarrarPal gov.tutorial2.session5 2.rdfs_jarrar
Pal gov.tutorial2.session5 2.rdfs_jarrar
 
Transformer Seq2Sqe Models: Concepts, Trends & Limitations (DLI)
Transformer Seq2Sqe Models: Concepts, Trends & Limitations (DLI)Transformer Seq2Sqe Models: Concepts, Trends & Limitations (DLI)
Transformer Seq2Sqe Models: Concepts, Trends & Limitations (DLI)
 
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
 
Advance diploma in it
Advance diploma in itAdvance diploma in it
Advance diploma in it
 
Project_Report (BARC-Jerin)_final
Project_Report (BARC-Jerin)_finalProject_Report (BARC-Jerin)_final
Project_Report (BARC-Jerin)_final
 
OOP Comparative Study
OOP Comparative StudyOOP Comparative Study
OOP Comparative Study
 
thrift-20070401
thrift-20070401thrift-20070401
thrift-20070401
 
Pal gov.tutorial2.session10.sparql
Pal gov.tutorial2.session10.sparqlPal gov.tutorial2.session10.sparql
Pal gov.tutorial2.session10.sparql
 
APS PGT Computer Science SylIabus
APS PGT Computer Science SylIabusAPS PGT Computer Science SylIabus
APS PGT Computer Science SylIabus
 
Création de la banque de corpus CoMeRe : un partenariat Corpus-écrits – ORTO...
Création de la banque de corpus CoMeRe :  un partenariat Corpus-écrits – ORTO...Création de la banque de corpus CoMeRe :  un partenariat Corpus-écrits – ORTO...
Création de la banque de corpus CoMeRe : un partenariat Corpus-écrits – ORTO...
 
OODP Unit 1 OOPs classes and objects
OODP Unit 1 OOPs classes and objectsOODP Unit 1 OOPs classes and objects
OODP Unit 1 OOPs classes and objects
 
Pal gov.tutorial2.session1.xml basics and namespaces
Pal gov.tutorial2.session1.xml basics and namespacesPal gov.tutorial2.session1.xml basics and namespaces
Pal gov.tutorial2.session1.xml basics and namespaces
 
C+++
C+++C+++
C+++
 
Pal gov.tutorial2.session9.lab rdf-stores
Pal gov.tutorial2.session9.lab rdf-storesPal gov.tutorial2.session9.lab rdf-stores
Pal gov.tutorial2.session9.lab rdf-stores
 
PYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELING
PYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELINGPYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELING
PYFML- A TEXTUAL LANGUAGE FOR FEATURE MODELING
 
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
 

Similar to Icsme16.ppt

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
 
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
 
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
 
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
 
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
 
고급컴파일러구성론_개레_230303.pptx
고급컴파일러구성론_개레_230303.pptx고급컴파일러구성론_개레_230303.pptx
고급컴파일러구성론_개레_230303.pptxssuser1e7611
 

Similar to Icsme16.ppt (20)

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
 
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
 
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
 
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
 
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
 
ALT
ALTALT
ALT
 
고급컴파일러구성론_개레_230303.pptx
고급컴파일러구성론_개레_230303.pptx고급컴파일러구성론_개레_230303.pptx
고급컴파일러구성론_개레_230303.pptx
 

More from Yann-Gaël Guéhéneuc

Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Yann-Gaël Guéhéneuc
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Yann-Gaël Guéhéneuc
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Yann-Gaël Guéhéneuc
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Yann-Gaël Guéhéneuc
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Yann-Gaël Guéhéneuc
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...Yann-Gaël Guéhéneuc
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesYann-Gaël Guéhéneuc
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Yann-Gaël Guéhéneuc
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1Yann-Gaël Guéhéneuc
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6Yann-Gaël Guéhéneuc
 

More from Yann-Gaël Guéhéneuc (20)

Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its Consequences
 
Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
 
Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6
 
ICSOC'21
ICSOC'21ICSOC'21
ICSOC'21
 
Vissoft21.ppt
Vissoft21.pptVissoft21.ppt
Vissoft21.ppt
 
Service computation20.ppt
Service computation20.pptService computation20.ppt
Service computation20.ppt
 
Serp4 iot20.ppt
Serp4 iot20.pptSerp4 iot20.ppt
Serp4 iot20.ppt
 
Msr20.ppt
Msr20.pptMsr20.ppt
Msr20.ppt
 
Iwesep19.ppt
Iwesep19.pptIwesep19.ppt
Iwesep19.ppt
 
Icsoc20.ppt
Icsoc20.pptIcsoc20.ppt
Icsoc20.ppt
 
Icsoc18.ppt
Icsoc18.pptIcsoc18.ppt
Icsoc18.ppt
 

Recently uploaded

EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
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
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
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
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 

Recently uploaded (20)

EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
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
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
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
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 

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