Issue #1 [February 20-February 26, 2006]
MDA Tools Classification Approach: An Evaluation Template
Model Driven Architecture(MDA) is the brain child of the Object Management Group(OMG) to revolutionalise the traditional software development approach with reusable model driven architecture based methodologies. It has introduced a standard modeling specification, providing an efficient modelling technique to model different enterprise domain, transformation techniques to transform one type of model to another, and mapping techniques to generate implementation code from the models. MDA is based on model layers and MDA tools play a major role in the successful adoption of MDA across the enterprise. The first edition provides a tools classification and a tool evaluation template to understand the industry maturity versus hype. It will be a useful guide for all tool vendors.
Introduction
Model Driven Architecture (MDA) is a brainchild of the Object Management Group (OMG), aimed at revolutionising the traditional software development approach with reusable model driven architecture based methodologies. MDA has introduced a standard modeling specification that provides an efficient modeling technique to model different enterprise domains, transformation techniques to transform one type of model to another, and mapping techniques to generate implementation code from the models.
Since the release of the MDA specification in June 2003, industry vendors have offered several tools that support the specification. However, only a few companies have adopted MDA concepts. Tune into JAX Magazine author Soumen Chatterjee’s MDA Radar every week, as he investigates the maturity of these tools, the current MDA roadmap, and the effects of MDA within enterprise architecture. The column will also endeavor to provide directive guidelines towards MDA adoption. The tools built around MDA constitute the major players that will eventually drive successful adoption of MDA across the enterprises. Through this column we will also strive to provide useful guidance to all tool vendors by providing a classification of the tools, and an evaluation template, to better differentiate between industry maturity and hype.
Classification of MDA Tools
“In terms of products, MDA is being implemented by tools – or tool chains, which may come from a single vendor or a number of vendors that integrate modeling and development into a single environment that carries an application from the Platform Independent Model (PIM), through the Platform Specific Model (PSM), and then via code generation to a set of language and configuration files implementing interfaces, bridges to services and facilities, and possibly even business functionality. Several vendors already provide tools that support integration at about this level, including substantial code generation.” [OMG FAQ]. However, it is surprising to note that the boundary between Integrated Development Environments (IDEs), UML tools and MDA tools have started to disappear. Sometimes the industry uses the term “MDA Compliant” to brand a set of tools, and sometimes even “model driven development” tools are confused with MDA tools. Therefore on a cautionary note, most of these products that are sold as MDA tools actually aren't. It is very common these days that a medicine created for purpose “A” results in a positive side effect “B” and ultimately ends up being a best seller for resolving “B”. MDA tools are also not without any exceptions.
The fundamental idea of the MDA approach is to separate the application architecture into three distinct models: the Computationally Independent Model (CIM), the Platform Independent Model (PIM), and the Platform Specific Model (PSM). However it is very common that modeling, code generation tools, is mistaken for MDA tools, whereas in reality these tools are useful only to help the MDA process, and should not be considered as MDA tools. The prime objective of tools classification is to help you understand the kind of MDA tools available in the current market, how compliant they are with the MDA specification, and provide a fair comparison matrix.
MDA tools can be classified into the following six categories:
- MDA Specification based Model Generation Tools
- Model Transformation Tools
- Model Repository
- Model Generation framework
- UML Tool
- MDA based development support tools
MDA Tools are available in both commercial and open source blend. Table 1 provides a brief overview of each tool’s position within the MDA community.

Our next task is to create an MDA tools evaluation template, based on the MDA specification released by OMG. See Table 2.

Conclusion
MDA offers several benefits that contribute towards improvement of the software development process, life cycle and architectural mechanism. Introducing MDA-based software development will initiate a lot of positive energy towards the current software development approach. MDA could be considered as a “Model Once and Reuse Elsewhere (MORE)” modeling solution aimed at enterprise problem domain abstraction. Tools make up the heart of the MDA theme. In the first edition of the MDA Radar, we have briefly categorized the tools, listed the reputed tools, and provided a template to facilitate the tool evaluation criteria, simple and fair. In the next edition of this column, we will start with the evaluation of these available tools to provide a tool roadmap for MDA adopters.
References
- MDA Specification
- Generative Model Transformer (GMT) project
- IBM product support for MDA – IBM stack for MDA
- Tools for code generation – Highlights some of the pros and cons of MDA tools
- Architectural Manifesto – Choosing MDA tools
- Architectural Manifesto – MDA for the enterprise
- A good list of OSS MDA tools
- Overview of some MDA-oriented tools
- MDA Guide
- Which MDA Tools are Right for You
- OMG FAQ
- MDA Success Stories



