在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世界和微軟比,是:獨裁和民主;約束和自由;遵守和創造;的區別。
就象一個世界,一個社會,民主和自由,導致更多追隨著進步。
文章來源于領測軟件測試網 http://www.k11sc111.com/