I've been pretty harsh with respect to the Model
Driven Architecture (MDA) in previous writings. I
question the viability of the MDA for most
organizations, although respect the fact that many
people are still going to attempt it within their
organization. This begs the question "how do you
take an agile approach to the MDA?"
Figure 1 summarizes what I
believe to be a realistic "agile MDA" approach
which applies the concepts of
Agile Model Driven Development (AMDD) to the MDA. It's
important to note that you need to look beyond MDA-based
modeling tools to make MDA work.
Figure 1 depicts one of three
AMDD approaches, the most complex one in this case.
The primary goal is to produce working software
which meets the needs of your stakeholders otherwise
you're not really doing MDA.
Active stakeholder participation is crucial to
your success, so you need to find ways to work with
your stakeholders effectively (see below).
Testing is a critical issue throughout the
entire development effort.
should be included in your PIMs and
technically-oriented tests in your PSMs.
Take an evolutionary (iterative and incremental)
approach. Serial/traditional MDA isn't a very
good option as the focus is often on the
models/documents and not on the working software.
Developers need to learn fairly sophisticated
skills. People/communication skills are
critical, luckily agile developers are focused on
these skills, but so are modeling skills (which few
developers seem to focus on).
You'll need a wide range of model to make this
work. Figure 2 maps the
MDA model types to various modeling artifacts.
You don't need to create all of these artifacts, but
you will need some.
Stakeholders don't understand complex diagrams,
something we learned in the 1980s.
Figure 2 includes
inclusive modeling as part of the overall MDA vision
(I've had to add this concept to the overall MDA
Thoughts about UML & MDA:
If you want to do the full tool-based MDA thing,
you should use the
inclusive techniqiues to gather
info then capture the information in your tools.
Not ideal, but at least you have a bridge to your
The MDA seems to be missing the concept of
The transformation between inclusive models and
PIMs is manual, requiring skill on the part of the
The PIMs and PSMs require a sophisticated
modeling tool, few are out there. Bridgepoint,
TogetherCC, and OptimalJ are leading candidates.
The UML models seem to be oriented towards PSMs,
not PIMs (hence you need to extend the UML to really
support MDA, something we see the tool vendors do
all the time).
You'll likely need to go beyond UML even if you
do take a visual approach.
Figure 3 maps the
model categories to various modeling artifacts,
indicating which techniques are inclusive, which are
complex, and which are "in between".