Model Driven Architecture (MDA) – Is your company ready for MDA ? – By Paru Puttanna

April 20, 2011

What is MDA?

MDA is a software design approach for the development of software systems. It was launched by the Object Management Group (OMG) in 2001.

Effective enterprise software development in today’s world requires an approach to software architecture that helps architects evolve their solution in flexible ways.

I am curious on your thoughts on the viability of MDA and model driven development approach. OMG has created a conceptual framework that separates business-oriented decisions from platform decisions. OMG’s MDA provides vendor-neutral approach to system interoperability via established modeling standards: Unified Modeling Language (UML), Meta-Object Facility (MOF), XML Metadata Interchange (XMI), and Common Warehouse Meta-model (CWM). The modeling standards can be transformed to major open or proprietary platform including CORBA, J2EE, .NET and web-based platforms.

Currently lot of companies do “modeling” is in the form of programming abstractions embedded in the code. Any separate modeling of architectural designs lives on white boards, power point slides and to be frank in developer’s heads. This approach may be adequate for small teams; it makes it difficult to understand key characteristics of the system among the details of the implementation of the business logic. This becomes much more difficult to manage the evolution as their scale and complexity increases.

To achieve a model-centric approach the system model includes for ex: representation of persistent and non-persistent data, business logic, and presentation elements. If there is any integration with legacy data and services, the interfaces to those elements may also need to be modeled. MDA’s awareness is growing and it had a major impact on software engineering and I agree, it is critical to the success of every enterprise-scale solution.

As per OMG’s view of MDA it identifies four types of models. Computation Independent Model (CIM), Platform Independent Model (PIM), Platform Specific Model (PSM model and Implementation Specific Model (ISM). The models may be developed as a precursor to implementing the physical system or they may be derived from an existing system or a system in development as an aid to understanding its behavior.

CIM: is a model of a system that shows the system in the environment in which it will operate, and thus it helps in presenting exactly what the system is expected to do.

PIM: A platform independent model, a PIM, is built. It describes the system, but does not show details of its use of its platform.

PSM: PIM implemented on a specific platform.

PM: The architect will then choose a platform (or several) that enables implementation of the system with the desired architectural qualities.

Simplified MDA Framework

First, a Computational Independent Model (CIM), that is a model of the business rules of the system in focus and has no computer implementation details specification, is transformed into a Platform Independent Model (PIM), a high level model tied to computational concepts but not to a computer platform specific implementation. Second, the PIM is transformed into a Platform Specific Model (PSM), a model of a specific computer platform implementation. Third, the model with platform specific information (the PSM) is translated into code.

MDA Framework

The notion of “platform” is rather complex and highly context dependent. In some situations platform may be the operating system; in some situations it may be a technology infrastructure. In other words, one person’s PIM is another person’s PSM. For ex, a model may be a PIM with respect to choice of communication middleware if that model does not prescribe a particular choice of middleware technology. However, when you decide to use CORBA as middleware, the model is transformed to PSM.

This simplified example from IBM helped me understand the concept much better; I hope it would help you all.

In the above example, there are two classes Customer and Account. The model describes the class and its attributes but does not specify platform-specific choice. Three specific mappings, or transformations, defined to create the PSMs, together with the standards used to express these mappings.

In my opinion the large companies are moving towards this architecture but it is still in the beginning stage.

References:

www.wikipidea.com

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

www.omg.com

MDA Guide Version 1.0.1by OMG

http://modeldrivenarchitecture.wordpress.com/

http://software.intel.com/en-us/blogs/2008/10/07/model-driven-architecture-and-development/

Paru Puttanna

BBVA Compass

Paru.Puttanna@bbvacompass.com

Ph:205-747-3307

Advertisements

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: