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.
Difference between revisions of "MoDisco"
m |
(→Technologies) |
||
Line 69: | Line 69: | ||
All the components of this layer are available as plug-ins and provided in several Eclipse features: 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. | + | {{CommentBox|Feature '''Java 0.7''' contains: |
* a complete [http://wiki.eclipse.org/MoDisco/Java metamodel] for the Java language | * a complete [http://wiki.eclipse.org/MoDisco/Java metamodel] for the Java language | ||
− | * 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 |
− | + | * a transformation from Java models to KDM}} | |
− | + | ||
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 : |
Revision as of 04:10, 7 December 2009
< To: GMT
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.
Contents
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.
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:
See MoDisco architecture detail...
Infrastructure
All the components of this layer are available as plug-ins and provided in one single Eclipse feature
- reference implementations of OMG/ADM metamodels (KDM and SMM)
- a transformation from KDM to UML
- a model browser to facilitate the navigation through a complex model
- a discovery manager to register and integrate discoverers into Eclipse
- a discovery workflow to easily chain several discoverers and transformers
- a sources discoverer which creates a KDM model describing the files and directories of an existing project
- a metrics visualizations builder which generates HTML, SVG or Excel outputs from a model containing metrics
Technologies
All the components of this layer are available as plug-ins and provided in several Eclipse features: one for each technology.
- a complete metamodel for the Java language
- a complete discoverer to create Java models from Java source code contained in a Java project
- a transformation from Java models to KDM
The Java component merges the J2SE5 and JavaAST older components which are still available :
- a complete metamodel for the Java language
- a complete discoverer to create J2SE5 models from Java source code contained in a Java project
- a transformation from J2SE5 models to KDM
- a complete metamodel for the Java language
- a complete discoverer to create JavaAST models from Java source code contained in a Java project
- a complete metamodel for the C# language
- a transformation from CSharp models to KDM
- 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
- Simple Transformations Chain: creation of a UML model from a Java project, just aggregating discoverers from Infrastructure and Technologies layers.
- Model Filter: creation of a UML model containing dependencies for a Java classe selected in the Eclipse environment.
- Bugzilla metrics: conversion of Bugzilla data into Excel, HTML or SVG documents.
- BIRTSampleDB: discovery of model from a BIRT database.
- 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
The followings are components also available from MoDisco. However, they are not currently part of the standard MoDisco build.
The MOMOCS European Project provides:
- the MOMOCS Metamodel and corresponding Simple Editor
- the MOMOCS Transformation Tool
- the Travel Agency use case
- the Polimi Blog use case
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: eclipse.modisco
Documents: presentations