More Related Content Similar to MoDisco Eclipse-OMG Symp 2010 (20) MoDisco Eclipse-OMG Symp 20101. Using OMG/SMM and Eclipse/MoDisco
to Facilitate the
Eclipse Development Process
2nd Biannual Symposium
Eclipse Open Source Software & OMG Open Specifications
Tuesday, June 22, 2010, Minneapolis, MN USA
Hugo Bruneliere, AtlanMod Team (INRIA & EMN)
Frédéric Madiot, Mia-Software
Jordi Cabot, AtlanMod Team (INRIA & EMN)
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
2. Mia-Software
Mia-Software is a Software Company
80 customers, in 10 different countries
Eclipse Foundation member (5 committers)
Develops Model-Driven solutions since 1998
Mia-Insight :
Quality Analysis
Legacy Understanding
Application Mining
Mia-Studio
Model-to-Model transformation
Model-to-Text transformation
Eclipse/MoDisco
IT Model-Driven Modernization
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
3. Mia-Software
Mia-Software is a subsidiary of Sodifrance
French leader in IT Modernization
900 employees
11 offices in France, Belgium and Tunisia
R&D team dedicated to IT Modernization
> 70 successful IT Modernization projects
VB6 to JEE/Ajax/JSF
Oracle Forms to JEE
VB6 to .Net
ABAL to .Net
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
4. AtlanMod Team
AtlanMod is a research team
Joint team between INRIA & École des Mines de Nantes (France)
Co-lead by Jean Bézivin and Jordi Cabot
Around 12 members
Research focus on:
MDE core technologies
metamodeling, model transformations, model weaving, megamodeling,…
MDE applications
reverse engineering, interoperability
Organizers of the 1st full postgraduate program on MDE
http://www.emn.fr/z-info/atlanmod/index.php/The_MDE_Diploma
Commitment to Eclipse open-source projects:
ATL, TCS, AM3, AMW, MoDisco, …
Strong links with several software development companies
Participation in national and international projects
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
5. MoDisco Overview
An Eclipse platform for software modernization projects
http://www.eclipse.org/MoDisco/
Created by AtlanMod in 2008
MoDisco stands for Model Discovery
Eclipse Modeling project (under MDT)
Open-source (EPL licence)
Based on EMP technologies :
EMF (Eclipse Modeling Framework)
M2M (Model-to-Model transformation)
M2T (Model-to-Text transformations)
Supported by the OMG
Eclipse implementations for
KDM (Knowledge Discovery Metamodel)
SMM (Structured Metrics Metamodel)
Co-funded by the European Community
Modelplex research project
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
6. MoDisco Approach
Model-Driven platform
for Software Modernization projects
Existing
Discover Understand Transform
Software System
Software artifacts :
New
- source code Models Viewpoints
- configuration files Software System
- tests
- database
-…
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
7. MoDisco Architecture
Supported Technologies
Java ...
XML
Metamodel
Metamodel
Discoverer
Discoverer
Generator
Generator
Transfo. to KDM
Discovery Model Customization OMG/ADM
Manager Browser & Extensibility Standards
Plug and orchestrate Navigation Definition of Pivot
artifacts through specific Metamodels
transformators complex models Viewpoints (SMM & KDM)
Infrastructure
Eclipse Modeling projects
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
8. ADM Task Force
Architecture-Driven Modernization task force
Mission:
Create specifications and promote industry consensus on modernization of
existing applications.
What is ADM?
Process of understanding and evolving existing software assets for:
Software improvement
Modifications
Interoperability
Refactoring
Restructuring
Reuse
Porting
Migration
Translation into another language
Enterprise application integration
Service-oriented architecture
MDA migration
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
9. ADM Specifications
Knowledge Discovery Metamodel (KDM)
Addresses the need to integrate various software tools that
analyze ''existing software systems''.
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
10. ADM Specifications
Structured Metrics Metamodel (SMM)
Representing measurement information related to any model
structured information with an initial focus on software
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
11. MoDisco tools for ADM Specifications
MoDisco 0.8 (Helios version)
KDM
EMF implementation for KDM
Ecore file
Generated Java code
KDMSource discoverer
Creates a KDMSource model from the content of a directory
Java to KDM transformation
Creates a KDMCore model from a Java model
KDM to UML2 transformation
Creates a UML2 model from a KDMCore model
SMM
EMF implementation for SMM
Ecore file
Generated Java code
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
12. MoDisco tools for ADM specifications
MoDisco 0.9 (Indigo version)
Quality Model editor
To define a quality model
By importing or defining
quality characteristics (SMM
Measure Category)
By importing or defining
metrics (SMM Measure)
By setting metrics to quality
characteristics
SMM Measurement to Eclipse
Markers
To visualize the result of a QA
analysis (SMM Measurement)
in the Eclipse Problems View
Property file discoverer
Creates a KDM model
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
13. Measuring Eclipse Plug-ins Quality
Context
An Eclipse plug-in is composed of several different kinds of
artifacts
Java source code
Configuration files:
Plugin.xml
MANIFEST.MF
plugin.properties
build.properties
.project
Other files:
about.html
messages.properties
Icons, models, …
Eclipse tools already provide lots of automated validation rules
But… there are still important rules to check manually
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
14. Measuring Eclipse Plug-ins Quality
Examples of non-automated rules
Eclipse foundation requirements (yearly simultaneous release)
Version number ends with « qualifier »
Source code must use ICU4J classes
The project must contain an « about.html » file
Packages name should start with the plug-in Id
Plug-in must not contain JARs files
Plug-in should contain only one « message.properties » and « Message.java » files
Mia-Software internal rules
“PLUGIN_ID” variable of “Activator.java” should be initialized with the plug-in Id
Plug-in Id and Project name should be equal
«Bundle-Vendor» property value of « MANIFEST.MF » should be « %providerName »
« plugin.properties » should declare a « providerName » property
«Bundle-Name» property value of « MANIFEST.MF » should be « %pluginName »
« plugin.properties » should declare a « pluginName » property
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
15. Measuring Eclipse Plug-ins Quality
Automation of QA Analysis
Eclipse Rule 1
Rule 2
Rule 3
Rule 4
Plugin project
.project
Eclipse
Problems View
MANIFEST.MF
plugin.properties
build.properties
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
16. Measuring Eclipse Plug-ins Quality
Solutions
Use Eclipse APIs
Eclipse provides APIs to manipulate projects and plugins
org.eclipse.core (Eclipse SDK)
org.eclipse.pde (Plug-in Development Environment)
org.eclipse.osgi (OSGI tooling)
Requires a deep understanding of these APIs
Some required APIs are «internal»
PDEProject, IManifestHeader, …
Provide a generic solution based on MoDisco and SMM
Use EMF models to represent Eclipse plug-ins
KDM Source model for the structure of the project
Java model for the source code
DSLs for other artifacts
Use SMM to represent QA results
Requires only EMF APIs to implement the rules
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
17. Measuring Eclipse Plug-ins Quality
Using MoDisco and SMM
Eclipse Plugin models Rule 1
Rule 2
Rule 3
Rule 4
KDMSource model
Plugin project
.project
Eclipse
Problems View
MANIFEST.MF
plugin.properties
build.properties
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
18. Measuring Eclipse Plug-ins Quality
KDMSource model of the project
Automatically created by org.eclipse.gmt.modisco.kdm.source.discoverer plugin
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
19. Measuring Eclipse Plug-ins Quality
Using MoDisco and SMM
Eclipse Plugin models Rule 1
Rule 2
Rule 3
Rule 4
KDMSource model
Plugin project
Java model
.project
Eclipse
Problems View
MANIFEST.MF
plugin.properties
build.properties
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
20. Measuring Eclipse Plug-ins Quality
Java model of the Java source code
Automatically created by org.eclipse.gmt.modisco.java.discoverer plugin
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
21. Measuring Eclipse Plug-ins Quality
Using MoDisco and SMM Declare
QA Rules
Eclipse Plugin models Rule 1
Rule 2
Rule 3
SMM Measure
Rule 4
KDMSource model model
Plugin project
Java model
XML model
.project
Eclipse
Problems View
MANIFEST.MF Manifest model
plugin.properties KDMCode model
build.properties KDMCode model
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
22. Measuring Eclipse Plug-ins Quality
Quality Model editor
Assists in defining the SMM measures
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
23. Measuring Eclipse Plug-ins Quality
Using MoDisco and SMM Declare
QA Rules
Eclipse Plugin models Rule 1
Rule 2
Rule 3
SMM Measure
Rule 4
KDMSource model model
Plugin project
Java model
XML model SMM Measurement
.project model Eclipse
Problems View
MANIFEST.MF Manifest model
Implement
plugin.properties KDMCode model
QA Rules
build.properties KDMCode model
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
24. Measuring Eclipse Plug-ins Quality
SMM Measurements to Eclipse Markers
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
25. Measuring Eclipse Plug-ins Quality
SMM Measurements can be exported to other tools
Example: Sonar
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
26. Measuring Eclipse Plug-ins Quality
Benefits of the approach
Declaring the rules only requires functional skills (SMM Editor)
Which quality characteristics ?
Which metrics ?
On which scope ?
Implementing the rules only requires:
SMM metamodel knowledge
EMF APIs knowledge
Leverage existing tools
MoDisco metamodels and discoverers
SMM-compliant tools
The result can be exported to other tools
Excel spreadsheets
QA portals (ex: Sonar)
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
27. Conclusion
Mutual benefits in OMG / Eclipse collaboration
For Eclipse
Standard-compliance is a key factor for tools
Good implementation of standards discourage tools heterogeneity
OMG is a well established standardization organization
OMG standards implementations facilitate the adoption of Eclipse tools
For OMG
Standard-compliant tools help in demonstrating the interest of the standard
Tools users and implementors give feedback to improve the standard
Eclipse is the most adopted development platform
Eclipse tools facilitate the diffusion of OMG standards
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved