Tuesday, March 31, 2009

The business rationale for Model Driven Architecture in software engineering

Today life comes at you FAST, and business conditions often change rapidly. How quickly you can react to internal and external changes usually spells the difference between mere survival and MARKET LEADERSHIP. Companies must, therefore, have Business Agility.

Business Agility is often dependent on IT agility. You need a flexible IT architecture that enables you to quickly implement new, innovative business processes, without changing core business engines.

Unfortunately, traditional I.T. is not agile. By the time the business analyst understands what you need and writes the functional specs and gets them approved by you and writes the technical specs and give that to the architects to design the change and the programmers get the program specs and they write the code…. You get the idea.

By the time traditional I.T. delivers, the business rules have changed, and you begin the change implementation cycle once again. As a result, I.T. is always 4-6 months behind where the business needs it to be, and it is not a question of better hardware, better people, better training or more money. The solution is not India.

The solution is Model Driven Architecture – a paradigm shift in software engineering.

Let’s rewind to 1989. A computer visionary and evangelist by the name of Chris Stone went around trying to convince the largest companies to fund a vendor-neutral “think tank” and software standards organization to invent solutions for an increasingly complex IT landscape. The result was the Object Management Group (OMG).

Step-1: OOPS
- The first focus of OMG was on Object Oriented Systems, because objects do allow developers to operate different levels of abstraction, thereby greatly reducing the complexity and the time needed to develop software.
- Object Oriented Technology surely narrowed the gap between Business and I.T. but could never close it, because there is still the need of the “interpreter” (the business analyst) to tell I.T. what Business wants.

Step-2: Pretty Pictures
- Business people understand graphical representation of ideas more easily than textual representation.
- But traditional I.T. is not terribly fond of drawing hundreds of diagrams just so business can understand what they want, because when everything is approved, these diagrams are nothing but “pretty pictures”.
- I.T. then has to manually convert the “pretty pictures” into laborious code before the business model can be implemented on a computer system.

Step-3: The Dream
- Often we have been told that everything begins with a dream.
- In this case, someone dreamed: What if the “pretty pictures” could be magically converted into executable code?

The result was MDA. 

What is MDA?

MDA is a software engineering methodology and a collection of toolsets.

Step-1: PLATFORM INDEPENDENT MODEL (PIM)
- MDA empowers business units (e.g., Sales department) to build complete and fully validated business models independent of I.T., without bothering about the technical implementation of the model.
- The models are built using Business Management tool. These are the “pretty pictures”.
- The BPM tool builds semantics into these “pretty pictures” (the models) that are machine readable and encode both structural and action parameters. So other tools can automatically determine how to implement the “pretty pictures” on a computer system.
- This Business Model is called the Platform Independent Model (PIM) because these models are completely technology ignorant.

Step-2: PLATFORM SPECIFIC MODEL (PSM)
- Once approved by the business unit, I.T. can take the PIM and prepare the technical architecture based on the target deployment platform (e.g., J2EE, JSF, WebSphere, Oracle).
- Based on the technical architecture and other target specific details of the technology, transformation rules are applied to automatically convert the Business Model into a Technical Model, which is called the Platform Specific Model (PSM).
- The PSM is the “technology aware” version of the business model.

Step-3; EXECUTABLE MODEL
- Using model-to-model transformation rules and transformation engines, the MDA tools generate source code from the PSM.
- The source code is then compiled, linked and deployed on the target platform.
- This is the Executable Model, which is also a type of PSM.

Some great advantages of MDA:

(1) BUSINESS AGILITY
- The business units need not tell I.T. what they want. They can load their BPM tool and directly build a model of what they want.
- I.T. can directly take the Business Model and take the necessary steps to implement it without having to ask the business unit any questions.
- Since the technical deployment of the business model is largely an automated process, the time to implement is quite minimal.
- This gives you a Superbly Agile I.T. that can respond very rapidly to the demands of the business.

(2) GREAT COST SAVINGS
- Mission-critical software can continue to be in use for decades, suffering constant upgrades to cope with shifting requirements and changing technologies. 
- With MDA, you get Maintainable Business Models instead of Maintainable Code.
- So maintenance is very easy because you change the Business Model and regenerate the executable code.
- You don’t have to payroll an army of coders for software development and maintenance.
- A Gartner Report calls MDA “outsourcing buster technology” and one that provides equal or better ROI compared to outsourcing I.T.

(3) ZERO MAINTENANCE WORRIES
- Most of the time of an I.T. department in medium and large corporations is consumed by maintenance.
- With MDA you have zero maintenance worries.

(4) A TRANSFORMED I.T. DEPARTMENT
- Freed from maintenance worries, freed from a very laborious maintenance process, and freed from the fear of legacy code, I.T. can focus on innovation.
- I.T. payroll dollars can be better spent in hiring quality rather than quantity.

(5) FUTURE PROOF TECHNOLOGY
- When it becomes necessary to adopt new technology, no lengthy migration to new platform is required.
- I.T. needs to incorporate the new technology in its model-to-model transformation, and regenerate a new PSM from the PIM.
- Your MDA-driven application is Future Proof. Forever.

(6) INSTITUTIONALIZED KNOWLEDGE
- One of the less discussed benefits, but perhaps of the highest value to the company in the long-term, is that MDA leads to institutionalization of knowledge.
- Knowledge that is usually lost through employee attrition will now mostly be retained by the company.

Quick recap with reference to BPM:

BPM is most useful when used as part of a Model Driven Architecture (MDA) process.

--1-- The BPM tool is used to create end-to-end, complete and validated business model in a pure business environment without being aware of technology. This is the Platform Independent Model (PIM).

--2-- When the business people are happy with the business model, then I.T. will architect the system (cherry pick technologies to be used, design the n-tier architecture, etc.), write the Model-to-Model transformation rules using the transformation engine of choice (e,g., QVT – Query View Transform) and generate the Platform Specific Model (PSM) – which is your Business Model that is “technology aware’.

--3-- Then code generators will be used to convert the PSM into source code, which can then be compiled, linked and deployed on the desired platform.

Step-2 above is a “one time” activity until the target platform changes. So as long as the target platform does not change, the MDA process described above can implement “maintenance and enhancement” type changes in the Business Model virtually at the touch of a button and utilize the pre-programmer model-to-model transformation mechanism to generate the new source code.

This is a useable methodology today and is the reason why BPMI merged with OMG (Object Management Group) – the creator of Model Driven Architecture (MDA) in 2004 and is now an integral initiative within OMG along with advances in MDA thought.

No comments:

Post a Comment