MDA and Acceleo
General presentation
Acceleo has been designed to improve software development productivity. Its approach deals with many concepts grouped together under the name MDA (Model Driven Architecture).
MDA is currently being standardized by the international organization OMG, which already counts some great successes : UML, Corba, MOF...
MDA is a set of standards, methodologies and ideas but we currently lack effective and operational tools. Acceleo is an innovating software, resulting from the best practices and experience feedbacks from the use of MDA in the industry. It also takes into account the last projections from research around the MDA.
Needs without solutions?
MDA brings significant advances in controlling software development and allows in particular :
What is MDA?
The MDA approach is strongly focused around models. Its goal is to switch from mainly documentary models to productive models.
In order to tally the concepts, the OMG has defined a number of terms around the models :
The MDA approach also defines operations for model handling with the aim of producing software applications. Some of these operations are model transformation, reverse-engineering and reverse-modeling, model checking...
These principles being defined, what about efficient tools? Acceleo is a first step in providing these tools, allowing a pragmatic and operational implementation of this software lifecycle refactoring.
Implementing MDA with Acceleo
Moving to model-centered approach can seem complex or risky. Acceleo is an easy and pragmatic product for massive code generation. This implementation is made through a "bottom-up" method, described below :
Consequently, Acceleo is entirely adaptable and customizable. In opposition with much more rigid solutions, generators built with Acceleo are based on MDA standards and are designed with a "white box" approach.
In short, Acceleo can deal with any kind of model, but it is particularly efficient for translating high level design models into complex architectural implementation.