3. MDA的現狀
MDA 還處在一個發展的過程中,MDA還在不斷的演進。雖然MDA正朝氣蓬勃地走來,但是人們也能看出它所存在的問題。MDA最大的好處就是業務模型的持久價值,但是付出的代價是增加了抽象層,而目前看來,層之間的轉換并不是我們所期待的那樣順暢,至少,從PIM到PSM,從PSM到代碼,這個實現的過程要遠比從3GL生成機器代碼來得困難。在建模技術方面,UML正在暴露其固有的缺陷,它需要擴展更多的機制來支持精確建模和分析模型,雖然目前OCL為精確建模提供了一定的支持,但是這種支持距離可執行模型的理想還很遙遠。回顧MDA的歷史,我們可以看出UML的巨大成功為MDA的產生奠定了堅實的基礎,同時也感覺到:在由軟件工藝到軟件工程的漫漫長路中,MDA只不過是向前邁進了一小步,但卻給整個軟件業掀起了一場波瀾,它在模型定義、開發過程等諸多方面都將對未來IT技術產生深遠的影響。
目前在MDA開發工具市場上的情形是:由于從PIM 到PSM轉換方法的標準化尚未完成,IBM、Borland等大型廠商大都持謹慎態度,雖然也紛紛在他們的開發工具中提供部分的MDA功能,但并沒有完全遵循OMG定義的MDA規范。雖然如此,IBM除了在Rational中增加MDA功能之外,在開源項目Eclipse中,也提出了EMF(Eclipse Modeling Framework)這一創新的MDA代碼生成系統項目,由此可見IBM對MDA這一發展中的技術的重視程度。Borland公司宣稱他們也在關注MDA技術,并且準備在Together中配置基于MDA的模型自動生成功能。相對于業界大廠的冷靜和矜持,一些中小廠商反而特別活躍,像Interactive Objects公司著名的ArcStyler、Compuware公司著名的OptimalJ,還有開放源碼的AndroMDA等遵循OMG標準規范的MDA工具已在一些項目中得到了廣泛的運用,并取得了顯著的成效。
4. MDA的相關標準
為了實現MDA這一宏大構想,OMG制定了一系列的標準:
UML:UML被MDA用來描述各種模型。它并不是為MDA而生,但是作為目前最為風行的建模語言,UML已經占據了全球建模語言領域90%的市場份額,成為了建模語言事實上的標準,因此OMG將它作為MDA技術的基礎是自然而然的明智選擇。它是MDA的基礎,也是MDA最有力的武器。
MOF:MOF(Meta Object Facility 元對象機制)是比UML更高層次的抽象,它的目的是為了描述UML的擴展或者其它未來可能出現的類UML的建模語言。雖然MOF也不是為MDA而生的,但是我們可以體味到OMG的工程師們良苦的用心和長遠的目光。
XMI:XMI(XML-based metadata Interchange)是基于XML的元數據交換。它通過標準化的XML文檔格式和DTDs(Document Type Definitions)為各種模型定義了一種基于XML的數據交換格式。這使得作為最終產品的模型可以在各種不同的工具中傳遞,這一點是非常重要的,它保證了MDA不會在打破了一種束縛之后再被加上一層新的束縛。
CWM:CWM(Common Warehouse Metamodel 公共倉庫元模型)提供了一種數據格式變換的手段,在任意級別的模型上都可以使用CWM來描述兩種數據模型之間的映射規則,比如將數據實體從關系數據庫變換為XML格式。在MOF的框架下,CWM使得通用的數據模型變換引擎成為可能。
在OMG的藍圖中,UML、MOF、XMI、CWM等一系列標準分別解決了MDA的模型建立、模型擴展、模型交換、模型變換這幾個方面的問題。OMG試圖通過標準化的定義,擴大MDA的應用范圍。同時通過這樣一個可擴展的建模語言環境,IT廠商可以自由實現自己的建模語言,以及語言到可執行代碼的映射,然而不管怎么樣,都必須處于OMG的標準化框架之下。
文章來源于領測軟件測試網 http://www.k11sc111.com/