漫談「模式驅動架構」(一)

「模式驅動架構」(Model Driven Architecture - MDA)的由來

「漫談模式驅動架構」將分3期來簡述 MDA 技術的內容及其影響,讀者如有興趣可參閱學會發行的 Journal of Software Engineering Studies, 2(1), pp.3-12 本人發表的文章,我們在這一系列漫談中並不深談MDA 的理論,而只希望談談這種技術到底為何,至於專有名詞不易翻譯者,原則上將延用原文,但必要時會加以解釋。要了解這一系列漫談的文章,讀者最好具備物件導向的一般觀念。

2002年早期, Object Management Group (OMG) 聲明,MDA 為其策略方向,並於2003年6月發表"MDA Guide Version 1.0.1",至此 MDA 的發展有其「官方」依據。

MDA 是基於所謂 "事務分離" (Separation of Concern) 以及 "抽像化" (Abstraction) 的原理與觀念而設計,因此系統分析師與發展者可以集中精神在事務邏輯的分析與設計上,而不必顧慮系統層次的細節,例如將來系統要在何種平台上實作等問題,為達到這項目的,OMG 在發表的 「MDA指引」中定義 MDA的三種模式,建構這三種模式同時也顯示使用MDA來發展軟體系統的基本過程(process),包括: Computation Independent Model(CIM); Platform Independent Model(PIM); 以及Platform Specific Model(PSM),PIM 與 PSM是使用事實標準(de facto standard)的視覺化建模語言UML來描述,PIM代表業務邏輯,PSM由PIM轉換(transformation)而來,其顯示在特殊平台上的系統模式,程式則由PSM轉換產生, 這種轉換固然可以人工為之,但一般皆使用MDA工具自動化轉換,因人工轉換費時而且易錯,軟體產品如果依PIM-PSM-Code過程產生就可在「標的平台」 (target platform)上使用,我們將在往後的漫談簡介這三種模式如何形成。

雖然 MDA 在軟體工程中並非 "銀製子彈"(silver bullet),那麼企業接受這種技術有何好處,有何困難,我們引用2004年Grady Booch在 "MDA: A Motivated Manifesto" (註) 文章中所闡述,企業界可考慮接受 MDA 的 7 點重要理由:
  1. MDA使用者不必是具高度 UML 技巧的模式建造者
  2. 公司訓練工作人員精通MDA並無困難
  3. 公司如接受MDA就能夠吸引、顧用與留置MDA專家,因為MDA技術證明可加速投資回收(ROI)並節省發展時間
  4. 業務相關人員將能夠使用PIM, 因其無關實作而且容易了解
  5. 市場上提供的MDA工具已可讓使用者不受技術的牽制
  6. 以MDA為基礎的應用系統容許更複雜的自動化測試
  7. MDA工具的使用不致被特殊廠商所牽制與壟斷

我們認為企業界如果同意Booch的說法就可嘗試進入MDA的世界,而不必改變原來的作業方式,因為MDA是一種「框架」(framework),並非為特殊軟體發展方法而設計。

下次漫談除簡述 CIM-PIM-PSM-Code 過程樣式 (pattern) 外,另撰一文來談談 "敏捷" (agility) 觀念與 MDA 的結合,這種結合稱為 Agile MDA,Agile MDA 可增進軟體發展的有效度(effectiveness即agility)與效率(efficient即MDA),其功效可「活化」需求,使需求的改變不致成為發展軟體的一種負擔.

(註) http://www.sdmagazine.com/documents

留言

  1. MDD 與 MDA 是有否有直接的關聯?是不是一定要用 OMG 所訂定的 MDA 標準來開發系統才叫做 MDD, 抑或是只要在開發中有用到 model 就可以稱為 MDD?

    Nick Hsueh, FCU

    回覆刪除
  2. MDA是OMG依照他們的觀點(viewpoints)並依據所謂"Separation of Concern"的principle而構成,它並不反對有其他的觀點形成其他的架構,至於MDA與MDD(這個名稱並非OMG官方稱謂)主要差異是,MDA傾向限制並focus在UML的使用,而MDD並無此限制,MDA有其標準的proces(雖然羽毛未豐),目前有些公司提供的工具都是MDA工具,但未聞有MDD工具.MDD也有人稱為Model Driven Software Development但非OMG的語彙.
    我因"漫談MDA"無法詳談MDA的來龍去脈,如
    MDA的重要基石MOF,因此也只能漫談漫談.

    回覆刪除

張貼留言

這個網誌中的熱門文章

CMMI是什麼?

CRC cards - 非正規物件導向發展技術

談談OCP