Model driven architecture

Bridging the gap

In 2001, the Object Management Group (OMG), arguably the IT industry’s most influential software body, started to map out a new approach to software development designed to bridge the notorious ‘semantic gap’ that has existed between the specification of the functionality of applications at a high-level (often in business process terms) and the underlying software platforms that support its execution.

 
 

Resources

  • Application Development Advisor: www.appdevadvisor.co.uk
  • Cutter Consortium: www.cutter.com
  • Object Management Group: www.omg.org
  • MDA Explained by Anneke Kleppe, Jos Warmer and Wim Bast
  • Technology Forecast: 2002-2004, Vol. 1: Navigating the Future of Software from PwC

 

 

The OMG’s Model Driven Architecture (MDA) builds on standards such as UML, XML and web services to insulate the high-level model of the desired functionality from the ever-changing base of middleware, operating systems and languages, generating code for each current (and future) combination without requiring changes to the model itself.

The vision promises applications that can be deployed, maintained and integrated with far less cost and overhead. Moreover, the move to a higher level of abstraction helps establish a clearer understanding of any application’s functional aims. As Forrester analyst Carl Zetie puts it, “MDA reveals insights that no amount of scrutiny of the source can provide.” At the same time, by enforcing a standard modelling approach developers will be able to understand what different models represent.

   
 

Fast, flexible, for the future

There are three major and overwhelming benefits of MDA: it enables faster and more accurate software development; changes to the business model can be more easily accommodated in the underlying software; and best practices which are fundamental to the way a business works can be reused.

At the highest level of abstraction, a business analyst with little technical background should be capable of using modelling tools to develop a Platform Independent Model (PIM) and adjust the model as the business requirements change.

As the model is synchronised with the underlying software, the code is changed appropriately. Hence developers spend less time making changes to code.

The OMG defines the benefits as:

  • Implementation New implementation infrastructure can be integrated or targeted by existing designs
  • Integration Since not only the implementation but the design exists at the time of integration, the production of data integration bridges, as well as the connection to new infrastructures, can be automated
  • Maintenance The availability of the design in a machine-readable form gives developers direct access to the specification of the system, making maintenance simpler
  • Testing and simulations Since the developed models can be used to generate code, they can equally be validated against requirements, tested against various infrastructures and used to directly simulate the behaviour of the system that is in the process of being designed.

 

 
   

Core components

Three models are central to the MDA-based development cycle.

The business side of an organisation creates a model of the application it needs. In MDA terms this is the Platform Independent Model (PIM) – a model without any technical input which can be changed when the business case dictates. The PIM is created using tools that support the Unified Modelling Language (UML) standard, enabling the specification of the application to be represented visually.

In the next step, the PIM is transformed into one or more Platform Specific Models (PSMs). “A PSM is tailored to specify the system in terms of the implementation constructs that are available in one specific implementation technology,” outlines Anneke Kleppe and her co-authors in MDA Explained. In order to accommodate different databases, object request brokers and so on, a PIM is transformed into multiple PSMs.

In turn, each PSM is transformed into program code for a specific platform, whether that is a programming language, such as C++ or Java, a run-time environment, like J2EE and .Net, and so on.

The result is a set of code targeted at a specific platform and known as the Enterprise Deployment Model. But as new platforms emerge or current ones get cheaper, the same functionality can be re-generated.

   
 

Micro-News Network's Emergency Alert System

Micro-News Network (MNN) provides companies with an application to deliver emergency alerts to employees via mobile devices and email. The application needs to run on anything from a Windows desktop to a Solaris data centre server.

Scoping the project, MNN reckoned that creating a framework for the application using a standard J2EE environment would take six developers about six weeks To speed up that process, it opted for Compuware's OptimalJ tool.

By using this model-driven tool, to generate a data model, express it in J2EE and generate functional code, two developers took a week to build the first application. According to Richard Seegmiller, CIO of MNN, "What those developers did in a matter of days would have taken six to eight weeks with another product and the quality of the code would not have been nearly at the level of what we have now."

MNN estimates 90% savings in the cost and time required to refine future applications.

 

 
   

The way ahead

The architecture may be based on standards, but the MDA tools that have emerged so far are remarkably different. In the view of Tom Welsh, an analyst at the Cutter Consortium: “It is doubtful if any two current MDA tools could exchange the full set of models, transformations and other metadata stored within them.” This is mainly due to the fact that, at this stage, different vendors are interpreting MDA to fit with their current product offerings. For example, while IBM voices support for MDA, its Rational division says it is a moving target, preferring the term Model Driven Development; and Compuware talks about Model-Driven Pattern-Based development.

Moreover, tools for use with .Net and for multiple platforms are under-represented in the market, with most tools instead supporting the Java-based J2EE runtime environment.

There is potential that the impetus for MDA might be slowed both from within and without. Two camps have already emerged: elaborationists and translationists (see box, Factions) and Microsoft could undermine the ubiquity of UML by creating several Domain Specific Languages (DSLs) for the banking, healthcare and telecommunication industries among others.

While its use is undoubtedly on the rise, model-based development is today typically employed as an adjunct to the wider development process, for communicating and exploring requirements rather than as a means of specifying the application and feeding that into other areas of the process.

   
 

Modelling in development

A recent survey of 389 development teams by industry analysts at Forrester Research found that two thirds were using some form of modelling. Only 12% said that when they made changes they always started from the model and regenerated the code. Many more (38%) said that code was initially generated from models but, after generation, that code diverged from the model.

Those who thought MDA was "important or very important" equalled those who said it was "unimportant or slightly important": 36%.

 

 
   

Factions

There are two schools of thought (and action) about the right way to implement MDA: the’elobarationists’ and the ‘translationists’.

Elaborationist vendors like Compuware and Interactive Objects believe in starting with a PIM and gradually refining it to produce a PSM. By doing so, they claim between 40% and 60% of an application can be generated.

Translationists instead prefer to create a PIM so detailed that it does not need to be translated into a PSM before generating software. These are particularly useful for real-time applications because they specify every last detail of the application. The claim is that 100% of code can be generated from the PIM.

Avatar photo

Ben Rossi

Ben was Vitesse Media's editorial director, leading content creation and editorial strategy across all Vitesse products, including its market-leading B2B and consumer magazines, websites, research and...

Related Topics

Software Development