• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • UML/MDA技術研究

    發表于:2008-08-06來源:作者:點擊數: 標簽:umlUMLMDA研究技術
    概念之爭:什么是MDA? 日前和IBM大牛談到什么是MDA,有所感,記錄下來吧。 如果說到MDA最正宗的定義,當然是來自www.omg.org/mda(圖片貼不上來screen.width/2)this.width=screen.width/2" vspace=2 border=0) 其中說的是,MDA是為應對業務和技術的變化提供
    概念之爭:什么是MDA?

    日前和IBM大牛談到什么是MDA,有所感,記錄下來吧。

    如果說到MDA最正宗的定義,當然是來自www.omg.org/mda(圖片貼不上來screen.width/2)this.width=screen.width/2" vspace=2 border=0>)
     
    其中說的是,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?笑……
    其實概念之爭沒有太大意義screen.width/2)this.width=screen.width/2" vspace=2 border=0>,關鍵是希望從這些辨別中產生更多的想法和加深理解。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>