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.
MoDisco new
< To: GMT
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
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 a new artifact facilitating the modernization (metrics, document, transformed code, ...)
MoDisco aims at supporting these three phases by providing :
- metamodels to describe existing systems
- discoverers to automaticaly create models
- generic tools to understand and transform complex models created out of existing systems
- use-cases illustrating how MoDisco can support modernization process
Description
To facilitate reuse of components between several use-cases, MoDisco is organized in three layers:
- 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 easily chain several discoverers and transformators
- a sources discoverer which creates a KDM model describing the files and directories of an existing project
- 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 C# language
- a transformation from CSharp models to KDM
- Model Filter : creation of a UML model containing dependencies for a Java classes selected in the Eclipse environment
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)
- TMF to implement some discoverers
MoDisco also reuses other projects such as :
- JDT to create models out of Java source code