Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "MoDisco"

(Team)
m
Line 1: Line 1:
{{Backlink|GMT}}  
+
{{Backlink|GMT}}
  
 
[[Image:LogoMoDiscoSmall.jpg|right]] Legacy systems embrace a large number of technologies, making the development of tools to cope with legacy systems evolution a tedious and time consuming task.  
 
[[Image:LogoMoDiscoSmall.jpg|right]] Legacy systems embrace a large number of technologies, making the development of tools to cope with legacy systems evolution a tedious and time consuming task.  
Line 5: Line 5:
 
As modernization projects face with both technologies combination and various modernization situations, model-driven approaches and tools offer the requisite abstraction level to build up mature and flexible modernization solutions.  
 
As modernization projects face with both technologies combination and various modernization situations, model-driven approaches and tools offer the requisite abstraction level to build up mature and flexible modernization solutions.  
  
<br>
+
== What is MoDisco?  ==
 
+
== What is MoDisco&nbsp;?  ==
+
  
MoDisco provides an extensible framework to develop '''model-driven tools''' to support use-cases of '''existing software modernization'''&nbsp;:  
+
MoDisco provides an extensible framework to develop '''model-driven tools''' to support use-cases of '''existing software modernization''':  
  
 
*'''Quality Assurance''': verifying whether an existing system meets the required qualities (detection of anti-patterns in existing code and computation of metrics.)  
 
*'''Quality Assurance''': verifying whether an existing system meets the required qualities (detection of anti-patterns in existing code and computation of metrics.)  
Line 24: Line 22:
 
*'''Transforming''' this information to new artifacts facilitating the modernization (metrics, document, transformed code, ...)
 
*'''Transforming''' this information to new artifacts facilitating the modernization (metrics, document, transformed code, ...)
  
MoDisco aims at supporting these three phases by providing&nbsp;:  
+
MoDisco aims at supporting these three phases by providing:  
  
 
*'''Metamodels''' to describe existing systems  
 
*'''Metamodels''' to describe existing systems  
*'''Discoverers''' to automaticaly create models of these systems<br>
+
*'''Discoverers''' to automatically create models of these systems
 
*'''Generic tools''' to understand and transform complex models created out of existing systems  
 
*'''Generic tools''' to understand and transform complex models created out of existing systems  
*'''Use-cases''' illustrating how MoDisco can support modernization process
+
*'''Use-cases''' illustrating how MoDisco can support modernization processes
  
 
== Description  ==
 
== Description  ==
Line 39: Line 37:
 
| [[Image:Modisco-Architecture.PNG|300px]]  
 
| [[Image:Modisco-Architecture.PNG|300px]]  
 
|  
 
|  
*'''Use-Cases'''&nbsp;: tools providing a solution for a specific modernization use-case.
+
*'''Use-Cases''': tools providing a solution for a specific modernization use-case.
  
 
<br>  
 
<br>  
  
*'''Technologies'''&nbsp;: components dedicated to one legacy technology but independent from one specific modernization use case.
+
*'''Technologies''': components dedicated to one legacy technology but independent from one specific modernization use case.
  
 
<br>  
 
<br>  
  
*'''Infrastructure'''&nbsp;: generic components independent from any legacy technology.
+
*'''Infrastructure''': generic components independent from any legacy technology.
  
 
|}
 
|}
Line 55: Line 53:
 
=== Infrastructure  ===
 
=== Infrastructure  ===
  
All the components of this layer are available as plugins and provided in one single Eclipse feature  
+
All the components of this layer are available as plug-ins and provided in one single Eclipse feature  
  
 
{{CommentBox|Feature '''Infrastructure 0.7''' contains :
 
{{CommentBox|Feature '''Infrastructure 0.7''' contains :
 
* reference implementations of '''OMG/ADM metamodels''' ([http://wiki.eclipse.org/MoDisco/KDM KDM] and [http://wiki.eclipse.org/MoDisco/SMM SMM])  
 
* reference implementations of '''OMG/ADM metamodels''' ([http://wiki.eclipse.org/MoDisco/KDM KDM] and [http://wiki.eclipse.org/MoDisco/SMM SMM])  
 
* a transformation from '''[http://wiki.eclipse.org/MoDisco/KDM/UMLConverter KDM to UML]'''
 
* a transformation from '''[http://wiki.eclipse.org/MoDisco/KDM/UMLConverter KDM to UML]'''
* a '''[http://wiki.eclipse.org/MoDisco/ModelBrowser model browser]''' to facilitate the navigation through a complex model
+
* a '''[http://wiki.eclipse.org/MoDisco/ModelBrowser/Presentation model browser]''' to facilitate the navigation through a complex model
 
* a '''[http://wiki.eclipse.org/MoDisco/DiscoverersManager discovery manager]''' to register and integrate discoverers into Eclipse
 
* a '''[http://wiki.eclipse.org/MoDisco/DiscoverersManager discovery manager]''' to register and integrate discoverers into Eclipse
* a '''[http://wiki.eclipse.org/MoDisco/Workflow discovery workflow]''' to easily chain several discoverers and transformators
+
* a '''[http://wiki.eclipse.org/MoDisco/Workflow discovery workflow]''' to easily chain several discoverers and transformers
 
* a '''[http://wiki.eclipse.org/MoDisco/KDMSourceDiscoverer sources discoverer]''' which creates a KDM model describing the files and directories of an existing project
 
* a '''[http://wiki.eclipse.org/MoDisco/KDMSourceDiscoverer sources discoverer]''' which creates a KDM model describing the files and directories of an existing project
* a '''[http://www.eclipse.org/gmt/modisco/infrastructure/MetricsVisualizationBuilder/ metrics vizualizations builder]''' which generates HTML, SVG or Excel outputs from a model containing metrics
+
* a '''[http://www.eclipse.org/gmt/modisco/infrastructure/MetricsVisualizationBuilder/ metrics visualizations builder]''' which generates HTML, SVG or Excel outputs from a model containing metrics
 
}}
 
}}
  
 
=== Technologies ===
 
=== Technologies ===
  
All the components of this layer are available as plugins and provided in several Eclipse features&nbsp;: one for each technology.  
+
All the components of this layer are available as plug-ins and provided in several Eclipse features: one for each technology.  
  
 
{{CommentBox|Feature '''Java 0.6''' contains:
 
{{CommentBox|Feature '''Java 0.6''' contains:
Line 75: Line 73:
 
* a complete [http://wiki.eclipse.org/MoDisco/JavaDiscoverer2 discoverer] to create Java models from Java source code contained in a Java project}}  
 
* a complete [http://wiki.eclipse.org/MoDisco/JavaDiscoverer2 discoverer] to create Java models from Java source code contained in a Java project}}  
  
''Note&nbsp;: a transformation from Java models to KDM will be released soon.''
+
''Note: a transformation from Java models to KDM will be released soon.''
  
 
The Java component merges the J2SE5 and JavaAST older components which are still available :
 
The Java component merges the J2SE5 and JavaAST older components which are still available :
Line 99: Line 97:
 
=== Use-Cases ===
 
=== Use-Cases ===
  
All the components of this layer are available as plugins
+
All the components of this layer are available as plug-ins
  
*'''[http://wiki.eclipse.org/MoDisco/SimpleTransformationChain Simple Transformations Chain]'''&nbsp;: creation of a UML model from a Java project, just aggregating discoverers from [[#Infrastructure|Infrastructure]] and [[#Technologies|Technologies]] layers.
+
*'''[http://wiki.eclipse.org/MoDisco/SimpleTransformationChain Simple Transformations Chain]''': creation of a UML model from a Java project, just aggregating discoverers from [[#Infrastructure|Infrastructure]] and [[#Technologies|Technologies]] layers.
*'''[http://wiki.eclipse.org/MoDisco/ModelFilter Model Filter]'''&nbsp;: creation of a UML model containing dependencies for a Java classe selected in the Eclipse environment.  
+
*'''[http://wiki.eclipse.org/MoDisco/ModelFilter Model Filter]''': creation of a UML model containing dependencies for a Java classe selected in the Eclipse environment.  
*'''[http://www.eclipse.org/gmt/modisco/useCases/BugzillaMetrics/ Bugzilla metrics]'''&nbsp;: conversion of Bugzilla data into Excel, HTML or SVG documents.  
+
*'''[http://www.eclipse.org/gmt/modisco/useCases/BugzillaMetrics/ Bugzilla metrics]''': conversion of Bugzilla data into Excel, HTML or SVG documents.  
*'''[http://www.eclipse.org/gmt/modisco/useCases/BIRTSampleDB/ BIRTSampleDB]'''&nbsp;: discovery of model from a BIRT database.
+
*'''[http://www.eclipse.org/gmt/modisco/useCases/BIRTSampleDB/ BIRTSampleDB]''': discovery of model from a BIRT database.
*'''[http://www.eclipse.org/gmt/modisco/useCases/PerformanceAnnotatedUmlStateCharts/ Performance-Annotated UML2 State Chart]'''&nbsp;: discovery of performance information from an Excel file, computation of metrics using this information and application of them to a UML2 model using a Performance profile.
+
*'''[http://www.eclipse.org/gmt/modisco/useCases/PerformanceAnnotatedUmlStateCharts/ Performance-Annotated UML2 State Chart]''': discovery of performance information from an Excel file, computation of metrics using this information and application of them to a UML2 model using a Performance profile.
  
 
=== Incubation ===
 
=== Incubation ===
Line 119: Line 117:
 
== Relationship with other Eclipse Projects  ==
 
== Relationship with other Eclipse Projects  ==
  
MoDisco reuses lots of EMP projects&nbsp;:  
+
MoDisco reuses lots of EMP projects:  
  
 
*'''[http://www.eclipse.org/modeling/emf/ EMF]''' to describe and manipulate models of existing systems.  
 
*'''[http://www.eclipse.org/modeling/emf/ EMF]''' to describe and manipulate models of existing systems.  
Line 125: Line 123:
 
*'''[http://www.eclipse.org/modeling/m2t/ M2T]''' to implement generation of text (documentation or code)
 
*'''[http://www.eclipse.org/modeling/m2t/ M2T]''' to implement generation of text (documentation or code)
  
MoDisco also reuses other projects such as&nbsp;:  
+
MoDisco also reuses other projects such as:  
  
 
*'''[http://www.eclipse.org/jdt/ JDT]''' to create models out of Java source code
 
*'''[http://www.eclipse.org/jdt/ JDT]''' to create models out of Java source code
Line 137: Line 135:
 
== Team  ==
 
== Team  ==
  
MoDisco has been initiated by the [http://www.inria.fr/recherche/equipes/atlanmod.en.html AtlanMod Team] (INRIA) and is strongly supported by [http://www.mia-software.com Mia-Software]&nbsp;:  
+
MoDisco has been initiated by the [http://www.inria.fr/recherche/equipes/atlanmod.en.html AtlanMod Team] (INRIA) and is strongly supported by [http://www.mia-software.com Mia-Software]:  
  
 
*Hugo Bruneliere - AtlanMod (project leader)  
 
*Hugo Bruneliere - AtlanMod (project leader)  
Line 151: Line 149:
 
*Jean-Sebastien Sottet - AtlanMod
 
*Jean-Sebastien Sottet - AtlanMod
  
== How to contribute&nbsp;? ==
+
== How to contribute? ==
  
 
See the [[MoDisco/How to contribute|process]] to contribute components to MoDisco.  
 
See the [[MoDisco/How to contribute|process]] to contribute components to MoDisco.  
Line 157: Line 155:
 
== See Also ==
 
== See Also ==
  
Homepage on Eclipse website&nbsp;: [http://www.eclipse.org/gmt/modisco www.eclipse.org/gmt/modisco]  
+
Homepage on Eclipse website: [http://www.eclipse.org/gmt/modisco www.eclipse.org/gmt/modisco]  
  
Newsgroup&nbsp;: {{Newsgroup|eclipse.modisco}}  
+
Newsgroup: {{Newsgroup|eclipse.modisco}}  
  
Documents&nbsp;: [http://www.eclipse.org/gmt/modisco/doc/ presentations]  
+
Documents: [http://www.eclipse.org/gmt/modisco/doc/ presentations]  
  
 
[[Category:Modeling]] [[Category:Reverse-Engineering]] [[Category:MDD]] [[Category:GMT]] [[Category:MoDisco]]
 
[[Category:Modeling]] [[Category:Reverse-Engineering]] [[Category:MDD]] [[Category:GMT]] [[Category:MoDisco]]

Revision as of 13:17, 3 December 2009

< To: GMT

LogoMoDiscoSmall.jpg
Legacy systems embrace a large number of technologies, making the development of tools to cope with legacy systems evolution a tedious and time consuming task.

As modernization projects face with both technologies combination and various modernization situations, model-driven approaches and tools offer the requisite abstraction level to build up mature and flexible modernization solutions.

What is MoDisco?

MoDisco provides an extensible framework to develop model-driven tools to support use-cases of existing software modernization:

  • Quality Assurance: verifying whether an existing system meets the required qualities (detection of anti-patterns in existing code and computation of metrics.)
  • Documentation: extraction of information from an existing system to help understanding one aspect of this system (structure, behaviour, persistence, data-flow, change impact , etc).
  • Improvement: transformation of an existing system to integrate better coding norms or design patterns.
  • Migration: transformation of an existing system to change a component, the framework, the language, or its architecture

Modisco-Overview.PNG


In each case, modernizing an existing software system implies:

  • Describing the information extracted out of the artifacts of this system
  • Understanding the extracted information in order to take the good modernization decisions
  • Transforming this information to new artifacts facilitating the modernization (metrics, document, transformed code, ...)

MoDisco aims at supporting these three phases by providing:

  • Metamodels to describe existing systems
  • Discoverers to automatically create models of these systems
  • Generic tools to understand and transform complex models created out of existing systems
  • Use-cases illustrating how MoDisco can support modernization processes

Description

To facilitate reuse of components between several use-cases, MoDisco is organized in three layers:

Modisco-Architecture.PNG
  • Use-Cases: tools providing a solution for a specific modernization use-case.


  • Technologies: components dedicated to one legacy technology but independent from one specific modernization use case.


  • Infrastructure: generic components independent from any legacy technology.

See MoDisco architecture detail...

Infrastructure

All the components of this layer are available as plug-ins and provided in one single Eclipse feature

Feature Infrastructure 0.7 contains :

Technologies

All the components of this layer are available as plug-ins and provided in several Eclipse features: one for each technology.

Feature Java 0.6 contains:
  • a complete metamodel for the Java language
  • a complete discoverer to create Java models from Java source code contained in a Java project

Note: a transformation from Java models to KDM will be released soon.

The Java component merges the J2SE5 and JavaAST older components which are still available :

Feature J2SE5 0.7 contains:
Feature JavaAST 0.2 contains:
  • a complete metamodel for the Java language
  • a complete discoverer to create JavaAST models from Java source code contained in a Java project


Feature CSharp 0.6 contains:
Feature XML 0.6 contains:
  • a complete metamodel for the XML standard, subsetting W3C concepts
  • a complete discoverer to create XML models from XML files

Use-Cases

All the components of this layer are available as plug-ins

Incubation

The followings are components also available from MoDisco. However, they are not currently part of the standard MoDisco build.

The MOMOCS European Project provides:

Relationship with other Eclipse Projects

MoDisco reuses lots of EMP projects:

  • EMF to describe and manipulate models of existing systems.
  • M2M to implement transformation of models into other models
  • M2T to implement generation of text (documentation or code)

MoDisco also reuses other projects such as:

  • JDT to create models out of Java source code

Roadmap

Additional components are planned to be added to MoDisco.

See the roadmap ...

Team

MoDisco has been initiated by the AtlanMod Team (INRIA) and is strongly supported by Mia-Software:

  • Hugo Bruneliere - AtlanMod (project leader)
  • Gabriel Barbier - Mia-Software (committer)
  • Nicolas Bros - Mia-Software (committer)
  • Grégoire Dupé - Mia-Software (committer)
  • Fabien Giquel - Mia-Software (committer)
  • Frédéric Madiot - Mia-Software (committer)
  • Jean Bezivin - AtlanMod
  • Frédéric Jouault - AtlanMod
  • Nicolas Payneau - Mia-Software
  • Jean-Sebastien Sottet - AtlanMod

How to contribute?

See the process to contribute components to MoDisco.

See Also

Homepage on Eclipse website: www.eclipse.org/gmt/modisco

Newsgroup: Newsgroup.gif eclipse.modisco

Documents: presentations

Back to the top