標籤:style blog http io 使用 ar java for 檔案
atitit.提升開發效率---mda 軟體開發方式的革命--(2)
1. 一個完整的MDA規範包括: 1
2. 一個完整的MDA應用程式套件組合括: 1
3. MDA可以帶來的最大的三個優點是什嗎? 2
4. 三大MDA工具 2
5. 代碼補充 3
6. Mda的問題 3
7. EMF與MDA 4
8. MDA跟代碼自己主動產生的差別 4
9. openMDX-開源MDA平台 5
10. openMDX 的開發過程 5
11. MDA的兩種實現 5
12. 參考 6
1. 一個完整的MDA規範包括:
1、一個權威的基於UML的平台無關模型PIM;
2、一個或者多個與特定平台相關的模型PSM;
3、介面定義集合- 每一個集合描寫敘述了基本模型再不同中介軟體平台上的實現。
2. 一個完整的MDA應用程式套件組合括:
1、一個權威的PIM;
2、一個或者多個PSM;
3、一個或者多個完整的實現- 開發人員決定支援的全部平台上的應用程式實現。
將PIM映射到某個特定平台的PSM的工作是由工具自己主動完畢的,當我們須要支援新的技術的時候,這就簡化了我們的工作。
作者:: 老哇的爪子 Attilax 艾龍, EMAIL:[email protected]
轉載請註明來源: http://blog.csdn.net/attilax
3. MDA可以帶來的最大的三個優點是什嗎?
使用MDA方式可以帶來非常多的優點,最重要的三個是:基於MDA的架構總是可以隨時應付昨天的、今天的和未來的下一 個主流技術。MDA將會使得應用程式和工具可以跨越中介軟體的邊界,從而變得更easy整合。OMG Domain Task Forces小組負責在MDA中定義領域相關的工具,它將會提供更廣闊的互通性。由於這些工具將會在特定領域的首選平台上可以使用,並且假設須要,也可 以在多種平台上被使用。
4. 三大MDA工具
ArcStyler簡單介紹
ArcStyler是德國Interactive Objects Software GmbH公司開發的MDA開發軟體,它遵循OMG的MDA 規範,純JAVA 開發,跨平台。是當前最流行的三大MDA工具之中的一個,支援J2EE和.NET平台,支援橋接器的動態載入。
4.3 建立PIM模型
如同使用一些通用的UML工具一樣,能夠在UML工具區建立系統的PIM模型,包含下面工作:
? 建立一個名為iBank的包;
? 在iBank包中建立一個名為iBankDiagram的類圖;
? 在iBankDiagram圖中建立Account,Bank,Transfer三個組件;
? 為上面三個組件加入對應的方法和屬性;
完畢之後得到的模型例如以:
建立PSM模型
事實上在ArcStyler中並沒有區分PIM和PSM,由於ArcStyler並沒有提供從PIM到PSM的自己主動轉換工具,它是選擇了通過標註的方式來體現PSM的思想。
為了清晰起見,筆者將建模環節區分為建立PIM和建立PSM兩個部分,那麼建立PSM事實上僅僅是給上面的PIM作出一些技術相關的標註,包含下面內容:
? 將Bank和Account組件標註為Entity Bean;
? 將Bank和Account組件的永久儲存管理員模式標註為容器管理;
? 將Transfer組件標註為Session Bean;
5. 代碼補充
代碼產生之後,我們須要進行代碼的補充工作,這是使用ArcStyler的唯一的代碼工作,補充的代碼主要是Bean方法實現以及測試類中的方法,須要進行代碼補充的源碼檔案例如以下:
? AccountBean.java
? TransferBean.java
? BankBean.java
? iBankTestClient.java
補充的內容參看說明文檔Tutorial.pdf第47頁Component Code Customization這一節。
ArcStyler能夠自己主動產生Jbuilderproject,當我們進行代碼的補充工作的時候,能夠直接開啟產生的JBuilderproject,當中包括全部產生的源碼,也能夠直接使用其它代碼編輯工具改動。注意:代碼的加入和改動都在安全區中,進行重複的代碼產生工作並不會被覆蓋。
6. Mda的問題
因為眼下流行的建模語言(比如UML)在語義方面的功能還非常弱,所以眼下的MDA工具差點兒僅僅支援結構型的系統,可是我相信隨著建模語言的進一步強化,MDA技術會越來越豐富,工具也將越來越好。
7. EMF與MDA
EMF這個名字,EMF是Eclipse Modeling Framework的縮寫,它是Eclipse的一個重要的子項目,假設翻譯成中文就是“Eclipse建模架構”。事實上僅僅從這個名字還真是難以確定它的作用是什麼,我覺得要全然掌握EMF應該對模型驅動開發(MDA)有一定的瞭解,而EMF可以看作是Eclipse上的MDA一個實現(代碼產生是MDA 的重要組成部分之中的一個),它可以產生在Eclipse上啟動並執行代碼。
MDA講究的是把模型和應用系統實現分開,模型是最重要的部分,能夠說有了清楚的模型,就完畢了一半的工作
用EMF構造一個應用的步驟非常easy:1、構造模型,2、產生代碼,前者能夠通過UML類圖、Java介面、 XML Schema等多種方式定義,後者能夠選擇僅僅產生模型部分的代碼,也能夠同一時候產生編輯器部分的代碼,對這個編輯器做一些定製就能夠得到符合需求的應用程式。
8. MDA跟代碼自己主動產生的差別
1) MDA不是代碼自己主動產生的規範,相反它的目標是盡量降低自己主動產生的程式碼。
2) MDA不是取代RUP,XP等軟體project的傳統開發過程,而是對這些開發過程一個故意的補充,特別是直接將分析設計階段所產生的模型應用於編敲代碼,並終於影響部署後的系統行為方式。
3) 你所說的這樣的MDA實現還沒有達到開發企業級應用的階段,換句話說,根本不實際。事實上,如今不唯獨商業化的實現,也有非常優秀的開源MDA平台,比如,openMDX
9. openMDX-開源MDA平台
基於openMDX的應用能夠非常輕鬆的移植到多個不同平台,採用了MOF,JMI,XRI,XML等標準和協議,不用過多考慮會被綁定於某一平台。
高速開發、部署和彈性配置
建立了成熟模型之後,開發測試的工作量減少到了難以想象的地步,舉例來說,openCRX總共兩百天的開發過程中,建模佔了100天,介面設計定製用了70天,10天用於實現,20天用於測試部署。
極強的系統互通性
openMDX平台上公布的功能模組,對於資料的匯入匯出都是基於Schema-XML,並且能夠方便的公布為Webservice,跟其它異種系統的互動達到了輕鬆自如的地步。
缺點
penMDX也沒有提供一個IDE來支援整個開發測試和配置應用。
10. openMDX 的開發過程
不象大多數商業工具,openMDX 沒有實現PIM到PSM映射的方法。 而是提供了一個普通的,分布式的對象引擎(作為PIM 平台)。商業邏輯(模型的匯出屬性和方法)是作為外掛程式加入進去的
自己主動產生代碼和手工編寫的代碼是分放在兩個不同的檔案夾中,而對於匯出屬性和操作則是通過delegate(託付)的方式去運行手工編寫代碼的
11. MDA的兩種實現
I)使用模型驅動應用開發過程;II)直接利用模型驅動執行時應用系統的行為方式。前一種實現,大部分支援從UML模型轉換的代碼產生工具都能夠歸入此類,比如AndroMDA,而後一種實現就比較少,比如openMDX。
這兩種方式沒有優劣之分,僅僅是取決於你的應用目的而有不同的側重。
12. 參考
ArcStyler實戰-網上銀行系統 - MDA之路 - BlogJava.htm
eclipse EMF介紹系列(EMF與MDA) - Linyda工作室 - 愛好者博墅 《電腦愛好者》雜誌官方網站 - 電腦世界旗下網站! - powered by X-Space.txt
openMDX-開源MDA平台(1).htm
atitit.提升開發效率---mda 軟體開發方式的革命--(2)