|
|
(25 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 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 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]]
| + | |
− | |
| + | |
− | * '''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.
| + | |
− | |}
| + | |
− | | + | |
− | [[MoDisco/Architecture|See MoDisco architecture detail...]]
| + | |
− | === Infrastructure ===
| + | |
− | All the components of this layer are available as plugins and provided in one single Eclipse feature
| + | |
− | | + | |
− | {{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])
| + | |
− | * a transformation from '''[http://wiki.eclipse.org/MoDisco/KDM/UMLConverter KDM to UML]'''
| + | |
− | * a '''[http://wiki.eclipse.org/MoDisco/ModelEditor 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 '''discovery workflow''' to easily chain several discoverers and transformators
| + | |
− | * a '''[http://wiki.eclipse.org/MoDisco/KDMSourceDiscoverer sources discoverer]''' which creates a KDM model describing the files and directories of an existing project
| + | |
− | * a '''metrics vizualizations builder''' which generates HTML, SVG or Excel outputs from a model containing metrics
| + | |
− | }}
| + | |
− | | + | |
− | === Technologies===
| + | |
− | All the components of this layer are available as plugins and provided in several Eclipse features : one for each technology.
| + | |
− | | + | |
− | {{CommentBox|Feature '''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|Feature '''CSharp 0.6''' contains:
| + | |
− | * a complete metamodel for the C# language
| + | |
− | * a transformation from CSharp models to KDM'' }}
| + | |
− | | + | |
− | === Use-Cases===
| + | |
− | All the components of this layer are available as plugins
| + | |
− | * '''Model Filter''' : creation of a UML model containing dependencies for a Java classes selected in the Eclipse environment
| + | |
− | | + | |
− | ==Project plan==
| + | |
− | | + | |
− | Additional components are planned to be added to MoDisco.
| + | |
− | | + | |
− | [[MoDisco/Project_Plan|See the project's plan ...]]
| + | |
− | | + | |
− | == 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
| + | |
− | | + | |
− | ==Presentations==
| + | |
− | | + | |
− | See MoDisco [http://www.eclipse.org/gmt/modisco/doc/ presentations] ...
| + | |
− | | + | |
− | ==How to contribute ?==
| + | |
− | | + | |
− | See the [[MoDisco/How_to_contribute|process]] to contribute components to MoDisco.
| + | |
− | | + | |
− | ==See Also==
| + | |
− | | + | |
− | [http://www.eclipse.org/gmt/modisco MoDisco], The '''MoDisco''' component's Eclipse homepage
| + | |
− | | + | |
− | [[Category:Modeling]]
| + | |
− | [[Category:Reverse-Engineering]]
| + | |
− | [[Category:MDD]]
| + | |
− | [[Category:GMT]]
| + | |
− | [[Category:MoDisco]]
| + | |
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):