Hitchhiker's Guide to Software Architecture and Everything Else - by Michael Stal

Wednesday, March 05, 2003


I am often asked what I think about MDA (Model Driven Architecture). To put it shortly, I consider MDA as a good solution for some problems but not as common solution for all problems. Basically, MDA faces the same problems other approaches do. Take Application Frameworks as a prominent example. You might either make a framework so abstract that it comprises zillions of hotspots. In this case, you'll need to parametrize, change, and extend it in many different places. Or you can make a framework so concrete that it covers everything. In the latter case, give yourself a second thought. What happens with the complexity of your application domain? It will be hidden in the framework. That's the good news. The bad news is that you'll have to understand the framework to leverage it effectively. Doesn't that remind you of a boomerang? To summarize, I believe, MDA will work for small domains that are well understood by developers. It won't work in more general and large domains, because in this case modelling a system with MDA leads to the same complexity as modelling it without MDA. No, there will be no wizards where you can generate all your applications just by clicking some buttons.