標籤:style blog http java 使用 檔案
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將會使得應用程式和工具能夠跨越中介軟體的邊界,從而變得更容易整合。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可以自動產生Jbuilder工程,當我們進行代碼的補充工作的時候,可以直接開啟產生的JBuilder工程,其中包含所有產生的原始碼,也可以直接使用其他代碼編輯工具修改。注意:代碼的添加和修改都在安全區中,進行反覆的代碼產生工作並不會被覆蓋。
6. Mda的問題
由於目前流行的建模語言(例如UML)在語義方面的功能還很弱,所以目前的MDA工具幾乎只支援結構型的系統,但是我相信隨著建模語言的進一步強化,MDA技術會越來越豐富,工具也將越來越好。
7. EMF與MDA
EMF這個名字,EMF是Eclipse Modeling Framework的縮寫,它是Eclipse的一個重要的子項目,如果翻譯成中文就是“Eclipse建模架構”。其實只從這個名字還真是難以確定它的作用是什麼,我認為要完全掌握EMF應該對模型驅動開發(MDA)有一定的瞭解,而EMF可以看作是Eclipse上的MDA一個實現(代碼產生是MDA 的重要組成部分之一),它能夠產生在Eclipse上執行的代碼。
MDA講究的是把模型和應用系統實現分開,模型是最重要的部分,可以說有了清楚的模型,就完成了一半的工作
用EMF構造一個應用的步驟很簡單:1、構造模型,2、產生代碼,前者可以通過UML類圖、Java介面、 XML Schema等多種方式定義,後者可以選擇只產生模型部分的代碼,也可以同時產生編輯器部分的代碼,對這個編輯器做一些定製就可以得到符合需求的應用程式。
8. MDA跟代碼自動產生的區別
1) MDA不是代碼自動產生的規範,相反它的目標是盡量減少自動產生的程式碼。
2) MDA不是代替RUP,XP等軟體工程的傳統開發過程,而是對這些開發過程一個有益的補充,特別是直接將分析設計階段所產生的模型應用於編寫程式,並最終影響部署後的系統行為方式。
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