Model Driven Engineering

 

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...]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值