MoDisco Eclipse-OMG Symp 2010

27
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

description

Presentation of MoDisco and its support of OMG/ADM specifications.Illustration with an example of Eclipse plug-ins development rules controlled with MoDisco and SMM.

Transcript of MoDisco Eclipse-OMG Symp 2010

Page 1: 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

Page 2: MoDisco Eclipse-OMG Symp 2010

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

Page 3: MoDisco Eclipse-OMG Symp 2010

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

Page 4: MoDisco Eclipse-OMG Symp 2010

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

Page 5: MoDisco Eclipse-OMG Symp 2010

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/

Page 6: MoDisco Eclipse-OMG Symp 2010

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

Page 7: MoDisco Eclipse-OMG Symp 2010

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

Page 8: MoDisco Eclipse-OMG Symp 2010

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

Page 9: MoDisco Eclipse-OMG Symp 2010

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''.

Page 10: MoDisco Eclipse-OMG Symp 2010

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

Page 11: MoDisco Eclipse-OMG Symp 2010

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

Page 12: MoDisco Eclipse-OMG Symp 2010

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

Page 13: MoDisco Eclipse-OMG Symp 2010

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

Page 14: MoDisco Eclipse-OMG Symp 2010

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

Page 15: MoDisco Eclipse-OMG Symp 2010

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

Page 16: MoDisco Eclipse-OMG Symp 2010

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

Page 17: MoDisco Eclipse-OMG Symp 2010

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

Page 18: MoDisco Eclipse-OMG Symp 2010

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

Page 19: MoDisco Eclipse-OMG Symp 2010

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

Page 20: MoDisco Eclipse-OMG Symp 2010

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

Page 21: MoDisco Eclipse-OMG Symp 2010

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

Page 22: MoDisco Eclipse-OMG Symp 2010

Copyright © 2010 Mia-Software & AtlanMod.

All Rights Reserved

Measuring Eclipse Plug-ins Quality

Quality Model editor

Assists in defining the SMM measures

Page 23: MoDisco Eclipse-OMG Symp 2010

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

Page 24: MoDisco Eclipse-OMG Symp 2010

Copyright © 2010 Mia-Software & AtlanMod.

All Rights Reserved

Measuring Eclipse Plug-ins Quality

SMM Measurements to Eclipse Markers

Page 25: MoDisco Eclipse-OMG Symp 2010

Copyright © 2010 Mia-Software & AtlanMod.

All Rights Reserved

Measuring Eclipse Plug-ins Quality

SMM Measurements can be exported to other tools

Example: Sonar

Page 26: MoDisco Eclipse-OMG Symp 2010

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)

Page 27: MoDisco Eclipse-OMG Symp 2010

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