Your SlideShare is downloading. ×
0
How to Deal With Your IT Legacy?
Reverse Engineering with MoDisco...




Hugo Brunelière                          INRIA / ...
Overview
           a Model-Driven platform
                     for Software Modernization projects

        Support mult...
Approach
         Models to represent and manipulate
                              artifacts of existing systems


    Exi...
Architecture
                         Supported Technologies

     Java                               XML                 ...
Legacy applications in Java ?

   From the moment one writes a line of code, it becomes
   legacy, and that legacy accumul...
Complex models ?


Java metamodel :
                                                                  Example :
   -126 ty...
MoDisco Demo
                                                 java.ecore


                         MoDisco
              ...
Find Patterns in your Models !



Define and dynamically plug
         your own                                           ...
MoDisco Demo
                         java.ecore
customizes




                  conforms to




                        ...
MoDisco Demo




                                        Query




  Java          OCL                        ATL         ...
MoDisco Demo
                           java.ecore
customizes                                                   extends


...
MoDisco Demo
            java.ecore                                             testsuite.ecore
extends




     conforms ...
Transform and Regenerate …
Example : from JUnit3 to JUnit4
                                                    superClass
...
Transform and Regenerate …
Example : from JUnit3 to JUnit4
                                                    superClass
...
Transform and Regenerate …
Example : from JUnit3 to JUnit4
                 ClassDeclaration
                   RayTest


...
Transform and Regenerate …
Example : from JUnit3 to JUnit4
                 ClassDeclaration                              ...
Transform and Regenerate …
Example : from JUnit3 to JUnit4
                 ClassDeclaration                              ...
Transform and Regenerate …
Example : from JUnit3 to JUnit4
                 ClassDeclaration                              ...
Who is involved in MoDisco ?


       • The MoDisco team
           –   6 committers
                • 1 from INRIA
      ...
MoDisco

             Questions ?
www.eclipse.org/gmt/modisco




                                                        ...
Upcoming SlideShare
Loading in...5
×

MoDisco EclipseCon2010

6,240

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,240
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
104
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Transcript of "MoDisco EclipseCon2010"

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 10. MoDisco Demo Query Java OCL ATL XPath query query query ... query EMFQuery query 10 Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved
  11. 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. 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. 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. 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. 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. 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. 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. 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. 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. 20. MoDisco Questions ? www.eclipse.org/gmt/modisco 20 Copyright © 2010 Mia-Software & AtlanMod. All Rights Reserved
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×