My take on Model Driven Architecture as it is currently being defined is this:
The current definition, whether it is Microsoft's or the OMG's (PDF), is that the approach assumes no improvements on the underlying technologies. In particular, MDA assumes no *simplifications* on the underlying technologies. Rather in these approaches, MDA *is* the simplification.
The problem then is that an MDA is like a compiler in the way compilers were typically described in classrooms about 25 years ago:
- The compiler generates assembly code.
- The assembler generates binary code.
- The linker generates an executable.
- The loader loads it and initializes the PC (program counter).
The Microsoft approach professes to be more "agile" (love that word) than the OMG approach. Still it does not seem to be an attempt to improve our tools so much as contain them and force them to submit themselves to the MDA interface.