Why do we need model driven architecture (MDA)?

Many organizations have been developing IT software without modeling but there have been various problems in realizing the “requirements to implementation”.

Primary issue continues to be that of communication.

The two keys to solving this problem are

  1. Distinct viewpoints for each stakeholder.
  2. Automated information passing between them.

Business people need to communicate IT requirements in their own terms.

System designers and developers need technical specifications and unambiguous designs.

Figure – 2 explains the old style of development


IT has seen many transformations, starting from machine language to wherever we are. The following figure will explain the transformation that we have seen and the IT approach towards MDA.



Model driven architecture concept is default in Zachman Framework. MDA tells about having the computing independent model (CIM) and from that deriving the platform independent model( PIM) and transforming PIM to platform specific model (PSM). If we look at the Zachman Framework, it is obvious that business, system and technology perspectives (Row 2, 3 and 4) are the rows that are equivalent to CIM, PIM and PSM.

To add more, above mentioned rows not only describe about data and function (which are main focus in MDA) but also gives clear placeholders for the network, roles, events and rules. Below Figures 4 & 5 shows how the MDA and Zachman Framework go hand in hand.


Figure: 4


Figure: 5

Computing Independent Model (Business Perspective – CIM)

A CIM is also often referred to as a business or domain model because it uses a vocabulary that is familiar to the subject matter experts (SMEs). It presents exactly what the system is expected to do, but hides all information technology related specifications to remain independent of how that system will be (or currently is) implemented.

The CIM plays an important role in bridging the gap which typically exists between these domain experts and the information technologists responsible for implementing the system.

In an MDA specification the CIM requirements should be traceable to the PIM and PSM constructs that implement them (and vice-versa).


Platform Independent Model (System Perspective – PIM)

A PIM exhibits a sufficient degree of independence so as to enable its mapping to one or more platforms. This is commonly achieved by defining a set of services in a way that abstracts out technical details. Other models then specify a realization of these services in a platform specific manner.


Platform Specific Model (Technical Perspective – PIM)

A PSM combines the specifications in the PIM with the details required to stipulate how a system uses a particular type of platform. If the PSM does not include all of the details necessary to produce an implementation of that platform it is considered abstract (meaning that it relies on other explicit or implicit models which do contain the necessary details).


There are 6 reasons for the question “why do we need model driven architecture (MDA)?”

1. Cost-effective

This is cost effective because time to market is quicker but of course it needs initial cost in understanding MDA approach and as well as investment in Tool. Change Management and Maintanenance will become easy and it will bring down the cost over a period.

2. Leads to increase in Quality

When we are doing the MDA, the models are transformed to code and changes happen at model level than doing at code level. In this case, quality of output is much higher as the human intervention at code level is minimized.

3. Lesser turnaround time

More visibility for the business during the design phase itself, hence the understanding of business requirements are corrected at the conceptual level. This help to build the system quickly and effectively in lesser time.

4. Less Error-Prone

As we know, the more time consuming in the development life cycle is testing and fixing. Simulation on the models will help you to see whether desired output will be delivered. We need not wait for the output until the entire system is built, the effective usage of testing in the MDA will bring down the error.

5. Empowers Domain expert

In the traditional development, though systems are developed using the requirements given by the business, domain knowledge is not brought out. It happens mostly having business analyst explaining the process and lead or developers develop the system. While we are aligning the development by using MDA approach, domain experts are empowered to describe their thoughts / process by models.

6. Enables to focus on solving business problems instead of technology

MDA allows you to focus on solving business problems using IT rather than focusing on technology problems. Having MDA approach, technology barrier will not be there, assume you have developed some system using “X” technology and later the support for the “X technology is not available and management decides to move it to a new technology “Y”, since MDA approach gives you all the models required from business and system perspective, moving to a new technology is not a difficult process.

Source : http://live.icmgworld.com/index.php/blogs/entry/why-do-we-need-model-driven-architecture-mda.html