mercredi 16 mai 2007

MDA vs MDSD

I will start this blog by debating on differences between MDA (Model Driven Architecture) en MDSD (Model Driven Software Development) approaches. One could see MDSD as a deprecated version of the standard MDA. But another will see that MDSD has a wider scope than MDA. So I will try to explain what MDSD embraces and what's it is useful for.


First, let's compare what we've got on both sides. For MDA :

  • Standardized by the OMG since 1999

  • Based on XMI, MOC, OCL, UML...

  • Aims at automating all transformations between models to code, suppressing the coding part

  • Driven by the Y cycle and CIMs, PIMs, PSMs and PDMs

  • Tries to define standard meta-models shared across industry domains

For MDSD :

  • Based on the ideas brought by MDA

  • Not bound to its standards : can be any meta-model like DSLs, not only UML and profiles

  • Try to promote customized DSLs answering to each need, not assuming that every body will have the same needs on a given domain

  • Use models as abstraction and still leave a place for development tasks

  • Defines its own ideas of PIMs and PDMs depending on projects or needs contexts

From the use I can see in my job,the MDA standard is more something made for the big players in the industry, whereas MDSD is a more flexible approach that can be used by a larger group of users, less attached to standards and with smaller scale needs.


To conclude, I will just say that MDSD is a pragmatic way of using MDA concepts. With the new wave of tools such as Eclipse, EMF, GMF, Acceleo..., you can use these kind of approaches on large scale projects and I would recommend anyone to have a deep look into it as it really helps to cut down software development costs !

And the quickest way to do that is to try it using Acceleo I think !


Aucun commentaire: