In the beginning, the model driven mechanism is a group of principles we summed up in the design of software. Then found that it was a structural fundamental appeared in a wide range of systems, as well as to MDE/MDSD.
In the “Presentation on Model-Driven Mechanism in Information Systems and Enterprise Engineering“, mentioned that “MDM is the common fundament for both MDS and MDA/MDD.” Yet, presented a illustration for “A demand-driven architectural framework for development of ISs, based on MDM” and pointed out “this is also an explanation about the system of model driven development.”(P16)
The Figure 1 is a simplified graph for MDM, may be called as the triangle of MDM. Note that, for the relationship between the applied models and the operational device, from a black-box perspective (i.e. the whole of the system), we can dynamically change some functions or behaviors (output) through changing the models, this is why called it model-driven; from a white-box perspective (i.e. inside of the system), the device reads and uses the data of the models according to the modeling knowledge to make of its functions and behaviors. (It has used executing but it may be referred to some special meanings in the context.)
MDM in traditional software development system
In a traditional software development system (organization), the programmers reading and understanding the design documents according to some specifications for them. In fact, there are much knowledge for understanding / using the documents correctly, from languages, glossaries to rules, habits and so on. You can give the different models (the documents) according to the knowledge the programmers known, then they will produce the code expected.
MDM in a model driven software development system using a model-transformation approach
In a model driven software development system, for example, by a model-transformation approach, the applied model will be of the target application system in such as UML at the level 1 of the metamodeling layers of MDA. The modeling knowledge will be the metamodels to the level 2, including the transforming rules (model) as well. A code-generator as the operational device in MDM will reads / uses the models of the target than produces the code. You can give it different models to get different expected code of the target system, as long as in compliance with the metamodels.
A model driven enterprise application framework based on MDM
Of course, these may merely be the common sense in the field of MDE, but they are good examples to prove the universality of MDM, at least. One of our focus for MDM is the Model Driven Systems (MDS), which has the characteristics to dynamically changing its functions or behaviors through change the applied models at runtime. For example, see the Figure 4.
From a programmer’s perspective, a huge difference between a traditional application and the model driven application is, the enterprise / business models (such as a data structure of a purchase order) will be hard-coded in software for the former, and for the latter, it will be only hard-coded some rules / specifications (the metamodel) to define an order, so, the users will be able to change such the order format (or define a new form) when running the application system.
Finally, we can see, MDSD and MDS are the different things on the same principle, that is, the model driven mechanism (MDM). They are not contradictory. One can use the MDSD approach to develop a MDS as well.