Agile MDA
This article also appeared in David Frankel's MDA Journal, a feature of the online journal Business Process Trends.
MDA is a broad church covering a number of different approaches to model-driven development. Most commonly, people think of models as blueprints that are filled in with code, so MDA is commonly viewed as supporting "heavyweight" process-heavy modeling techniques; but MDA can do better than this.
Agile MDA is based on the notion that code and executable models are operationally the same. Hence, the principles of the Agile Alliancetesting first, immediate execution, racing down the chain from analysis to implementation in short cycles, for examplecan be applied equally to models. An executable model, because it is executable, can be constructed, run, tested and modified in short incremental, iterative cycles.
To reach this happy state, models must be complete enough that they can be executed standing alone. There are no "analysis" or "design" models; rather, different models capture independent aspects of the system. Models are linked together, rather than transformed, and they are then all mapped to a single combined model that is then translated into code according to a single system architecture. This approach to MDA is called Agile MDA.