Models Everywhere

Various considerations about Model Driven Engineering

Archive for the ‘MDSD’ Category

Another classification of transformations

Posted by jbezivin on November 20, 2010

Different kinds of transformation

Rafael started an interesting discussion about the mutual interest of various kinds of model transformations:

In a previous post I proposed a first classification of transformations:

  1. Code to Model Transformations (C2M)
  2. Model to Model Transformations (M2M)
  3. Model to Code Transformations (M2C)

Here I would also like to introduce another classification, quite orthogonal to the previous one and however very important:

  1. Transformations executed at software development/production time
  2. Transformations executed at software maintenance/modernization time
  3. Transformations executed at software operation/execution time

These three kinds of transformations have very different properties.

MDSD (Model Driven Software Development) is a special case of MDE (Model Driven Engineering) where the transformations executed are mainly M2C transformations executed at software/development time.

Posted in MDE, MDRE, MDSD, Transformation | 5 Comments »

Broadening Application Area

Posted by jbezivin on November 5, 2010

If MDE is the solution, then what is the problem?

The application area of MDE is rapidly broadening.

As a consequence it is difficult to answer questions about failure or success of MDE since we do not know exactly the problem we are trying to sove.

Most studies do not consider MDE, but very restricted areas like artifact generation or even code generation which is a very tiny subset of MDE. This is not even the full scope of MDSD or MDD.

Posted in MDE, MDSD | Tagged: , | Leave a Comment »

What is MDE?

Posted by jbezivin on October 31, 2010

Model Driven Engineering


There seems to be some consensus about the qualities of MDE, but what is exactly MDE? I will try to address this question in this post. First we need to consider separately the base technology and the application scope.

1. The base technology of MDE

The main idea is to consider a level of uniform representation where all artifacts are models, composed of model elements. A model is a typed graph which elements (edges and nodes) are typed by the nodes of another graph called its reference graph (we say that it conforms to the reference model). At the bottom of the hierarchy we have terminal models that represent a given system. A terminal model conform to a metamodel. Usually we have a three-level hierarchy made of terminal models, metamodels and a metametamodel. The relation of conformance andrepresentation are the two key relations in MDE: 

Most modeling frameworks use a three-level hierarchy of metalevels. They differ mainly on the metametamodel used (MOF, ECore, KM3, etc.).
MDE draw its strenght from the unification principle. This means that most artefacts may be considered as abstract models. This is illustrated below.

2. The application scope of MDE

Initially MDE had a limited scope, mainly in the area of software development. People used to talk (and still talk) about MDD (Model Driven Development) to qualify this kind of application where executable code is generated from one or more abstract models. When these metamodels conform to OMG specified metamodels, we talk about MDA(tm) for Model Driven Architecture. Of course, one of the main metamodel supported by OMG is UML.
MDD has been and is still quite successful and many success stories have demonstrated an excellent ROI. But at the same time several new possible applications of the base MDE technology have been discovered and now MDD is only one particular branch of MDE.The first new MDE application area is MDRE (Model Driven Reverse Engineering). Contrary to MDD where code is produced from models, in MDRE models are produced from code. To emphasis this difference, the OMG calls this approach ADM (Architecture Driven Modernization), the reverse of MDA. The techniques for extracting models from legacy code (backward engineering) are different from the techniques for producing code from models (forward engineering), but both heavily use model transformation. 

The similarity between MDD and MDRE is that both approaches rely on models of code. There is now an important trend that considers that MDE base technology can be even more broadly applicable to models of the data.

In the previous figure there are three kinds of MDE approaches:

  • MDSD (Model Driven Software Development) for generating code from models. Transformations are here executed at <b>development<b> time.
  • MDRE (Model Driven Reverse Engineering) for generating models from code. Transformations are here frequently executed at <b>maintenance<b> time. The typical application here is software modernization.
  • RTM (Run Time Modeling) for executing model transformation at run time, not at development or maintenance time. The typical application here is to achieve <b>interoperability between heterogeneous systems<b>.
When we look at OMG standard, MDA corresponds to MDSD and ADM corresponds to MDRE. There is still no precise OMG standard for RTM. Note that RTM is mainly coping with models of data and not models of code and this is a big difference with MDSD and MDRE. RTM is often used in MDI (Model Driven Interoperability).

Posted in MDA, MDE, MDI, MDRE, MDSD | Tagged: , , , , | Leave a Comment »

 
Follow

Get every new post delivered to your Inbox.