Aggiornato il: ago 5
Model-driven architecture (MDA) is an approach for the design, development, and implementation of software systems. Introduced by the Object Management Group (OMG) in 2001, as its name suggests MDA utilizes the concept of models to act as guidelines to structure the specifics of the software project. According to OMG, in order to adhere to MDA an application must consist of a single platform-independent model (PIM), used to describe the system in functional and domain terms, and one or more platform-specific models (PSM), each used to implement the system in a specific platform.
The idea behind the MDA process is to begin designing the system by assimilating it to a non-technical model that is instead focused on representing its domain structure and functional behavior (the PIM). Such a model is then translated through transformation into the various (more technical) models, specific for the implementation of the system modelled by the PIM in different platforms (the PSMs). Such transformation is often handled by a tool that generates part or the totality of the source code that is necessary to implement the system in the various platforms of the PSMs.
Advantages and compromises
The MDA approach is intended as a solution able to increase productivity in the design and development phases of a software project. The use of standardized model is theoretically able to increase compatibility among systems and ease their design, a particularly pressing necessity in contexts where various software systems interact. To this end the PIM-PSM conceptual separation can potentially provide further advantages due to a better division of tasks between domain and platform experts. In the real world even if most of these advantages do come true for businesses that adopt the MDA the PIM-PSM dichotomy is however often discarded in favor of one or the other. In the case of the first the PIM’s is not transformed into PSMs, but it is instead used as base for the generation of the source code. In the latter case the level of abstraction provided by the PIM is abandoned in favor of PSMs that are then directly interpreted by a compiler that translates them into code.
[1,2] FAQ Model-Driven Architecture (MDA, Object Management Group (OMG). Retrieved on 09/04/2019 from https://www.omg.org/mda/faq_mda.htm.  Raistrick, C., Francis, P., Wright, J., Carter, C., Wilkie, I. (2004). Model Driven Architecture with Executable UML, Volume 1, 3-9.  Cabot, J. (2013). Modeling Languages. Retrieved on 09/04/2019 from https://modeling-languages.com/anybody-using-both-mda-platform-independent-and-platform-specific-models/.