modisco at eclipse day paris 2010

34
Copyright © 2010 Mia-Software All Rights Reserved Frédéric Madiot, Mia-Software Grégoire Dupé, Mia-Software Analyze your Software Assets With MoDisco

Upload: fmadiot

Post on 11-May-2015

3.717 views

Category:

Technology


0 download

DESCRIPTION

Presentation of MoDisco project at Eclispe Day Paris 2010

TRANSCRIPT

Page 1: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Frédéric Madiot, Mia-Software

Grégoire Dupé, Mia-Software

Analyze your Software AssetsWith MoDisco

Page 2: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software 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 : Legacy UnderstandingApplication Mining

Mia-QualityQuality Analysis

Mia-StudioModel-to-Model transformationModel-to-Text transformation

Eclipse projectsMoDiscoEMF Facet

Page 3: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software 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 at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

AtlanMod Team

AtlanMod is a research team

Joint team between INRIA & École des Mines de Nantes (France)

Founded by Jean Bézivin

Around 12 members, lead by Jordi Cabot

Research focus on:MDE core technologies

metamodeling, model transformations, model weaving, megamodeling,…

MDE applicationsreverse 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 at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

About

Modernization…

Page 6: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Software Modernization

Legacy Technologies

Source code

Databases

Configurationfiles

Other sources

Output

• Quality Analysis

• Understanding

• Code Refactoring

• Technical Migration

Scenarios

Documentation

Models

New system

Metrics

Page 7: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Modeling Software Artifacts

Source Code can be

represented with Models

This is nota UML model

!

Page 8: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Software artifacts : - source code

- configuration files - tests

- database - …

ExistingSoftware System

Discover

Models

use Models to represent and manipulate

artifacts of existing systems

Understand

Viewpoints

Transform

NewSoftware System

MoDisco

Page 9: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

MoDisco Project

Official Eclipse Modeling project (in MDT)Open-source (EPL licence)Based on other Eclipse Modeling projectsReleased with Helios

Supported by the OMG Eclipse implementations for

KDM (Knowledge Discovery Metamodel) SMM (Structured Metrics Metamodel)

http://www.eclipse.org/MoDisco/

an Eclipse platform to support

Software Modernization projects

Page 10: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

What can you do with

MoDisco ?

Page 11: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Quality Analysis

Your own rules

ComplexityMaintenability

UsabilityEfficiency

Portabilityetc

Existingapplication

Check your coding norms Control multi-technos rules Select your output format

MoDisco

Calculate metrics from your code

13 931

42

Model of the existing

application

Model of the metrics

Page 12: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Understanding

Your own rules

What to extract from the code

How to representthe information

Modeling tools

ExistingApplication

Detect specific patterns Generate view-points Respect your modelling norms

Documentation

Extract custom viewpoints out of your code

MoDisco

Model of the existing

application

Model of the viewpoint

(UML or DSL)

Page 13: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Code Refactoring

Your own rules

What to change+

How to change

Existing application

Re-apply coding norms Upgrade component versions Replace coding patterns

Improve existing applications

MoDisco

Improvedapplication

Model of the existing

application

Model of the improved

application

Page 14: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Technical Migration

Your own rules

MigrationStrategy

Migratedapplication

Existingapplication

MoDisco

Model of the existing

application

Model of the migrated

application

Transform to new technologies

Page 15: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

the MoDisco

Toolbox

Page 16: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Supported Technologies

Infrastructure

MoDisco Architecture

Java Metamodel Discoverer Generator Transfo. to KDM

XML Metamodel Discoverer Generator

. . .

Model Browser

Navigation through

complex models

Customization & Extensibility

Definition ofspecific

Viewpoints

DiscoveryManager

Plug and orchestratetransformations

Eclipse Modeling projects

JSP Metamodel Discoverer Generator

OMG/ADMStandards

PivotMetamodels

(SMM & KDM)

Page 17: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

ADM Specifications

Knowledge Discovery Metamodel (KDM)

To represent ''existing software systems'‘

Facilitates the integration of software analysis tools

Page 18: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

ADM Specifications

Structured Metrics Metamodel (SMM)

To represent measurements calculated on software systems

Page 19: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Supported Technologies

Infrastructure

MoDisco Architecture

Java Metamodel Discoverer Generator Transfo. to KDM

XML Metamodel Discoverer Generator

. . .

Model Browser

Navigation through

complex models

Customization & Extensibility

Definition ofspecific

Viewpoints

DiscoveryManager

Plug and orchestratetransformations

Eclipse Modeling projects

JSP Metamodel Discoverer Generator

OMG/ADMStandards

PivotMetamodels

(SMM & KDM)

Model Browser

Navigation through

complex models

Page 20: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

EMF Model Browser

Spy On Your Models

Page 21: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Supported Technologies

Infrastructure

MoDisco Architecture

Java Metamodel Discoverer Generator Transfo. to KDM

XML Metamodel Discoverer Generator

. . .

Model Browser

Navigation through

complex models

Customization & Extensibility

Definition ofspecific

Viewpoints

DiscoveryManager

Plug and orchestratetransformations

Eclipse Modeling projects

JSP Metamodel Discoverer Generator

OMG/ADMStandards

PivotMetamodels

(SMM & KDM)

Page 22: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Extensibility & Customization

Define Dynamic Viewpoints on Your Models

Page 23: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Supported Technologies

Infrastructure

MoDisco Architecture

Java Metamodel Discoverer Generator Transfo. to KDM

XML Metamodel Discoverer Generator

. . .

Model Browser

Navigation through

complex models

Customization & Extensibility

Definition ofspecific

Viewpoints

DiscoveryManager

Plug and orchestratetransformations

Eclipse Modeling projects

JSP Metamodel Discoverer Generator

OMG/ADMStandards

PivotMetamodels

(SMM & KDM)

Page 24: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

JEE support

Extract Models from Source code

Generate Source Code from Models

• Java files+ annotations (ejb, jpa, servlet)• JSP pages• web.xml• ejb-jar.xml EMF models

KDM model

Page 25: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Supported Technologies

Infrastructure

MoDisco Architecture

Java Metamodel Discoverer Generator Transfo. to KDM

XML Metamodel Discoverer Generator

. . .

Model Browser

Navigation through

complex models

Customization & Extensibility

Definition ofspecific

Viewpoints

DiscoveryManager

Plug and orchestratetransformations

Eclipse Modeling projects

JSP Metamodel Discoverer Generator

OMG/ADMStandards

PivotMetamodels

(SMM & KDM)

Page 26: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Discovery Manager

Plug other parsers

MoDisco

Model of the existing

application

Mia-Insight Cobol Natural VB C DELPHI NSDK/NATSTAR SQL, PLSQL PL1 RPG FORTRAN Smalltalk Powerbuilder OracleForms Forte, Uniface Cool:Gen DL1 DB2etc…

Page 27: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Model-DrivenReverse-Engineering

of Eclipse plug-ins

Page 28: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Anatomy of an Eclipse 3.x Plug-in

MANIFEST.MF

plugin.xml

Source code

build.properties

plugin.properties

.project

.classpath

files

folders

Eclipse Plug-in

Heterogeneity !

Page 29: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Demo

Using EMF to describe a Plug-in

MANIFEST.MF

plugin.xml

Source code

build.properties

plugin.properties

.project

.classpath

files

folders

Eclipse Plug-in

Project’s structure(KDMSource)

.project (XML)

.classpath (XML)

manifest

build.properties(KDMCore)

plugin(eclipseplugin)

Java source code(Java)

plugin.properties(KDMCore)

extensions (XML)Homogeneity !

Page 30: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Understanding

View Java elements which are specific to Eclipse

Use EMF tools to detect Eclipse patterns

Highlight the model elements related to these patterns

ExistingPlug-in

Model of the Plug-in

Demo

Viewpointon the Plug-in

Page 31: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Quality Analysis

Check plug-in development rules

Use EMF tools to detect problems in the model of the Plug-in

Store violations as Measurements into a SMM model

Inject violations into the Problem View

ExistingPlug-in

Model of the Plug-in

Model of the violations Problem View

Demo

Page 32: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Refactoring

Example:

Class must use UCI4J classes (yearly simultaneous release rule)

Detect all the references to 19 prohibited classes:• java.lang.Character• java.text.DateFormat• java.util.Calendar• etc…

Replace them by corresponding ICU4J classes

TransformedPlug-in

ExistingPlug-in

Model of the existing

Plug-in

Model of the migrated

Plug-in

Page 33: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Build Configuration

Example:

Improve build strategies

B3 Model(build configuration)

Plug-ins to build

Model of plugins to build

Team information(CVS, SVN, etc)

Update sites(p2)

Model of update sites content

Resolved plug-insdependencies

Build resolution strategies(constraints solver)

Cartography

IDM++ Research Project (ANR) -> Sept 2011

Page 34: MoDisco at Eclipse Day Paris 2010

Copyright © 2010 Mia-Software All Rights Reserved

Thank you !

Company

http://www.mia-software.com/

http://www.sodifrance.fr/

Eclipse projects

http://www.eclipse.org/MoDisco/

http://www.eclipse.org/modeling/emft/facet/

Blog

http://fmadiot.blogspot.com/