Gerson Sunyé
Naomod — Nantes Software Modeling Group
(with Eclipse Modisco)
Gerson Sunyé
Naomod — Nantes Software Modeling Group
Reverse Engineering is the process of examining an already implemented software system to represent it in a different form/formalism and at a higher abstraction level
E. J. Chikofsky and J. H. Cross. Reverse Engineering and Design Recovery: A Taxonomy. IEEE Software, 7(1):13–17, 1990
Analysis platforms, language workbenches
OMG’s Architecture Driven Modernization
Programming languages (Java, C++)
Goals: migration, integration, analysis
Some general modeling (commercial) tools
Few generic MDRE solutions…
Are we able to deploy our approach on practical scenarios / systems of various technical natures?
Are we able to adapt and reuse our approach / components as part of other (MDRE) solutions?
Are we able to use our approach in the context of large-scale scenarios / systems?
MDRE framework architecture
Reuse and integration examples
Technology-specific components
Technology-independent bricks
Model Driven Reverse Engineering = Model Discovery + Model Understanding
An Eclipse framework to support the elaboration of Model Driven Reverse Engineering solutions
Open-source (EPL)
Based on other Eclipse Modeling projects
Released with Helios, Indigo, Juno, Kepler, Luna, Mars…
Reference implementations for several ADM (Architecture Driven Modernization) standards:
Knowledge Discovery Metamodel
Structured Metrics Metamodel
Abstract Syntax Tree Metamodel
Generic (metamodel-independent)
Customizable (display, fonts, colors, icons, etc.)
Advanced navigation & search capabilities
Define and register model discoverers
Support for different legacy technologies
Chain discoverers, transformations & generations
Complete metamodel
Corresponding discoverer & generator
Transformation to KDM
Advanced composite discoverer (Java + KDM)
Complete JSP metamodel & corresponding discoverer
Discoverers for web.xml & ejb-jar.xml files (based on XML) + generic framework
JEE queries & facets (based on Java)
Generic support (XSD- or DTD- independent)
Complete metamodel (based W3C specification)
Corresponding discoverer
Eclipse Modeling Project: http://eclipse.org/modeling/
Eclipse MoDisco project: http://www.eclipse.org/MoDisco
Eclipse EMF Facet project: http://www.eclipse.org/facet/
Hugo Bruneliere
Research engineer - MoDisco project co-leader