MDA Book: Where Did It Land?

Written by

in

If you’ve been in software development for a while, as I have, you’ve probably collected a few books on design patterns and architecture. One that’s been on my mind lately is MDA Distilled: Principles of Model-Driven Architecture, by Stephen Mellor and his coauthors.

The book explored using models to drive software development. I remember a diagram showing the progression from models to high-level programming languages, through intermediate code, and ultimately to machine code.

Looking at AI today, the industry didn’t take exactly the path the authors envisioned, but the principle feels remarkably close. The creative leap was treating high-level source code as another intermediate representation—something generated from a higher-level description of the system.

MDA put formal models in that role. Today, we increasingly use prompts, examples, constraints, and the combined knowledge of humans and AI to drive implementation.

It felt a little HAL 9000 at the time. Now it feels like part of the daily workflow.

Consider the following diagram:

This is my own reconstruction, inspired by a decades-old memory of the book and adapted for AI. It isn’t a reproduction of the original figure, which I haven’t been able to find online. The underlying idea deserves credit to the authors; this version reflects how I see it applying today.

The distinction matters, of course. A formal model and a natural-language prompt don’t offer the same precision. AI-generated code still requires judgment, testing, and review. But the shift in abstraction is recognizable: we describe more of what we want, and tools handle more of how it becomes executable software.

I wish I still had the book. I love my books, but space is limited. I’ve seriously considered turning my office into a proper library, although that remains an aspiration.

For now, I’m revisiting an old idea with a new appreciation for how insightful those authors were. Sometimes a book stays relevant because the future arrives by a different route.