This article is my summarize after reading "Adaptability of Model Driven Transformations" written by Ivan Kurtev Ivanov from Universiteit Twente. I'll keep updating it when I find some flaws.
As we have witnessed today, new technologies appear constantly. Some software companies have to adapt the lastest technology to their products even though the functions remain the same. The evolutions sometimes are expensive or even impossible because of crappy designing. For solving this problem, OMG proposed the concept Model Driven Engineering(MDE).
In MDE, everything is model, e.g. document, designing, implemeting code. In the process of development, different models appears in different stages like requirment analysis, architecture designing, implementing. These models are different but they are modeling the same thing. So how to transform from one model to another one, for example from UML diagrams to JAVA classes, is one the main problem mentioned in the paper.
OMG proposed two models in MDE which are Platform Independent Model(PIM) and Platform Specified Model(PSM). PIM is a generalization of PSM because different platforms or technologies ported in PIM will lead diffent PSM. By this way, we solved the problem of portablility and reusability.
Then what is model? Model could be a snapshot of simplification of reality. In civil engineering, engineers always build a simple model in either concrete way or digital way. Model could be an aspect of an object. Different people view an object in different ways and each view could be a model. Then model should be built for a certain purpose. A model without purpose is useless. At last, the paper gives the definition of model ---- A model represent the part of reality which is called object system and expressed in modeling language. A model provides knowledges for some certain purpose that can be interpreted in terms of object system.
If we view the model as an object system, then what is the model of model? The anserw is meta-model. Then again we have meta-meta-model. For example, a TV is an object exist in reality. We model it by using jave classes then we call the collection of these java classes is model of TV. JAVA classes are not based on nothing. Just think about why they are called JAVA classes but not C++ classes. Because they follow some rules define by JAVA language. So JAVA language is the meta-model in this example and the model of JAVA classes. By definition, meta-model is the model of modeling language. In the same way, Java is a instance of EBNF. This is three layers architectures in MDE, model, meta-model and meta-meta-model. Another example could be XML, XML schema and Meta Object Facility(MOF). The picture below may make you feel clearer about layers in MDE.
About the notions of intension and extention. In book "Design Methods for Reactive Systems: Yourdon, Statemate, and the UML" written by
[continue...]