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.
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.
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.
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.
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.