Ads

Links

Relationship between MDA,MDD and MDE

There is some confusion about the relationship between MDA (model-driven architecture), MDD (model-driven development) and MDE (model-driven engineering).

I was reading the Master thesis of David Ameller (supervised by Xavier Franch ) when I found the exact picture I had in mind to visually explain the relationship between these three concepts. So, with their permission, I'm going to share it with you:

Put it simply, in my opinion, MDD is a development paradigm that uses models as the primary artifact of the development process. Usually, in MDD, the implementation is (semi)automatically generated from the models.

MDA is the OMG's particular vision of MDD and thus relies on the use of OMG standards. Therefore, MDA can be regarded as a subset of MDD.

On the other hand, MDE would be a superset of MDD because, as the E in MDE suggests, MDE goes beyond of the pure development activities and encompasses other model-based tasks of a complete software engineering process (e.g. the model-based evolution the system).

This is my view but, as always, feel free to disagree with me!

UPDATE: I've written a new post giving my view on the relationship between model-driven engineering and model-based engineering

If you enjoyed this post you can subscribe to this Software Modeling blog and/or follow me on twitter or through the portal's mailing list . And if you really liked it help me pass it on to others by bookmarking and sharing the post using the links below:

Trackback URL for this post:

http://modeling-languages.com/trackback/150

MDA, MDD, MDE

Jordi Cabot has an interesting Blog on Modeling Languages. In it (an on LinkedIn) there was a discussion recently on the difference or similitudes between MDA, MDD, and MDE. It’s interesting that Wikipedia treats the last two as the same thing ...

Yes, in general...

Your explanation certainly makes sense and is probably correct nowadays, i n a more modern sense of the terms.

However, "MDD" has been used for quite a long time to describe model-based (as opposed to model-driven) development. That use of the term would not fit within the definitions presented by OMG as part of MDA (e.g., the CIM/PIM/PSM levels of abstractions and transformations). I suspect that this approach may also still be in use today - although probably not the best way of working with models. This may especially be true of some of the model uses seen in "agile" approaches.

So perhaps there is a need, in your diagram, to also have a model-based development (MBD?) circle that would intersect with MDD, but not the others?

model-based vs model-driven

I've used sometimes the terminology "model-based engineering" (or "model-based development") to refer to a softer version of MDE (or MDD). That is, a model-based development process is a process in which software models are used but maybe they are not the key artefacts of the development(i.e. they do not "drive" the process as in MDD).
However, this is a very personal opinion. Not sure if there is any paper/book/... that proposes a precise definition for model-based engineering.

User login

Ads

Ads