Model Driven Engineering

来源:互联网 发布:报价软件手机版 编辑:程序博客网 时间:2024/05/22 21:47

 

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 by R.J. Wieringa. Intension is a set of attributes that shared by all object in domain. For example, "Black hair, black eyes, yellow skin" could be intension of Chinese people. Though some people have their hair dyed, this is not in my scope. Another example is JAVA class is an intension of its objects. Extension is all the instance of a centain class. In this paper, it is said intention is the model that model other models and extention is a set of models modeled by the intension.

 


 

The picture above is three model levels related with instantiation relations. A question is why some pairs of intention and extension are not seperated in defferent models. Because their relationship are not meta/model relationship.

 

How to generate a taget model from a source model? We need some rules which are called transformation definitions to specify the process. And again, transformations definition is a model and it is modeled by transformation languages. 

 

Software development can regarded as a problem solving process in which a set of requirements are mapped to an executable solution called software system. For implementing a set of requirements, we may have several systems due to different qualities. We also may decompose requiments to reduce complexity, derive a system for each subset and compose them.

 

Because the world is always changing, it is easy to encouter changing requirements which are addtitive, replacement or substractive.

[continue...]

原创粉丝点击