在Rational Architect中,MDA過(guò)程是:
通過(guò)工具本身建立設計Model,中間可以用pattern來(lái)優(yōu)化設計。
然后,根據自己的架構,開(kāi)發(fā)符合Rational Architect要求的轉換插件,把模型轉換為代碼模型;也可以把模型轉換為代碼。
可以反向。
而在open source里:
通過(guò)ArgoUml設計模型。
通過(guò)Argo2Ecore轉換為xmi。
基于Merlin開(kāi)發(fā)自己的代碼模板或插件。
把模型轉換為符合自己框架的代碼。
如果自定義@Generator可能可以反向,但比較麻煩。
之前,一般通過(guò)xDoclet之類(lèi)來(lái)生成代碼;但是很難反向。也不能從模型生成。
現在,也用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開(kāi)發(fā)平臺的Framework和plug-in是必須掌握的。Emf,uml2等也必定要。然后,分開(kāi)在Rational Architect中和Melrin等實(shí)現轉換(m2m,m2c)。只是一難一易。
所以,Eclpise和Jbuilder;IBM和Sun,比的不是別的,是工具和語(yǔ)言。
Eclipse的野心,是基礎性開(kāi)發(fā)平臺,然后可以開(kāi)發(fā)豐富的插件。是一個(gè)open的世界,人人可參與。
而sun 的java是語(yǔ)言,是一個(gè)標準。本身也是因為開(kāi)放性,所以集全世界的自由開(kāi)發(fā)人員的意志發(fā)展。
而微軟,則是自成體系。雖然強大,但人們少了自由,就有了抱怨。雖然操作系統是成功壟斷,但應用系統,人們會(huì )選擇java來(lái)平衡。
現在,java的世界,多了Eclpise,從工具的角度,又多了open和人們的自由和創(chuàng )造。
相比,Jbuilder就像微軟,我很全也很好,但是沒(méi)有更多的自由,激發(fā)不了更多的創(chuàng )意。
Java世界和微軟比,是:獨裁和民主;約束和自由;遵守和創(chuàng )造;的區別。
就象一個(gè)世界,一個(gè)社會(huì ),民主和自由,導致更多追隨著(zhù)進(jìn)步。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/