Introducing
Eclipse MoDisco
(Model Driven) Reverse Engineering
Hugo Bruneliere
AtlanMod Team (Inria, Mines Nantes & LINA)

© AtlanMod - atlanmod-contact@mines-nantes.fr

1
Different Possible
Reverse Engineering Scenarios
Support for multiple
scenarios/results

Support for multiple
legacy technologies

Transformations

•Documentation
•Impact analysis

Configuration
files
Other sources

Models of the
system(s)

Generators

Databases

Discoverers

Source code

MoDisco

•Models
•Viewpoints

•Upgrade
•Migration

•Metrics
•Quality Assurance

Eclipse Modeling

© AtlanMod - atlanmod-contact@mines-nantes.fr

2
Model Driven Reverse Engineering
(MDRE) Approach
 Use models to represent and manipulate
artifacts from existing systems
Existing
Legacy System

Software artifacts :
- source code
- configuration files
- tests
- database
-…

Discover

Models

Understand

Viewpoints

© AtlanMod - atlanmod-contact@mines-nantes.fr

Transform

New
Software Artifacts

3
Model Driven Reverse Engineering
(MDRE) Approach

 Discover

Java metamodel
MoDisco
Java
Discoverer

Java source code

conforms to

Java model
JUnit3

JUnit3 code

 Navigate
© AtlanMod - atlanmod-contact@mines-nantes.fr

MoDisco
Model Browser

4
Model Driven Reverse Engineering
(MDRE) Approach

 Understand
Java model
JUnit3

Java

JUnit3

Customization

MoDisco
ModelBrowser

Facets
Models uses

 Extract
© AtlanMod - atlanmod-contact@mines-nantes.fr

JUnit3
Queries

5
Model Driven Reverse Engineering
(MDRE) Approach

 Transform
JUnit3 to JUnit4
M2M Transformation

Java model
JUnit3

Java model
JUnit4

JUnit3
Facets

 Regenerate
© AtlanMod - atlanmod-contact@mines-nantes.fr

Java source code
JUnit4 code

6
Eclipse MoDisco
An Eclipse framework to support
the elaboration of
Model Driven Reverse Engineering
solutions
 Official Eclipse Modeling project
 Open-source (EPL)
 Based on other Eclipse Modeling projects
 Released with Helios, Indigo, Juno, Kepler, …

 Supported by the OMG
 Reference implementations for several ADM
(Architecture Driven Modernization) standards:
 KDM (Knowledge Discovery Metamodel)
 SMM (Structured Metrics Metamodel)
 ASTM (Abstract Syntax Tree Metamodel)
© AtlanMod - atlanmod-contact@mines-nantes.fr

7
MoDisco: Global Architecture
Java

JSP

XML

Metamodel
Discoverer
Generator
Transfo. to KDM/UML

Metamodel
Discoverer
Generator

…

Metamodel
Discoverer
Generator

MoDisco – “Technologies” layer
Discovery
Manager, Workflow

Plug and orchestrate
transformations

Model
Browser

Navigation through
complex models

Querying
& Customization

Definition of
specific viewpoints

OMG/ADM
Standards

Pivot metamodels
(KDM, ASTM, SMM)

MoDisco – “Infrastructure” layer
Eclipse Modeling projects
© AtlanMod - atlanmod-contact@mines-nantes.fr

8
MoDisco Model Browser
 A feature-rich Ecore model browser
 Generic
(metamodelindependent)
 Customizable
(display, fonts,
colors, icons, et
c.)
 Advanced
navigation &
search
capabilities
© AtlanMod - atlanmod-contact@mines-nantes.fr

9
MoDisco Discoverer Manager
 Define and register model discoverers
– Support for different legacy technologies

© AtlanMod - atlanmod-contact@mines-nantes.fr

10
MoDisco Workflow
 Specify reverse engineering processes
– Chain discoverers, transformations & generations

© AtlanMod - atlanmod-contact@mines-nantes.fr

11
MoDisco Support for Java
 Technology-specific components for Java
 Complete
metamodel
 Corresponding
discoverer &
generator

 Transformation
to KDM
 Advanced
composite
discoverer
(Java + KDM)
© AtlanMod - atlanmod-contact@mines-nantes.fr

12
MoDisco Support for JEE
 Technology-specific components for JEE
 Complete JSP
metamodel &
corresponding
discoverer
 Discoverers for
web.xml & ejbjar.xml files
(based on XML)
+ generic
framework
 JEE queries &
facets (based
on Java)
© AtlanMod - atlanmod-contact@mines-nantes.fr

13
MoDisco Support for XML
 Technology-specific components for XML
 Generic support
(XSD- or DTDindependent)
 Complete
metamodel
(based W3C
specification)
 Corresponding
discoverer

© AtlanMod - atlanmod-contact@mines-nantes.fr

14
MoDisco in Action…

Click here
to run the
demo…

© AtlanMod - atlanmod-contact@mines-nantes.fr

15
Thanks for your attention!
 Useful links
– Eclipse Modeling Project
 http://eclipse.org/modeling/

– Eclipse MoDisco project
 http://www.eclipse.org/MoDisco

– Eclipse EMF Facet project
 http://www.eclipse.org/facet/

 AtlanMod Contact
– Hugo Bruneliere
 R&D engineer and MoDisco project co-leader
 hugo.bruneliere@inria.fr

© AtlanMod - atlanmod-contact@mines-nantes.fr

16

Introducing Eclipse MoDisco

  • 1.
    Introducing Eclipse MoDisco (Model Driven)Reverse Engineering Hugo Bruneliere AtlanMod Team (Inria, Mines Nantes & LINA) © AtlanMod - atlanmod-contact@mines-nantes.fr 1
  • 2.
    Different Possible Reverse EngineeringScenarios Support for multiple scenarios/results Support for multiple legacy technologies Transformations •Documentation •Impact analysis Configuration files Other sources Models of the system(s) Generators Databases Discoverers Source code MoDisco •Models •Viewpoints •Upgrade •Migration •Metrics •Quality Assurance Eclipse Modeling © AtlanMod - atlanmod-contact@mines-nantes.fr 2
  • 3.
    Model Driven ReverseEngineering (MDRE) Approach  Use models to represent and manipulate artifacts from existing systems Existing Legacy System Software artifacts : - source code - configuration files - tests - database -… Discover Models Understand Viewpoints © AtlanMod - atlanmod-contact@mines-nantes.fr Transform New Software Artifacts 3
  • 4.
    Model Driven ReverseEngineering (MDRE) Approach  Discover Java metamodel MoDisco Java Discoverer Java source code conforms to Java model JUnit3 JUnit3 code  Navigate © AtlanMod - atlanmod-contact@mines-nantes.fr MoDisco Model Browser 4
  • 5.
    Model Driven ReverseEngineering (MDRE) Approach  Understand Java model JUnit3 Java JUnit3 Customization MoDisco ModelBrowser Facets Models uses  Extract © AtlanMod - atlanmod-contact@mines-nantes.fr JUnit3 Queries 5
  • 6.
    Model Driven ReverseEngineering (MDRE) Approach  Transform JUnit3 to JUnit4 M2M Transformation Java model JUnit3 Java model JUnit4 JUnit3 Facets  Regenerate © AtlanMod - atlanmod-contact@mines-nantes.fr Java source code JUnit4 code 6
  • 7.
    Eclipse MoDisco An Eclipseframework to support the elaboration of Model Driven Reverse Engineering solutions  Official Eclipse Modeling project  Open-source (EPL)  Based on other Eclipse Modeling projects  Released with Helios, Indigo, Juno, Kepler, …  Supported by the OMG  Reference implementations for several ADM (Architecture Driven Modernization) standards:  KDM (Knowledge Discovery Metamodel)  SMM (Structured Metrics Metamodel)  ASTM (Abstract Syntax Tree Metamodel) © AtlanMod - atlanmod-contact@mines-nantes.fr 7
  • 8.
    MoDisco: Global Architecture Java JSP XML Metamodel Discoverer Generator Transfo.to KDM/UML Metamodel Discoverer Generator … Metamodel Discoverer Generator MoDisco – “Technologies” layer Discovery Manager, Workflow Plug and orchestrate transformations Model Browser Navigation through complex models Querying & Customization Definition of specific viewpoints OMG/ADM Standards Pivot metamodels (KDM, ASTM, SMM) MoDisco – “Infrastructure” layer Eclipse Modeling projects © AtlanMod - atlanmod-contact@mines-nantes.fr 8
  • 9.
    MoDisco Model Browser A feature-rich Ecore model browser  Generic (metamodelindependent)  Customizable (display, fonts, colors, icons, et c.)  Advanced navigation & search capabilities © AtlanMod - atlanmod-contact@mines-nantes.fr 9
  • 10.
    MoDisco Discoverer Manager Define and register model discoverers – Support for different legacy technologies © AtlanMod - atlanmod-contact@mines-nantes.fr 10
  • 11.
    MoDisco Workflow  Specifyreverse engineering processes – Chain discoverers, transformations & generations © AtlanMod - atlanmod-contact@mines-nantes.fr 11
  • 12.
    MoDisco Support forJava  Technology-specific components for Java  Complete metamodel  Corresponding discoverer & generator  Transformation to KDM  Advanced composite discoverer (Java + KDM) © AtlanMod - atlanmod-contact@mines-nantes.fr 12
  • 13.
    MoDisco Support forJEE  Technology-specific components for JEE  Complete JSP metamodel & corresponding discoverer  Discoverers for web.xml & ejbjar.xml files (based on XML) + generic framework  JEE queries & facets (based on Java) © AtlanMod - atlanmod-contact@mines-nantes.fr 13
  • 14.
    MoDisco Support forXML  Technology-specific components for XML  Generic support (XSD- or DTDindependent)  Complete metamodel (based W3C specification)  Corresponding discoverer © AtlanMod - atlanmod-contact@mines-nantes.fr 14
  • 15.
    MoDisco in Action… Clickhere to run the demo… © AtlanMod - atlanmod-contact@mines-nantes.fr 15
  • 16.
    Thanks for yourattention!  Useful links – Eclipse Modeling Project  http://eclipse.org/modeling/ – Eclipse MoDisco project  http://www.eclipse.org/MoDisco – Eclipse EMF Facet project  http://www.eclipse.org/facet/  AtlanMod Contact – Hugo Bruneliere  R&D engineer and MoDisco project co-leader  hugo.bruneliere@inria.fr © AtlanMod - atlanmod-contact@mines-nantes.fr 16