Abstract: "Agile" and "MDA" (Model-Driven Architecture) do not often appear in the same sentence. Agility promotes the notion that testing a running system is better than building descriptions of them, which appears to speak against the construction of models, surely the heart of model-driven architecture. However, models can now be executed, and many of the principles of agility can be applied to executable models in the context of MDA. This synthesis of executable models and an agile process can change fundamentally how we build software.
MDA (model-driven architecture) 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, and model-driven development supporting automation of transformations between these several models. That is, 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 Alliance$B!=(Btesting first, immediate execution, racing down the chain from analysis to implementation in short cycles, for example$B!=(Bcan 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, because all models are equal. 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.
Bio: Stephen J. Mellor is an internationally recognized pioneer in creating effective, engineering approaches to software development. In 1985, he published the widely read Ward-Mellor trilogy Structured Development for Real-Time Systems and in 1988, the first books defining object-oriented analysis.
Stephen also published Executable UML: A Foundation for Model-Driven Architecture in 2002. His latest book MDA Distilled: Principles of Model-Driven Architecture was published in 2004. He is active in the Object Management Group, chairing the consortium that added executable actions to the UML, and he is presently working on a standard for executable UML. He was a two-term member of the OMG Architecture Board and active in specifying MDA.
He is a signatory to the Agile Manifesto. In his copious spare time, he acts as chair of the IEEE Software Advisory Board. Stephen was until recently chief scientist of the Embedded Software Division at Mentor Graphics.