Model Driven Architecture

April 18, 2012

Definition

In recent months many organizations have begun to focus attention on Model Driven Architecture (MDA) as an approach to application design and implementation. This is a very positive development for several reasons. MDA encourages efficient use of system models in the software development process, and it supports reuse of best practices when creating families of systems. As defined by the Object Management Group (OMG), MDA is a way to organize and manage enterprise architectures supported by automated tools and services for both defining the models and facilitating transformations between different model types. [3]

Image source OMG.org/MDA/

The MDA seperates business and application logic from the underlying platform and technology being used. It was chosen to be the offical base architecture for OMG specifications by an unanimous vote in 2001. Since modeling is at the heart of the MDA, let’s take a look at how modeling is used in the enerprise. In software development, modeling has been a rich tradition since the earlyest days of programming. Most recent changes have been focused around the notations and tools that system architects and develpers use to a map models to programming language code that can be complied for a particular operating system platform. A complete MDA implementation will include a definite platform-independent model (PIM) to achieve modling without being tied to a specific platform, then also consist of one or more platform-specific models (PSM) to complete the implementation.

Image source IBM.com

The principles of MDA

Four principles underlie the OMG’s view of MDA:

  • Models expressed in a well-defined notation are a cornerstone to understanding systems for enterprise-scale solutions.
  • The building of systems can be organized around a set of models by imposing a series of transformations between models, organized into an architectural framework of layers and transformations.
  • A formal underpinning for describing models in a set of metamodels facilitates meaningful integration and transformation among models, and is the basis for automation through tools.
  • Acceptance and broad adoption of this model-based approach requires industry standards to provide openness to consumers, and foster competition among vendors.[2]

MDA tools

There are two types of models used, initial models and derived models. Initial models are created manually by people, while derived models are the product of an automated program. For example, analysts may create a UML initial model, then a Java model can be automatically derived from the UML model using a model transformation process.

There are many different kinds of tools used when working in an MDA approach. They are: creation, analysis, transformation, composition, test, simulation, metadata management, and reverse engineering.

A tool may be specialized or more general and comprise many types of tools in one. For example, a creation tools may include transformation and test functions.

Current Concerns

Although MDA was conceived as an approach for achieving (technical) platform independence, current MDA vendors have been reluctant to engineer their MDA toolsets to be interoperable. Such an outcome could result in vendor lock-in for those pursuing an MDA approach.[1]

The OMG hasn’t always had a perfect track record for the architectures they sponsor. They introduced and sponsored the CORBA standard which failed adaptation in the market.

The MDA is young in its development, as the definition itself is still evolving. In a narrow sense, it is about different abstract models of a system, and well-defined model transformations among them. In a broad sense, it is about models at different levels of abstraction that serve as the basis for software architectures.[2]

While many companies seem to be involved with the MDA, they have drawn some negative conclusions about some of the important standards of the architecture. For example, because Microsoft is staying away from Meta Object Facility (MOF), they will not be treading exactly along the path of the MDA.[4]

-Dustin Corey (EGR644, Spring 2012)

References

[1]
http://en.wikipedia.org/wiki/Model-driven_architecture

[2]
http://www.ibm.com/developerworks/rational/library/3100.html

[3]
http://www.omg.org/mda/

[4]
http://martinfowler.com/bliki/ModelDrivenArchitecture.html

2 Responses to “Model Driven Architecture”

  1. Blane McCarthy said

    Well written. Sounds like MDA definitely has some potential but as in the past it seems like adoption of the approach and vendor support of interoperability will be the key. Will it succeed or will it become the “Betamax” of development tools?

  2. Ron Ramsey said

    Interesting subject. My perception is that this is still “bleeding edge” stuff.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: