A Roadmap for Agile MDA

I've been pretty harsh with respect to the Model Driven Architecture (MDA) in previous writings. I still 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 basic AMDD approaches, the most complex one in this case.

Figure 1. An AMDD approach to MDA.

Below are some point-form thoughts which I will flesh out in the coming weeks.

Critical Success Factors:

  • You should apply the principles and practices of Agile Modeling (AM)
  • 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. Acceptance tests 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.
MDA Distilled

Figure 2. Artifacts for Agile MDA.

Working with stakeholders:

Thoughts about UML & MDA:

Thoughts about Tools:


Figure 3. Techniques for each modeling category.