在加拿大
要做的题目是关于M2M模型转换的。。就是pim -> psm
有两种方式,用ATL和QVT.. ATL的我已经做好了, 但是QVT真是tm难住我了啊。。。
语言复杂不说,就连刚开始的设定metamodel都搞不定 :(
有人对这个了解多些么?
详细问题请看5楼
评论
楼主这是学校作业啊还是啥?
评论
是pa要做的东西。。楼上了解qvt不?
评论
当时学的时候只是大概了解了一下有这些这些东西,没深学
我就是特别感叹为啥德国人都这么喜欢搞mof,而且有的东西理论弄的那么深,但是一点儿没看出来德国在这方面有多高的生产力
评论
唉。。还是把问题发上来吧
我用qvt写了一个简单的转换程序,但是转换结果怎么弄都是空文件。。
然后我进行了一个简单的测试:
1. 利用OMG给的转换example运行下面的转换:
modeltype UML uses 'http://www.eclipse.org/qvt/1.0.0/Operational/examples/simpleuml';
modeltype RDB uses 'http://www.eclipse.org/qvt/1.0.0/Operational/examples/rdb';
transformation Simpleuml_To_Rdb(in uml : UML, out RDB);
main() {
uml.rootObjects()[UML::Model]->map model2RDBModel();
}
mapping UML::Model::model2RDBModel() : RDB::Model {
name := self.name;
}
复制代码Input是一个自己创建的.simpleuml文件,里面有一个Model类,转换结果很正常,自动创见了一个目标文件 .rbd. 里面有一个Model类
然后我用自己做的两个metamodel来转换,代码也是和上面一个性质的:
modeltype uml uses "platform:/resource/QVT/Klasse.ecore";
modeltype relational uses "platform:/resource/QVT/Relational.ecore";
transformation Klasse2Relational(in xx : uml, out relational);
main() {
xx.rootObjects()[uml::Klasse]->map class2table();
}
mapping uml::Klasse::class2table() : relational::Table {
name := self.name;
}
复制代码也是自己创建了一个.klasse文件作为input, 内含一个Klasse类, 按理说转换结果应该是一个.relational文件,里面包含一个Table类,但是结果却是一个.relational文件,里面是空的。。我是百思不得其解啊。。
详细的metamodel可以在这里看到:
·加拿大新闻 真不是诈骗!加拿大人收到这条短信千万别删!
·加拿大新闻 加拿大官宣移民新规:这些申请直接退回!今年大规模驱逐将破
·加拿大新闻 卡尼发警告:加拿大人必须做出牺牲,三大计划曝光
·加拿大新闻 兰博基尼瞄准中国未来20年新机遇
·加拿大新闻 大众新车型热销,11.9万,月销17608台
·中文新闻 艾莉森·博肖夫:这张爆炸性的派对照片显示莉兹·赫尔利与她的
·中文新闻 BBC“坚持所有女性严格主持二人组”,据透露,苔丝·戴利和克