Model Driven Architecture: Why We Need It

Published by:

It is very likely that whoever landed on this page doesn’t need the first few paragraphs, but bear with me a second, because I am at a point where I really think that we need to go back to where it all started.

Programming languages are tools developed in order to tell computers what we want them to do for us. More precisely, they are tools developed to speed up the process of telling a computer what to do. It is called “computer software“, or, for brevity, just “software“.

In order to use those languages, we rely on someone writing translators from the programming language we are using to the set of instructions that a processor can actually execute. This is because the different processors’ sets of instructions are in the vast majority of cases considered too primitive to be used in the production of usable software needed to be delivered within an acceptable time frame.

However, programming languages are still considered too technical by the vast majority of the population who can benefit from the use of computer software and for this reason there’s a community of technicians working to interpret the desires for computer programs coming from the population at large. Those technicians write sequences of orders to computer (kind of “speeches“) in those languages, also called “computer programs“, to satisfy the needs arisen from the rest of the community. It should also be discussed how those “needs” are created, but this might be a subject for another discussion.

So, here we are. In any software production activity we have three entities

  1. Computers
  2. Technicians
  3. Customers

Customers want Computers to do something for them, but only Technicians can tell Computers what to do.

And here is where the problems begin.

Continue reading

Welcome to!

Published by:

I created this website to understand the future of the Model Driven Engineering (MDE) and its offsprings, Model Driven Architecture (MDA) and Model Driven Development (MDD).

I am an old computer scientist who consider himself lucky for having been able to work for some years with those methodologies when they were in their infancy, at least in the commercial world, as we are talking about the late ’90s.

It was a big mission critical project and I was really impressed with the formal rigor offered by MDA in the process of software development, which led us to the delivery of high quality software on time and on budget, the only time that it happened in my now very long career.

The walk of life took me elsewhere after that project, but I thought that the vast majority of the software industry would have adopted that approach. Unfortunately, it doesn’t seem to have happened.

Many discussions about the reasons for that can be found online, from “blaming the tools” to the lack of trained personnel available on the market.

These pages will hopefully contain a contribution to address those issues.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.