在Rational Architect中,MDA过程是:
通过工具本身建立设计Model,中间可以用pattern来优化设计。
然后,根据自己的架构,开发符合Rational Architect要求的转换插件,把模型转换为代码模型;也可以把模型转换为代码。
可以反向。
而在open source里:
通过ArgoUml设计模型。
通过Argo2Ecore转换为xmi。
基于Merlin开发自己的代码模板或插件。
把模型转换为符合自己框架的代码。
如果自定义@Generator可能可以反向,但比较麻烦。
之前,一般通过xDoclet之类来生成代码;但是很难反向。也不能从模型生成。
现在,也用Java 1.5的Annoation。一样不好反向。
最好的方式,应该是根据模型,按照代码模板,生成代码;并且可以反向。
Rational Architect 和 Eclipse是同源的,基础结构一样。Rational Architect多一些插件。
其MDA部分,极其接近。核心的是EMF、uml2、JDT、plug-in;共同的是xmi。不同的是具体代码生成,Architect有xtool的api;而eclipse中,可以用open souce的插件,如Merlin,Argo2Ecore。
所以,基本的MDA理论必须的。Eclpise开发平台的Framework和plug-in是必须掌握的。Emf,uml2等也必定要。然后,分开在Rational Architect中和Melrin等实现转换(m2m,m2c)。只是一难一易。
所以,Eclpise和Jbuilder;IBM和Sun,比的不是别的,是工具和语言。
Eclipse的野心,是基础性开发平台,然后可以开发丰富的插件。是一个open的世界,人人可参与。
而sun 的java是语言,是一个标准。本身也是因为开放性,所以集全世界的自由开发人员的意志发展。
而微软,则是自成体系。虽然强大,但人们少了自由,就有了抱怨。虽然操作系统是成功垄断,但应用系统,人们会选择java来平衡。
现在,java的世界,多了Eclpise,从工具的角度,又多了open和人们的自由和创造。
相比,Jbuilder就像微软,我很全也很好,但是没有更多的自由,激发不了更多的创意。
Java世界和微软比,是:独裁和民主;约束和自由;遵守和创造;的区别。
就象一个世界,一个社会,民主和自由,导致更多追随着进步。