Más contenido relacionado
La actualidad más candente (20)
Similar a MoDisco EclipseCon2010 (20)
MoDisco EclipseCon2010
- 1. How to Deal With Your IT Legacy?
Reverse Engineering with MoDisco...
Hugo Brunelière INRIA / AtlanMod team
Frédéric Madiot Mia-Software
1
Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved
- 2. Overview
a Model-Driven platform
for Software Modernization projects
Support multiple Support multiple
Legacy Technologies Support multiple Outputs
Modernization Scenarios
Source code Metrics
Databases • Quality Assurance Models
• Understanding
• Refactoring
Configuration • Technical Migration
files New system
Other sources Documentation
2
Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved
- 3. Approach
Models to represent and manipulate
artifacts of existing systems
Existing
Software System
Discover Understand Transform
Software artifacts : New
- source code Models Viewpoints
Software System
- configuration files
- tests
- database
-…
3
Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved
- 4. Architecture
Supported Technologies
Java XML ...
Metamodel Metamodel
Discoverer Discoverer
Generator
Discovery Model Customization
Manager Browser & Extensibility
Plug and orchestrate Navigation Definition of
artifacts through specific
transformators complex models Viewpoints
Infrastructure
4
Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved
- 5. Legacy applications in Java ?
From the moment one writes a line of code, it becomes
legacy, and that legacy accumulates (Grady Booch)
– 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
5
Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved
- 6. Complex models ?
Java metamodel :
Example :
-126 types
-173 references Java model of draw2d :
- org.eclipse.draw2d
- org.eclipse.draw2d.tests
447 Java classes 144 374 nodes !
6
Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved
- 7. MoDisco Demo
java.ecore
MoDisco
Java
conforms to
Discoverer
draw2d
draw2d java EMF model
Java source code
Demo
Models
MoDisco
ModelBrowser
7
Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved
- 8. Find Patterns in your Models !
Define and dynamically plug
your own Example
Facets & UI Customizations
Decorate the Java model of
org.eclipse.draw2d.tests
To highlight JUnit patterns:
-Test suite
-Test case
-Test
8
Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved
- 9. MoDisco Demo
java.ecore
customizes
conforms to
draw2d
java EMF model
JUnit3
Customization
Demo
MoDisco
ModelBrowser
Models
uses
JUnit3
Queries
9
Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved
- 10. MoDisco Demo
Query
Java OCL ATL XPath
query query query ...
query
EMFQuery
query
10
Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved
- 11. MoDisco Demo
java.ecore
customizes extends
conforms to
draw2d
java EMF model
JUnit3 JUnit3
Customization Facets
MoDisco
ModelBrowser
Models Demo
uses uses
JUnit3
Queries
11
Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved
- 12. MoDisco Demo
java.ecore testsuite.ecore
extends
conforms to conforms to
draw2d draw2d
java EMF model testsuite EMF model
JUnit3 uses
Facets
Models
uses
MoDisco
JUnit3
Queries
Demo ModelBrowser
12
Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved
- 13. Transform and Regenerate …
Example : from JUnit3 to JUnit4
superClass
ClassDeclaration
ClassDeclaration junit.framework.TestCase
RayTest importedElement
ImportDeclaration
imports
MoDisco MethodDeclaration
Java bodyDeclarations test_length()
Discoverer
13
Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved
- 14. Transform and Regenerate …
Example : from JUnit3 to JUnit4
superClass
ClassDeclaration
ClassDeclaration junit.framework.TestCase
RayTest importedElement
ImportDeclaration
imports
MoDisco MethodDeclaration
Java bodyDeclarations test_length()
Discoverer
14
Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved
- 15. Transform and Regenerate …
Example : from JUnit3 to JUnit4
ClassDeclaration
RayTest
MoDisco MethodDeclaration
Java bodyDeclarations test_length()
Discoverer
15
Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved
- 16. Transform and Regenerate …
Example : from JUnit3 to JUnit4
ClassDeclaration ClassDeclaration
RayTest org.junit.Test
type
annotations Annotation
MoDisco MethodDeclaration
Java bodyDeclarations test_length()
Discoverer
16
Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved
- 17. Transform and Regenerate …
Example : from JUnit3 to JUnit4
ClassDeclaration ClassDeclaration
RayTest org.junit.Test
type
ImportDeclaration
imports
annotations Annotation
MoDisco MethodDeclaration
Java bodyDeclarations test_length()
Discoverer
17
Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved
- 18. Transform and Regenerate …
Example : from JUnit3 to JUnit4
ClassDeclaration ClassDeclaration
RayTest org.junit.Test
type
ImportDeclaration
imports
Annotation
MoDisco
annotations
MoDisco
MethodDeclaration
Java Java
bodyDeclarations test_length()
Discoverer Generator
18
Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved
- 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
19
24/03/10 Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved
- 20. MoDisco
Questions ?
www.eclipse.org/gmt/modisco
20
Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved