MDA 與軟體開發工具:從 Delphi 2005 談起
2005 年 四月 21 日 (星期四) 11:27 pm分類:電腦
標籤:mda, 軟體開發論
今天下午,聽了一場由李維所主講的「Delphi 物件導向 .Net 應用程式開發」講座,收穫不少。雖然我並沒有使用 Delphi,但根據講座的大綱,似乎重點會擺在 MDA (model driven architecture) 身上,加上主講者值得信賴,就報名看看,refresh 一下 MDA 的近況,也順道看看領導廠商對於 MDA 的支援究竟有何進展。
果然如我所料,雖然題目不見得能全然反映出這三個小時的精髓,改為「Delphi 2005 的 MDA 功能簡介」或許較正確;但無疑的,這是場精彩的講座。
近年來,繼 UML (unified modeling language) 一統江山之後,OMG 的關注對象移往野心更大、但也更困難的 MDA。某方面來說,MDA 是將軟體工程界長久以來的夢想「畫畫圖,程式碼就蹦蹦蹦生出來」更加具體勾勒出來,只不過以往只是空中樓閣,現在則有了靠山,讓這夢想稍微不那麼遙不可及。
MDA 的靠山是:眾多開放標準或業界準標準的中介軟體平台 (middleware),簡化軟體元件的設計及互通性;流行的塑模語言 (modeling language),使分析階段 (analysis) 有了共通的基礎語彙;先進的軟體開發工具,強化塑模語言和中介軟體平台的聯繫。因此,MDA 勾勒出理想的軟體開發方式:在分析階段描繪出 PIM (platform independent model),再讓軟體工具根據目標平台的特性轉換出 PSM (platform specific model),再讓工具生出最終的程式碼:

其中,PIM、PSM、meta-model 與轉換規則的角色分工如下:

藍圖看起來很美麗,但我認為,單以技術角度來看,它的成敗,繫於幾個因素:
- PIM 是否完備、精確?不夠完備,不足以描繪意圖;不夠精確,不足以涵蓋細節。
- PIM → PSM 及 PSM → code 的轉換技術是否成熟、完備、正確、效率高、可微調、可擴充?
- 人工必須介入的程度多寡?
- 可允許人工介入多少?
- forward/backward/round-trip engineering 的可能性?
- 在軟體開發流程/方法論、工具、平台等層面,是否有鎖定效應 (lock-in effect)?
- 套句我兩年前在 JavaWorld 技術論壇的討論:「我認為,OMG MDA 的真正牛肉(及挑戰),在於 models 之間的 clean separation 及 mapping。」
就我所知,這些都還是 open question。
Delphi 2005 的表現令人驚豔,我會找時間玩玩。此刻,僅就今天的第一印象,談談幾個不足或不明之處,希望不會與事實差太多。
第一、Delphi 2005 的 PIM meta-model 是採用 UML class diagram 及 OCL (object constraint language)(李維說將來會再支援 UML sequence diagram)。誠然,沒有 UML,MDA 的 PIM 層次將是空殼子,無從驅動一切;但 UML 即使已演進到 2.0 版,完備性及精確性是否真的足以驅動整個 MDA?若答案是 Yes,UML 就不必殘留 “note” 這種自然語言的附註元素;若答案是 No,那麼 UML 就仍不足以表達完 PIM,也就仍不足以驅動整個 MDA,人工介入仍不可免。
第二、Delphi 2005 似乎跳過 PSM 步驟,直接由 PIM 產生 code。據李維說,等到 OMG 的 QVT (Query/View/Transformation) 規格定案後,才有正規途徑可遵循。
第三、Delphi 2005 對於 PIM 至 code 的聯繫(譬如 O/R mapping),乃透過自家的 ECO (enterprise core objects) framework 來進行。以初步印象來說,ECO 還不錯;不過,若我們採用這種 MDA 方案來開發軟體,會不會連帶被綁在 Borland solution 之下?萬一 Borland 沒有計畫將 ECO 移植到其他平台、語言,也不打算支援其他類似位階的 framework,那麼,我們既有的 PIM、轉換規則、人工嵌入的種種增添/修改碼,是否只能自力救濟 re-engineering 一番?這只能期待 Borland 未來能在 PIM、PSM、QVT 的架構下,妥善定位、refactoring ECO 的角色,才能讓 ECO 成為 Borland MDA solution 裡的一個開放選項,而非唯一選擇。
延深閱讀
- OMG’s MDA Information Page
- MDA 的官方總站,資料豐富。
- MDA Distilled
- 薄薄的介紹書。
- MDA Explained: The Model Driven Architecture–Practice and Promise
- 另一本薄薄的介紹書。
- The Borland Approach to MDA
- Borland 對於 MDA 的說帖。



追蹤留言回應:以
引用通告 (trackback):![[add to funP]](http://william.cswiz.org/blog/wp-content/themes/william/images/add-funp.png)
![[add to HEMiDEMi]](http://www.hemidemi.com/sticker/user/roxytom.bluecircus.net.gif)
![[add to udn bookmark]](http://bookmark.udn.com/html/help/80_20_02.gif)

2005 年 五月 14日 於 12:55 am
小弟汗顏…多知道了一個名詞…^^
2006 年 二月 18日 於 1:05 am
自從上個星期看到 Borland 宣布 “Plan to Divest IDE Product Lines” 之後,陸陸續續有相關評論: [...]