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 – I like Jordi’s description better.

However, as I read Jordi’s blog posting, I found that his explanation certainly makes sense and is probably correct nowadays, in 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 the diagram shown on that blog, to also have a model-based development (MBD?) circle that would intersect with MDD, but not the others?

All this also can not be discussed without mentioning the standards, processes, and methods (and the effect of tools on these) surrounding these approaches. Models need to have a standard representation to be useful – and the UML (and SysML) is certainly one that is common these days. However, other notations such as BPMN, ERD, etc., should not be discounted as they represent interesting domain specific modeling languages – and not all can be easily expressed using UML . Tools are too often viewed as a panacea to what ails software development – when they can be a hindrance when one does not understand the standards, processes, and methods they support.

Rocket Scientists Get UML!

Today was a good day in the press for the IBM Rational Industrial Systems space (pun intended…)!

Some news bytes:

Now I hope that people will not start thinking that you need to be a rocket scientist to use UML

However, it does tell us that the concept behind a high level modeling language are valid. That what Rational, and let’s be fair, other modeling tools vendors, have said for years is valid. That the UML is certainly a force to be reckoned with in this space (again, intended).

I am actually one of those who believe that we need to rise the level of abstraction to be successful. Just like we, as software developers, raised above binary, then assembler, than above procedural languages into the current slew of object-oriented languages, we need to raise above these and attain a higher level of abstraction and efficiency. UML is a step in that direction. Domain Specific Languages (based on UML or another meta-model) will be the next step, once we understand better how to build, maintain, and efficiently use them. Rose RealTime, mentioned in the NASA example, is one example of a simple DSL that was built on top of UML and that was then (partially) included in the UML2 specification.

The future in this domain (there, no more “space” pun) is bright and I do not think we need a space telescope to see it.