<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    MDA之路

    MDA,UML,XML,Eclipse及Java相關的Blog
    posts - 53, comments - 494, trackbacks - 0, articles - 2
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
    ??? 這個問題的提問方式似乎有點問題。首先,ROSE是否是一種MDA工具還有待商榷。雖然Rose是出現在MDA概念出現之前的一種CASE工具,但是也不能主觀的把它排除在MDA工具之外。所謂MDA(模型驅動架構),就是以模型為中心的開發方法的架構。其中的模型有4個層次的概念,MOF的四層模型結構詳細描述這四層模型結構,但是目前應用最多,影響最大還是M1層模型,因為它可以直接轉換為代碼,極大的提高軟件開發的速度和質量。而在M1層模型中,遵循UML規范的模型又是事實上的標準,因此OMG(對象管理組織,MDA的提出和倡導者)吸納了UML作為MDA的核心部分,MOF也把UML元模型作為M2層的代表之作。因此,UML的領軍開發環境RationalRose似乎可以歸入MDA的工具之列了。
    ??? 但是問題還是要討論的,不過提問的方式可以改成“Rose生成的代碼框架和如今流行的MDA工具生成的代碼有什么不同?”如今流行的MDA工具,除了ROSE之外(好像Rose給人們的印象根深蒂固了,就是CASE工具的代表之作,而不是MDA工具),還有ArcStyler,OptimalJ和EMF(Eclipse Model Framework)以及ArgoMDA等等。這里我只接觸過ArcStyler和EMF,因此以它們為例來說一下。
    ??? 首先還是先說說Rose,Rose可以從UML模型生成代碼框架,不過只有類圖可以生成代碼,也就是說例如用況圖(我是按國家標準使用“用況”這個詞的啊,不信的人去查查,雖然一般都叫“用例”),時序圖等等都不能生成代碼。也就是說只有軟件的結構特性可以直接生成代碼,而軟件的處理流程是不能生成代碼的。而類圖生成的代碼也忠實的保持了類圖中的信息,不多不少,也就是說它正好是UML類圖的信息等價體。(這一點我也是按照我的經驗說的,望有知著教我。)
    ??? 而現在的MDA工具就是在兩個方向突破,例如ArcStyler,它不止能夠將軟件的結構特性生成為代碼框架,還可以將軟件的部分處理流程生成代碼。例如它的WebAccessor可以將Web應用的部分典型流程通過建模的方式表達出來,然后直接生成代碼表現這些流程,不止如此,還可以自動生成編譯和配置文件。關于ArcStyler的WebAccessor的使用簡介,可以到www.mdachina.net上面查找我曾經寫過的文章。
    ??? EMF選擇了另一個方向作為突破口,它也是只能將類圖轉換為代碼框架,不過它生成的代碼有了擴充的功能,也就是說,它的代碼增加了許多不能在UML類圖中表達的功能。我將這些功能總結如下:包括反射機制(不同于java的反射機制,而是ECORE模型的反射機制)、通告服務(當對象改變時會通告給監聽者,這又叫做觀察者/適配器模式?)、工廠模式(所有對象都使用對象工廠產生出來,保持接口和實現的分離)、存儲機制(自動將對象存儲為XMI文檔,并可以從XMI中讀取數據來構建對象)。還有為Eclipse的SWT界面庫所生成的部分界面代碼,利用此界面代碼可以方便的生成本地UI界面控制生成的對象。
    ??? 所以說,現在的MDA工具在代碼生成部分(除了代碼生成,應該還有元建模,模型轉換等部分),向著兩個方向努力,這些努力提供給開發者Rose的代碼框架所不能提供的一些功能。遺憾的是,關于MDA并沒有一個統一而可行的代碼生成標準,因此每使用一個新的MDA工具都必須熟悉它的一套機制,否則也只能望代碼而興嘆。路漫漫其修遠兮~~
    ??? (最近正在使用EMF,因此忍不住說一句,EMF生成的代碼實在是很帥,方便易用,它提供的幾個額外功能都能極大的便利java程序的開發。而且,對于SWT興趣很濃的我,它提供的幾個界面Provider也實在可以方便的做出好看的界面,可以是插件界面,也可以是脫離Eclipse的java界面。)

    評論

    # re: ROSE生成的代碼框架和MDA工具生成的代碼有什么不同?  回復  更多評論   

    2005-01-31 10:16 by 海天一鷗
    目前完整的MDA開發環境好像還處于開發階段,成熟的市場產品還沒有。

    但是,針對各個行業的快速應用環境,卻慢慢出來了。Workflow,CRM,Portal這類可以依靠有限度的定制與擴展工具平臺,來生產的系統已經有很多成熟產品了。

    這方面,微軟的Biztalk開發平臺做的是最好的--雖然它主要應用于多系統應用集成。

    至于工作流平臺,通過簡單建模并規定流程,生成系統的平臺已經非常多。微軟,IBM,中國的NEUSOFT等等,都有這樣成熟的系統。

    建立通用MDA開發平臺,恐怕是任重而道遠。

    # re: ROSE生成的代碼框架和MDA工具生成的代碼有什么不同?  回復  更多評論   

    2005-01-31 16:08 by wxb_nudt
    MDA試圖建立軟件建模業的“大統一場”理論,把前景規劃得無比美好,然而很多理論和實踐的基礎還不成熟,于是很多公司和開發者從MDA的各個側面入手,爭取在MDA領域占領制高點。但是這樣的結果是個個號稱自己是MDA,然而從理論基礎到實用軟件相去甚遠,導致很多初學者迷失在MDA理論和工具的汪洋大海中。成為“技術炮灰”,sigh!
    主站蜘蛛池模板: 人人狠狠综合久久亚洲 | 午夜视频在线免费观看| 国产午夜无码精品免费看动漫 | 一区二区三区福利视频免费观看| 亚洲国产综合精品一区在线播放| 亚洲乱码中文字幕久久孕妇黑人| 亚洲精品视频免费看| 羞羞漫画页面免费入口欢迎你| 中文无码成人免费视频在线观看| 性盈盈影院免费视频观看在线一区| 国产最新凸凹视频免费| 亚洲AV无码成人精品区天堂| 亚洲国产精品久久久久秋霞小 | 久久久久久国产精品免费无码| 日韩视频在线免费| 亚洲综合激情另类小说区| 国产精品色拉拉免费看| 日韩精品亚洲aⅴ在线影院| 亚洲综合中文字幕无线码| 中文字幕免费观看全部电影| 午夜毛片不卡免费观看视频| 亚洲国产精品久久久久秋霞小| 国产高清免费观看| 一级毛片成人免费看a| 毛片a级毛片免费播放下载| 亚洲va久久久噜噜噜久久 | 5555在线播放免费播放| 不卡一卡二卡三亚洲| 亚洲AV无码AV日韩AV网站| 四虎永久在线精品免费观看地址| 波多野结衣亚洲一级| 亚洲M码 欧洲S码SSS222| 亚洲精品久久无码| 在线亚洲精品自拍| 很黄很黄的网站免费的| 国产亚洲视频在线| 国产免费观看网站| 一级毛片免费播放| 国产成人亚洲精品蜜芽影院| 国产精品亚洲аv无码播放| 一个人免费高清在线观看|