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)
 
(47 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Backlink|GMT}}
+
What about definition chapter ?
  
[[Image:LogoMoDiscoSmall.jpg |right]]
+
== Definitions  ==
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.
+
We provide here a set of definitions for the main different concepts which are relevant within the context of MoDisco (i.e. which are related to model discovery and model-driven reverse engineering):
  
== What is MoDisco ?==
+
*'''Model discovery''': the general process composed of the two following metamodel-driven steps:
MoDisco provides an extensible framework to develop '''model-driven tools''' to support use-cases of '''existing software modernization''' :
+
**the retrieval of the information from an existing system according to specific metamodels
* '''Quality Assurance''': verifying whether an existing system meets the required qualities (detection of anti-patterns in existing code and computation of metrics.)
+
**the injection of this information into one or several models that conform to the same specific metamodels.
* '''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
+
  
 
+
*'''Discoverer''': an implementation (i.e. a program, a ''tool'', etc) that has been designed for performing a model discovery process.
[[Image:Modisco-Overview.PNG|600px|center]]
+
 
+
 
+
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''':
+
{|
+
|-
+
! [[Image:Modisco-Architecture.PNG|300px]]
+
!titi
+
|-
+
* 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.
+
|}
+
 
+
 
+
 
+
+
 
+
{{CommentBox|''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''
+
}}
+
 
+
 
+
 
+
{{CommentBox|''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''}}
+
 
+
 
+
{{CommentBox|''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
+

Latest revision as of 10:56, 22 July 2009

What about definition chapter ?

Definitions

We provide here a set of definitions for the main different concepts which are relevant within the context of MoDisco (i.e. which are related to model discovery and model-driven reverse engineering):

  • Model discovery: the general process composed of the two following metamodel-driven steps:
    • the retrieval of the information from an existing system according to specific metamodels
    • the injection of this information into one or several models that conform to the same specific metamodels.
  • Discoverer: an implementation (i.e. a program, a tool, etc) that has been designed for performing a model discovery process.

Back to the top