In the last post, we’ve started to discuss the present software development life cycle. If you want to know how it was but you’d rather a quicker way other than reading it, just taking a look at the classical picture below is enough.

 

 

It’s about mistakes between system requirements and implementation. This and other important issues were treated in the last post.

The problem with the present SDLC is that, in some fashion, implementation becomes so far requirements as code becomes so far models.

So, how to make code and models follow each other? This is the big question MDA aims to answer.

MDA aims to shift the development focus from code to models, in such a way models become the code and developer’s work doesn’t concern anymore into code, but into models. Then, since developers have the right and well specified models, these ones are automatically transformed into code.

This approach improves productivity since high level models are a faster solution than coding and, to a certain extent, models represent the code. But, automatic code generation seems to be the main key to improve productivity.

Portability becomes more achievable because since you have a higher level model(a Platform Independent Model), you can transform it into lower level models(Platform Specific Models) for many other target platforms without having to rebuild or remake all your code.

Interoperability is achieved by means of bridges provided between models. Bridges allow platform specific and independent implementations to interoperate.

And about maintenance, it becomes more manageable since changes are not made into code anymore, but into models. Thus, as a model also plays the documentation role, documentation is always up to date.

The higher level approach MDA provides to software development can contribute to maintain the specification, as a high level model, rather close to the implementation, as code, and then we make costumers happier.

 

We’ve explained *what* MDA aims to do, but if you are interested in *how* it can be done wait the next post where the MDA Framework will be presented.