Eclipse MoDisco 0.12.0 Release Review

Type
Release
State
Successful
End Date of the Review Period

Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.

Project
Release

0.12.0

Description

Eclipse MoDisco (version 0.12.0) provides an extensible model driven reverse engineering framework to elaborate on solutions supporting different scenarios such as software modernization, quality assurance, retro-documentation, architecture improvement, etc. It offers base generic components (Model Browser, Discovery Manager, OMG metamodels, etc.) as well as the dedicated support (metamodels, model discoverers, transformations, etc.) for dealing with several different technologies such as Java, JEE, XML.

Architectural Issues

The MoDisco architecture is composed of three different layers:

Infrastructure

  • The EMF reference implementation of the core of Abstract Syntax Tree Metamodel (ASTM, an OMG/ADM standard);
  • The EMF reference implementation of Knowledge Discovery Metamodel (KDM, an OMG/ADM standard), corresponding discoverers, a KDM extension for weaving models of code with models of physical resources, a transformation to UML2;
  • The EMF reference implementation of Software Metrics Metamodel (SMM, an OMG/ADM standard);
  • The customizable Model Browser for more efficiently navigating large and complex models discovered from legacy systems;
  • The Discovery Manager for fastest integration of new or existing discoverers;
  • The Discovery Workflow for more easily building discovery chains (including discoverers and transformations);
  • The Generic Discoverer Benchmark for facilitating the execution and visualization of results from benchmarks on various model discoverers (NEW);
  • The Metrics Visualization Builder for automatically generating HTML, SVG or Excel representations of metrics stored in a model.

Technologies

  • Java
    • The EMF implementation of a metamodel for the full Java language;
    • The corresponding specific Model Browser customization;
    • The complete discoverer for automatically creating Java models from Java source code;
    • An additional discoverer for automatically creating composite models mixing models of Java source code and models of Java physical resources;
    • The complete generator for automatically creating Java source code from Java models;
    • The transformation from Java models to KDM models.
  • JEE
    • The EMF implementation of a metamodel for JSP;
    • The corresponding specific Model Browser customization;
    • The complete discoverer for automatically creating JSP models from JSP source code;
    • A complete discoverer for automatically creating models from web.xml files and ejb-jar.xml (multiple versions);
    • Facilities for developing new discoverers for project deployment descriptor files;
    • A library of queries and facets based on the Java metamodel but dedicated to the extraction of JEE information.
  • XML
    • The EMF implementation of a metamodel for XML (W3C definition);
    • The corresponding specific Model Browser customization;
    • The complete discoverer for automatically creating XML models from XML documents/files.

Use Cases

  • The Model filter plugin allows extracting specific information from Java projects using UML2 models (e.g.; dependency graphs, method calls) and displaying it in a graphical way.
  • The Simple transformation chain plugin shows how to chain components from the two other layers in a workflow that allows, for instance, to produce UML2 models out of Java projects.

As stated in the project plan of this MoDisco release, the project makes good use of several different Eclipse projects (mainly Modeling projects). There is notably an historical link with the EMF Facet project (as it is a spin-off from MoDisco). The support for facets and customizations, as currently used in the MoDisco Model Browser for instance, has been moved progressively to the new implementation provided by Eclipse EMF Facet.

 

Security Issues

There is currently no security issue as far as MoDisco is concerned.

Non-Code Aspects

The complete MoDisco documentation is available from the MoDisco Wiki page: http://wiki.eclipse.org/index.php/MoDisco:

  • Project's general information;
  • Reference documentation on the various components (direct access here to the MoDisco User Guide, cf. "MoDisco Documentation" section);
  • Version specific information;
  • Additional information on available use cases, as well as incubation and deprecated components;
  • Complementary resources and useful links.

The MoDisco website provides a direct access to all the related resources: http://www.eclipse.org/MoDisco/.

Usability Details

MoDisco intends to conform to the User Interface Guidelines. The missing items to be fixed are summarized in http://wiki.eclipse.org/MoDisco/UI_Accessibility_Issues.

End of Life

No particular API or user feature is becoming end-of-life as part of this release.

Standards

The MoDisco project has been working in close collaboration during the past years with the OMG Architecture Driven Modernization (ADM) Task Force, which has resulted in the EMF implementation of the Abstract Syntax Tree Metamodel (ASTM), Knowledge Discovery Metamodel (KDM) and Software Metrics Metamodel (SMM) specifications.

Communities

The constant activity on the dedicated MoDisco forum shows the real interest of various types of users (from both the industry and academia) in reusing the different MoDisco components.

The regular activity on MoDisco Bugzilla, and the variety of the bug contributors, indicates the liveliness of the project community. 

In addition, MoDisco is also used (and enhanced) as a key software component within the context of the ARTIST European project.

Notably, a complete journal paper presenting the full MoDisco approach and framework for Model Driven Reverse Engineering has been published this year.

This release is part of Luna