Your SlideShare is downloading. ×
MoDisco at Eclipse Day Paris 2010
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

MoDisco at Eclipse Day Paris 2010

3,688
views

Published on

Presentation of MoDisco project at Eclispe Day Paris 2010

Presentation of MoDisco project at Eclispe Day Paris 2010

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,688
On Slideshare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
53
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • I’m Frederic Madiot of Mia-Software
    I’m going to talk about how the MoDisco project supports the specifications defined by ADM,
    the OMG task force working on software modernization.
    I will illustrate my presentation with a concrete example showing how ADM specifications and their implementation in MoDisco can be used to control the quality of Eclipse plug-ins.
  • First of all, let me me introduce Mia-Software and Atlanmod.
    Mia-Software is member of the Eclipse foundation and we develop tools based on model-driven engineering.
    These tools can be combined to transform existing software systems with a model-driven approach.
    The idea is to create models from the existing systems, transform these models and regenerate the code with a new architecture or new technology.
  • Mia-Software is a subsidiary of Sodifrance which is the leader in the french market of IT modernization projects.
    Sodifrance uses Mia-Software tools on modernization projects such as migrations from client-server applications to JEE or .Net platforms.
  • The approach we propose with MoDisco consists in creating fine-grained models from the different kinds of artifacts which compose an existing system. From these models we can then extract specific viewpoints to understand the existing system. And these viewpoints can also be used to regenerate a new version of the system.
  • MoDisco is an Eclipse platform for software modernization projects.
    It has been created by AtlanMod during the Modelplex research project.
    It is part of the Eclipse Modeling Project, under the MDT sub-project leaded by Kenn. MDT is the project which contains implementations of standards such as UML2 or OCL. The raison why MoDisco is under MDT is because it provides implementations for two OMG specifications.
  • To facilitate the development of modernization tools, MoDisco provides reusable components.
    The first set of these components is completely independent from any legacy technology.
    It is composed of a Discovery Manager, a Model Browser to navigate through complex models, several extensibility mechanisms to define viewpoints on models, and the implementation of SMM and KDM specification which can serve as pivot metamodels.
    On top these generic components you can find components dedicated to specific legacy technologies. At this time we provide components for Java and XML. JSP will come soon. Mia-Software contributes open-source components for JEE, but the project is open and other companies are welcome to contribute components for other technologies such as C or C++.
  • Just few words on the two ADM specifications supported by MoDisco.
    The first one is KDM for Knowledge Discovery Metamodel.
    It provides a pivot metamodel to describe existing software systems independently from their implementation.
    The objectives is to dissociate the parsing phase from the analysis phase.
    Modernization tools compliant with KDM can be combined more easily to support complex modernization scenarios.
  • The second one is SMM for Structured Metrics Metamodel.
    It provides a metamodel for describing any kind of metrics which can be computed from a software system.
    The main metaclasses are described here:
    Metrics are computed during an observation which is done by an observer, with a given tool at a given time.
    Each value which has been computed is represented by an instance of Measurement. For a given Measure, for example the number of lines of code, an ObservedMeasure collects all the measurements. Each measurement points to the object which has been measured.
  • To facilitate the development of modernization tools, MoDisco provides reusable components.
    The first set of these components is completely independent from any legacy technology.
    It is composed of a Discovery Manager, a Model Browser to navigate through complex models, several extensibility mechanisms to define viewpoints on models, and the implementation of SMM and KDM specification which can serve as pivot metamodels.
    On top these generic components you can find components dedicated to specific legacy technologies. At this time we provide components for Java and XML. JSP will come soon. Mia-Software contributes open-source components for JEE, but the project is open and other companies are welcome to contribute components for other technologies such as C or C++.
  • To facilitate the development of modernization tools, MoDisco provides reusable components.
    The first set of these components is completely independent from any legacy technology.
    It is composed of a Discovery Manager, a Model Browser to navigate through complex models, several extensibility mechanisms to define viewpoints on models, and the implementation of SMM and KDM specification which can serve as pivot metamodels.
    On top these generic components you can find components dedicated to specific legacy technologies. At this time we provide components for Java and XML. JSP will come soon. Mia-Software contributes open-source components for JEE, but the project is open and other companies are welcome to contribute components for other technologies such as C or C++.
  • To facilitate the development of modernization tools, MoDisco provides reusable components.
    The first set of these components is completely independent from any legacy technology.
    It is composed of a Discovery Manager, a Model Browser to navigate through complex models, several extensibility mechanisms to define viewpoints on models, and the implementation of SMM and KDM specification which can serve as pivot metamodels.
    On top these generic components you can find components dedicated to specific legacy technologies. At this time we provide components for Java and XML. JSP will come soon. Mia-Software contributes open-source components for JEE, but the project is open and other companies are welcome to contribute components for other technologies such as C or C++.
  • To facilitate the development of modernization tools, MoDisco provides reusable components.
    The first set of these components is completely independent from any legacy technology.
    It is composed of a Discovery Manager, a Model Browser to navigate through complex models, several extensibility mechanisms to define viewpoints on models, and the implementation of SMM and KDM specification which can serve as pivot metamodels.
    On top these generic components you can find components dedicated to specific legacy technologies. At this time we provide components for Java and XML. JSP will come soon. Mia-Software contributes open-source components for JEE, but the project is open and other companies are welcome to contribute components for other technologies such as C or C++.
  • The last example is about building plug-ins.
    We have recently started to work on this problem with CEA (the french nuclear agency), IBM and Atlanmod.
    The problem when you build a set of plug-ins is that, depending on the content of the update sites declared in your configuration, you don’t know exactly which version of depending plug-ins will really be integrated.
    The default strategy takes the latest version available for each plugin.
    We are experimenting a solution, based on a constraint solver, to calculate build configurations depending on other strategies.
    Each build configuration can be converted into a B3 model or exported to a graphical cartography tool.

  • Transcript

    • 1. Copyright © 2010 Mia-Software All Rights Reserved Frédéric Madiot, Mia-Software Grégoire Dupé, Mia-Software Analyze your Software Assets With MoDisco
    • 2. 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 Understanding Application Mining Mia-Quality Quality Analysis Mia-Studio Model-to-Model transformation Model-to-Text transformation Eclipse projects MoDisco EMF Facet
    • 3. 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
    • 4. 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 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
    • 5. Copyright © 2010 Mia-Software All Rights Reserved About Modernization…
    • 6. Copyright © 2010 Mia-Software All Rights Reserved Software Modernization Legacy Technologies Source code Databases Configuration files Other sources Output • Quality Analysis • Understanding • Code Refactoring • Technical Migration Scenarios Documentation Models New system Metrics
    • 7. Copyright © 2010 Mia-Software All Rights Reserved Modeling Software Artifacts Source Code can be represented with Models This is not a UML model !
    • 8. Copyright © 2010 Mia-Software All Rights Reserved Software artifacts : - source code - configuration files - tests - database - … Existing Software System Discover Models use Models to represent and manipulate artifacts of existing systems Understand Viewpoints Transform New Software System MoDisco
    • 9. Copyright © 2010 Mia-Software All Rights Reserved MoDisco Project Official Eclipse Modeling project (in MDT) Open-source (EPL licence) Based on other Eclipse Modeling projects Released 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
    • 10. Copyright © 2010 Mia-Software All Rights Reserved What can you do with MoDisco ?
    • 11. Copyright © 2010 Mia-Software All Rights Reserved Quality Analysis Your own rules Complexity Maintenability Usability Efficiency Portability etc Existing application  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
    • 12. Copyright © 2010 Mia-Software All Rights Reserved Understanding Your own rules What to extract from the code How to represent the information Modeling tools Existing Application  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)
    • 13. 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 Improved application Model of the existing application Model of the improved application
    • 14. Copyright © 2010 Mia-Software All Rights Reserved Technical Migration Your own rules Migration Strategy Migrated application Existing application MoDisco Model of the existing application Model of the migrated application Transform to new technologies
    • 15. Copyright © 2010 Mia-Software All Rights Reserved the MoDisco Toolbox
    • 16. 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 of specific Viewpoints Discovery Manager Plug and orchestrate transformations Eclipse Modeling projects JSP Metamodel Discoverer Generator OMG/ADM Standards Pivot Metamodels (SMM & KDM)
    • 17. 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
    • 18. Copyright © 2010 Mia-Software All Rights Reserved ADM Specifications Structured Metrics Metamodel (SMM) To represent measurements calculated on software systems
    • 19. 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 of specific Viewpoints Discovery Manager Plug and orchestrate transformations Eclipse Modeling projects JSP Metamodel Discoverer Generator OMG/ADM Standards Pivot Metamodels (SMM & KDM) Model Browser Navigation through complex models
    • 20. Copyright © 2010 Mia-Software All Rights Reserved EMF Model Browser Spy On Your Models
    • 21. 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 of specific Viewpoints Discovery Manager Plug and orchestrate transformations Eclipse Modeling projects JSP Metamodel Discoverer Generator OMG/ADM Standards Pivot Metamodels (SMM & KDM)
    • 22. Copyright © 2010 Mia-Software All Rights Reserved Extensibility & Customization Define Dynamic Viewpoints on Your Models
    • 23. 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 of specific Viewpoints Discovery Manager Plug and orchestrate transformations Eclipse Modeling projects JSP Metamodel Discoverer Generator OMG/ADM Standards Pivot Metamodels (SMM & KDM)
    • 24. 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
    • 25. 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 of specific Viewpoints Discovery Manager Plug and orchestrate transformations Eclipse Modeling projects JSP Metamodel Discoverer Generator OMG/ADM Standards Pivot Metamodels (SMM & KDM)
    • 26. 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 DB2 etc…
    • 27. Copyright © 2010 Mia-Software All Rights Reserved Model-Driven Reverse-Engineering of Eclipse plug-ins
    • 28. 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
    • 29. 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)
    • 30. 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 Existing Plug-in Model of the Plug-in Demo Viewpoint on the Plug-in
    • 31. 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 Existing Plug-in    Model of the Plug-in Model of the violations Problem View Demo
    • 32. 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 Transformed Plug-in Existing Plug-in Model of the existing Plug-in Model of the migrated Plug-in
    • 33. 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-ins dependencies Build resolution strategies (constraints solver) Cartography IDM++ Research Project (ANR) -> Sept 2011
    • 34. 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/e mft/facet/ Blog http://fmadiot.blogspot.com/