Home   :   MDA

Mapping the Model Driven Architecture to the Matrix


Follow us on




Discuss us on





Watch us on




Email us at





Get our code at



The Model Driven Architecture


The Model Driven Architecture (MDA) approach was approved by the Object Management Group in 2001 and now is part of the general category of approaches known as Model Driven Development (MDD).


It is widely acknowledged that MDA's key concepts were taken from the Shlaer-Mellor method of the early 1990s.  For example, a Platform Independent Model (PIM) directly corresponds to Shlaer-Mellor's application domain and similarly, the Platform Specific Model (PSM) maps to either a service or implementation domain.  Also, the MDA model transformation idea was based on the Shlaer-Mellor method's Recursive Design concept of translation.


The OMG has further defined the standards comprising the MDA, such as UML, over the last decade.  However, relatively little progress in the MDA's underlying software development method has been made over that time.  Perhaps that should not be a surprise since the OMG is a standards body not a software methods body.

MOF - Model Object Facility

CIM - Computation Independent Model

PIM - Platform Independent Model

PSM - Platform Specific Model

PDM - Platform Development Model

PSI - Platform Specific Implementation


MDA Alignment with the Matrix


The diagram above shows the Analysis Design Matrix and a mapping to an interpretation of the Model Driven Architecture on the right hand side.  It assumes each realm in the Matrix comprises of one domain, something that will not be true in general.


The MDA part of the diagram shows how the application MDA design chain at level M1 begins with a Computation Independent Model (CIM) which is transformed into a Platform Independent Model.


Similarly, the PIM is transformed into a Platform Specific Model (PSM).  The transformations continue down the chain to the Platform Specific Implementation (PSI) or source code.


On the diagram the various models or platforms of the MDA have been colour coded to show the correlation to realms in the Matrix.


While the MDA describes multi-level platforms at M1 and invokes the Four Layer Meta Modeling Architecture which has been around for some time, it does not attempt to define meta models at M2 that necessarily describe the transformation rules and which are required for code generation.  Some sources have put forward the idea of a Platform Development Model (PDM) but this does not seem to have been accepted by the OMG.


This is puzzling since the Model Object Facility (MOF) is declared at level M3 but has the purpose of defining the UML modeling notation at M2.  Of course, from a standards point of view this is a perfectly reasonable thing to do.


However, from a Model Compiler perspective the MOF corresponds to the meta Analysis of Analysis model at level M3.  This model exists as part of Model Compiler at M3 which defines of the "current working" Model Compiler at level M2 since the Model Compiler at M2 was defined and built by the preceding (earlier) Model Compiler and Software Architecture at M3.


It is interesting to note that new technical papers or dissertations describing some new MDA research frequently detail the MDA multi-level platform approach and the Four Layer Meta Modeling Architecture but repeatedly fail to integrate them together from a Model Compiler viewpoint as captured by the Matrix - they simply repeat the OMG's standards based approach.


MDA Model Transformation


The MDA User Guide describes transformation as the process of converting one model to another model.


If transformational systems such as QVT are used to perform the transformation of say a PIM into a PSM, then this gives rise to a problem.


The difficultly here is that a MDA transformation violates the "One Fact in One Place" principle of Executable UML because the PSM has clearly been created from only copied (or mathematically derived) data from the PIM since no original information can ever be added in the transformation.


Although, the MDA Guide mentions other models (e.g. marking) being included in the transformation, the same principle applies in that the other data is already held in a model and therefore this data is also replicated in the target model (PSM).


On the other hand, translation is the act of weaving together all the domains in all the realms and creating source code in the Real World without replicating data.  This is the essence of the translational approach and is the fundamental difference between translation and transformation.


With hindsight, it can be seen that the MDA transformation concept was derived from a misconceived notion of Shlaer-Mellor's translation process.


Legal Notice


UML and MDA are trademarks of the Object Management Group (OMG).  All other trademarks or registered trademarks are the property of their respective holders.

Copyright 2017 Dark Matter Systems Ltd. All Rights Reserved.