Model-driven Architectures

Back to Concepts

This text is an adaptation of an analysis report written by David Norton, David Cearley and David McCoy, Model-Driven Architectures, in Hype Cycle for Application Development, Gartner Research Report, ID G00147982, pp. 22-23, June 29 2007.


 Definition

The term Model Driven Architecture® describes the OMG's proposed approach to separating business-level functionality from its implementation (see the Object Management Group website, www.omg.org/mda). The general idea behind this and the broader family of model-driven approaches (MDAs) is :

  • to enable business-level functionality to be modeled by standards, such as Unified Modeling Language;
  • to allow the models to exist independently of platform-induced constraints and requirements; and
  • to instantiate those models into specific runtime implementations, based on the target platform of choice.

Justification for quick adoption

Core supporting standards, such as UML are well-established, but comprehensive MDAs are less mature in terms of vendor support and actual deployment. An MDA represents a long-standing goal of software construction that has seen prior incarnations and waves of Hype Cycle positioning, e.g. computer-aided software engineering technology. The goal remains the same: Create a model of the new system, and then enable the model to become transformed into the final system as a separate and significantly simplified step. As always, such visions take time to catch on, and they face significant hurdles along the way.

Advice

Technical and enterprise architects should strongly consider the implications of implementing architectural solutions that are not MDA-compliant.  Organizations implementing SOAs should pay close attention to the MDA standards and consider acquiring tools that automate models and rules. These include architected rapid application development (ARAD) and architected model-driven (AMD) technologies and rule engines supporting code-generating and non-code-generating (late binding) implementations.

AMD is primarily suited to complex projects that require a high degree of reuse of business services, where you can put significant time into business process analysis (BPA) and design. At the same time, no competent organization would want to do AMD-only development, because the additional time and cost of the analysis and design steps would not bring adequate ROI or agility for time- or budget-constrained application development projects. The ideal solution is to mix AMD, ARAD and rapid application development methods and tools.

Business Impact

MDAs reinforce the focus on modeling the business: business rules, business roles, business interactions and so on. The instantiation of these business models in specific software applications or components flows from the business model. By reinforcing the business-level focus and coupling MDAs with SOA concepts, you end up with a system that is inherently more flexible and adaptable. If Model Driven Architecture or the myriad related MDAs gain widespread acceptance, then the impact on software architecture will be substantial. All vertical domains would benefit from the paradigm.