MoDisco Eclipse-OMG Symp 2010
-
Upload
fmadiot -
Category
Technology
-
view
1.803 -
download
1
description
Transcript of MoDisco Eclipse-OMG Symp 2010
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
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)
Using OMG/SMM and Eclipse/MoDisco
to Facilitate the
Eclipse Development Process
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
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-StudioModel-to-Model transformation
Model-to-Text transformation
Eclipse/MoDiscoIT Model-Driven Modernization
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
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
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
MoDisco Overview
An Eclipse platform for software modernization projects
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
http://www.eclipse.org/MoDisco/
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
Software artifacts :
- source code
- configuration files
- tests
- database
- …
Existing
Software SystemDiscover
Models
Model-Driven platform
for Software Modernization projects
Understand
Viewpoints
Transform
New
Software System
MoDisco Approach
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
Supported Technologies
Infrastructure
MoDisco Architecture
Java Metamodel
Discoverer
Generator
Transfo. to KDM
XMLMetamodel
Discoverer
Generator
. . .
Model
Browser
Navigation
through
complex models
Customization
& Extensibility
Definition of
specific
Viewpoints
Discovery
Manager
Plug and orchestrate
artifacts
transformators
OMG/ADM
Standards
Pivot
Metamodels
(SMM & KDM)
Eclipse Modeling projects
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
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
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
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
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
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
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
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
Automation of QA Analysis
Eclipse
Measuring Eclipse Plug-ins Quality
Plugin project
.project
MANIFEST.MF
plugin.properties
build.properties
Rule 1
Rule 2
Rule 3
Rule 4
Eclipse
Problems View
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
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
Using MoDisco and SMM
Eclipse Plugin models
Measuring Eclipse Plug-ins Quality
Plugin project
.project
MANIFEST.MF
plugin.properties
build.properties
KDMSource model
Rule 1
Rule 2
Rule 3
Rule 4
Eclipse
Problems View
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
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
Using MoDisco and SMM
Eclipse Plugin models
Measuring Eclipse Plug-ins Quality
Java modelPlugin project
.project
MANIFEST.MF
plugin.properties
build.properties
KDMSource model
Rule 1
Rule 2
Rule 3
Rule 4
Eclipse
Problems View
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
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
Using MoDisco and SMM
Eclipse Plugin models
Measuring Eclipse Plug-ins Quality
Java modelPlugin project
.project
MANIFEST.MF
plugin.properties
build.properties
XML model
Manifest model
KDMCode model
KDMCode model
KDMSource modelSMM Measure
model
Rule 1
Rule 2
Rule 3
Rule 4
Eclipse
Problems View
Declare
QA Rules
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
Measuring Eclipse Plug-ins Quality
Quality Model editor
Assists in defining the SMM measures
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
Using MoDisco and SMM
Eclipse Plugin models
Measuring Eclipse Plug-ins Quality
Java modelPlugin project
.project
MANIFEST.MF
plugin.properties
build.properties
XML model
Manifest model
KDMCode model
KDMCode model
KDMSource model
SMM Measurement
model
SMM Measure
model
Rule 1
Rule 2
Rule 3
Rule 4
Eclipse
Problems View
Implement
QA Rules
Declare
QA Rules
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
Measuring Eclipse Plug-ins Quality
SMM Measurements to Eclipse Markers
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
Measuring Eclipse Plug-ins Quality
SMM Measurements can be exported to other tools
Example: Sonar
Copyright © 2010 Mia-Software & AtlanMod.
All Rights Reserved
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
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