概念之爭:什麼是MDA?

來源:互聯網
上載者:User
日前和IBM大牛談到 什麼是MDA,有所感,記錄下來吧。


* Key standards that make up the MDA-omg suite of standards include Unified Modeling Language (UML); Meta-Object Facility (MOF); XML Meta-Data Interchange (XMI); and Common Warehouse Meta-model (CWM).

如果說到MDA最正宗的定義,當然是來自www.omg.org/mda
 
其中說的是,MDA是為應對業務和技術的變化提供的一種開放的、中立的開發方法。
然後說到了MDA的目的:將業務/程式邏輯與底層平台技術分離開來,這是為了保護軟體開發投資方的利益。
但如何?這一點呢?其實說得也有夠清楚了,基於OMG提供的各種標準。這些核心標準包括:UML、MOF、XMI、CWM等(其實現在很重要的標準QVT應該納入其中,QVT正在制定中)。

其它很多地方談到的MDA的定義,包括說它是一個方法論什麼的也有,很多是從MDA的目的去說,包括:
MDA的目標是模型的可執行。
MDA是使模型成為開發的核心工件。
……
這些都沒錯。

IMHO,我覺得MDA的定義,或者說Model Driven的定義可以分為兩種:
1)廣義的模型驅動
按目的來看,凡是在模型自動產生代碼、模型可執行、以模型為中心的開發方面的工作,都可以說是模型驅動的。
在這個定義下,微軟的VSTS是模型驅動的,不論它是否支援UML標準,或者用什麼形式來支援OMG的標準。國內的KCOM (http://www.kcomsoft.com)  也是模型驅動的……
2)狹義的模型驅動
從實施的方法來看,狹義的模型驅動是指基於OMG制定的這一系列標準所做的工作。這裡,核心的概念有兩個:four-layered model architecture和MOF。四層模型結構以MOF為基礎以一致的形式管理各種元模型和模型,並且為這些元模型和模型提供了各種模型操作的標準:如XMI、JMI、QVT等。根據統一定義的標準,有專門的廠商或開源組織去開發這些標準的執行引擎。這樣MDA應用的開發中需要進行模型儲存、資料交換、模型轉換的地方都可以直接使用這些引擎,而不用自己去大包大攬。這其實就是標準化帶來的好處,也是OMG這樣一個標準化組織該乾的事情。
從這個意義來說,我認為MDA包括了OMG對模型和元模型的基於MOF的統一管理,以及提供的各方面的模型操作標準。
這個定義下的MDA工具和應用目前也有不少,如Eclipse下的GMT、還有OptimalJ等……,http://www.modelbased.net/列出了不少。

按照這個狹義的定義得到的MDA,並不是一定要用在模型可執行等前面所說的那幾個目的上,同樣可以用在其它領域、其它目的上。
按前面所說,標準化帶來的MDA給模型操作帶來的諸多好處,涉及模型操作的很多應用都可以從中收益良多。例如MDA在MIC(Model Integrated Computing)、MDA在過程建模領域(法國Nante大學的Jean教授有好幾篇論文)的應用。那麼這些算不算MDA?笑……
其實概念之爭沒有太大意義,關鍵是希望從這些辨別中產生更多的想法和加深理解。
如果對我的看法有不同意見,歡迎來信和我討論:yuandafeng at gmail.com。

Ps:原來寫過一篇《模型驅動架構MDA綜述》,其實唯寫了一半,見“模型驅動架構MDA綜述,《非程式員》第32期,www.umlchina.com”。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.