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 new"

(Description)
(Description)
Line 32: Line 32:
 
{|
 
{|
 
|-
 
|-
[[Image:Modisco-Architecture.PNG|300px]]
+
! [[Image:Modisco-Architecture.PNG|300px]]
 +
!titi
 
|-
 
|-
 
* The '''Use-Cases''' layer contains tools providing a solution for a specific modernization use-case.
 
* The '''Use-Cases''' layer contains tools providing a solution for a specific modernization use-case.

Revision as of 11:52, 15 July 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 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:

  • The Use-Cases layer contains tools providing a solution for a specific modernization use-case.
  • The Technologies layer contains components dedicated to one legacy technology but independent from one specific modernization use case.
  • The Infrastructure layer contains generic components independent from any legacy technology.
Modisco-Architecture.PNG titi



Infrastructure 0.7 contains :
  • 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


J2SE5 0.7 contains:
  • 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


CSharp 0.6 contains:
  • 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

Back to the top