modisco eclipsecon2010

20
1 Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved How to Deal With Your IT Legacy? Reverse Engineering with MoDisco... Hugo Brunelière INRIA / AtlanMod team Frédéric Madiot Mia-Software

Upload: fmadiot

Post on 11-May-2015

5.911 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: MoDisco EclipseCon2010

1Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved

How to Deal With Your IT Legacy? Reverse Engineering with MoDisco...

Hugo Brunelière INRIA / AtlanMod teamFrédéric Madiot Mia-Software

Page 2: MoDisco EclipseCon2010

2

Overview

Support multipleLegacy Technologies

Source code

Databases

Configurationfiles

Other sources

Support multipleOutputs

• Quality Assurance• Understanding• Refactoring• Technical Migration

Support multipleModernization Scenarios

Documentation

Models

New system

Metrics

a Model-Driven platform

for Software Modernization projects

Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved

Page 3: MoDisco EclipseCon2010

3

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

Approach

ExistingSoftware System Discover

Models

Models to represent and manipulate

artifacts of existing systems

Understand

Viewpoints

Transform

NewSoftware System

Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved

Page 4: MoDisco EclipseCon2010

4

Supported Technologies

Infrastructure

Architecture

Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved

Java

MetamodelDiscovererGenerator

XML

MetamodelDiscoverer

. . .

Model Browser

Navigation through

complex models

Customization & Extensibility

Definition ofspecific

Viewpoints

DiscoveryManager

Plug and orchestrateartifacts

transformators

Page 5: MoDisco EclipseCon2010

5

Legacy applications in Java ?

– Samples• LinkedIn > 1M lines of java code• Texas Health (TIERS application) > 2.5M lines of java code• CruiseControl > 5M lines of java code• Eclipse (Galileo) > 24M lines of java code• SAP (NetWeaver) > 24M lines of java code (255k classes)

– Continuous evolution• JDK versions x Frameworks x Design Patterns

Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved

From the moment one writes a line of code, it becomes legacy, and that legacy accumulates (Grady Booch)

Page 6: MoDisco EclipseCon2010

6

Java metamodel :

-126 types-173 references

Example :

Java model of draw2d :- org.eclipse.draw2d- org.eclipse.draw2d.tests

447 Java classes 144 374 nodes !

Complex models ?

Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved6

Page 7: MoDisco EclipseCon2010

7Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved

MoDisco Demo

draw2d Java source code

Models

MoDiscoModelBrowser

draw2d java EMF model

java.ecore

conforms to

MoDiscoJava

Discoverer

Demo

Page 8: MoDisco EclipseCon2010

8

Find Patterns in your Models !

Define and dynamically plug your own

Facets & UI CustomizationsExample

Decorate the Java model of org.eclipse.draw2d.tests

To highlight JUnit patterns:

-Test suite-Test case-Test

Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved8

Page 9: MoDisco EclipseCon2010

9

MoDiscoMoDiscoModelBrowserModelBrowser

draw2d java EMF model

conforms to

Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved

MoDisco Demo

Models

java.ecore

JUnit3Customization

customizes

JUnit3Queries

uses

Demo

Page 10: MoDisco EclipseCon2010

10Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved

Query

Java query

XPathquery

EMFQueryquery

OCL query

ATL query . . .

MoDisco Demo

Page 11: MoDisco EclipseCon2010

11

MoDiscoMoDiscoModelBrowserModelBrowser

draw2d java EMF model

conforms to

Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved

MoDisco Demo

Models

java.ecore

JUnit3Customization

customizes

JUnit3Queries

uses

JUnit3Facets

extends

uses

Demo

Page 12: MoDisco EclipseCon2010

12

draw2d java EMF model

conforms to

Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved

MoDisco Demo

Models

java.ecore

JUnit3Queries

JUnit3Facets

extends

uses

testsuite.ecore

conforms to

draw2d testsuite EMF model

uses

MoDiscoModelBrowserDemo

Page 13: MoDisco EclipseCon2010

13

Transform and Regenerate …

ClassDeclarationRayTest

ClassDeclarationjunit.framework.TestCase

superClass

MethodDeclarationtest_length()bodyDeclarations

ImportDeclarationimports

importedElement

MoDiscoJava

Discoverer

Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved

Example : from JUnit3 to JUnit4

Page 14: MoDisco EclipseCon2010

14

Transform and Regenerate …

ClassDeclarationRayTest

ClassDeclarationjunit.framework.TestCase

superClass

MethodDeclarationtest_length()bodyDeclarations

ImportDeclarationimports

importedElement

MoDiscoJava

Discoverer

Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved

Example : from JUnit3 to JUnit4

Page 15: MoDisco EclipseCon2010

15

Transform and Regenerate …

ClassDeclarationRayTest

MethodDeclarationtest_length()bodyDeclarations

MoDiscoJava

Discoverer

Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved

Example : from JUnit3 to JUnit4

Page 16: MoDisco EclipseCon2010

16

Transform and Regenerate …

ClassDeclarationRayTest

MethodDeclarationtest_length()bodyDeclarations

MoDiscoJava

Discoverer

ClassDeclarationorg.junit.Test

Annotationannotations

type

Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved

Example : from JUnit3 to JUnit4

Page 17: MoDisco EclipseCon2010

17

Transform and Regenerate …

ClassDeclarationRayTest

MethodDeclarationtest_length()bodyDeclarations

ImportDeclarationimports

MoDiscoJava

Discoverer

ClassDeclarationorg.junit.Test

Annotationannotations

type

Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved

Example : from JUnit3 to JUnit4

Page 18: MoDisco EclipseCon2010

18

Transform and Regenerate …

ClassDeclarationRayTest

MethodDeclarationtest_length()bodyDeclarations

ImportDeclarationimports

MoDiscoJava

Discoverer

MoDiscoJava

Generator

ClassDeclarationorg.junit.Test

Annotationannotations

type

Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved

Example : from JUnit3 to JUnit4

Page 19: MoDisco EclipseCon2010

19

Who is involved in MoDisco ?

• The MoDisco team– 6 committers

• 1 from INRIA• 5 from Mia-Software

– Several regular active contributors

• Supported by the OMG (ADM TF)– Reference implementations of standards from the – Architecture Driven Modernization Task Force

• KDM (Knowledge Discovery Metamodel)• SMM (Software Metrics Metamodel)

• Supported by the European Commission– Project initiated by INRIA in the context of – the MODELPLEX IST-FP6 European Project

24/03/10 Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved

Page 20: MoDisco EclipseCon2010

20

MoDisco

Questions ?www.eclipse.org/gmt/modisco

Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved