Why use the model driven architecture to design and build distributed applications?
Authors: Jon Siegel
Venue: Proceedings of the 27th international conference on Software engineering (2005)

OMG's Model Driven Architecture® (MDA®)[1] unifies and simplifies modeling, design, implementation, and integration of applications -- including large and complex ones -- by defining software fundamentally at the model level, expressed in OMG's standard Unified Modeling Language® (UML®)[2]. An MDA-based development goes through three steps -- two producing models, one producing code -- and typically iterates through these several times.An MDA application's base model specifies every detail of its business functionality and behavior in a technology-neutral way; in MDA terminology this is the application's Platform-Independent Model (PIM). Use of well-known patterns, imported into the model from a library and parameterized to suit the application, speeds development and reduces error while still producing a complete and detailed PIM. Technology independence allows domain experts to concentrate on getting the business process correct, and preserves the model's usefulness beyond the technology churn cycle.Working from the PIM, MDA tools follow an OMG-standard mapping to generate an intermediate model tailored to the target middleware implementation platform. (OMG is standardizing mappings to all popular middleware platforms; several have already been adopted.) Termed a Platform-Specific Model (PSM), this intermediate product adds non-business, computing-related details (typically affecting performance and resource usage), possibly following "markup" inserted on the PIM by your architects, and the version produced by the MDA tool will probably require some hand-tuning before it can be used for the next step. (The amount of hand-tuning required will vary depending on the sophistication of the tool, the complexity of the application, and the maturity of the MDA in your application domain.In the final development step, working from the PSM, MDA tools generate interface definitions, application code, makefiles, and configuration files for the PSM's middleware platform. Because the industry has been working on this transformation for years already, and the model is tailored specifically for this transformation, the automated conversion in this step is typically 100% or nearly so. Performing a "build" on these artifacts yields a deployable application.Because the PIM is middleware-neutral and conversion to the PSM and then to the implementation is mostly automatic, it is practical to produce equivalent implementations of MDA-based applications on multiple target platforms. In addition, tools can generate cross-platform invocations, allowing easy interworking among suites of MDA-based applications wherever they reside. Another benefit of the MDA: because industry standards defined as an MDA PIM are platform-independent, they can be implemented on multiple targets and then used by every enterprise even in industries that haven't converged on a single middleware platform.Based on UML, automation, and sound architectural principles, the MDA supports applications over their full lifecycle starting with design and moving on to coding, testing, and deployment, through maintenance, and eventually to evolution to a new platform when an application's existing platform becomes obsolete. The MDA became the base architecture for OMG standards in September 2001.