国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
模型驅(qū)動體系架構介紹 第一部分: MDA 和當今的系統(tǒng)(轉(zhuǎn)與 Rational Edge)

2005 年 4 月 01 日

本文來自于 Rational Edge: 在這個由三部分文章組成的系列的第一篇中,Brown 解釋了模型和建模的重要性,并介紹了四個關鍵的 MDA 的原則,同時讓你了解一下 IBM 在定義 MDA 方法和支持標準上扮演的領導者的角色。


在最近的幾個月很多組織已經(jīng)開始對模型驅(qū)動的體系架構(MDA) 1 進行關注,MDA 是一種應用系統(tǒng)設計和實現(xiàn)的方法。對于幾個原因來說這都是非常積極的發(fā)展。 MDA 鼓勵在軟件的開發(fā)過程中有效的使用系統(tǒng)的模型,并且它支持創(chuàng)建類似系統(tǒng)的最佳實踐的重用。所謂由對象管理組織 (OMG)定義的標準,MDA 是一種組織和管理被自動化工具支持的企業(yè)體系架構和用于定義模型和推動不同模型類型之間的轉(zhuǎn)換的服務的方法。

當被 OMG 定義的 MDA 標準和用于創(chuàng)建和進化企業(yè)級軟件系統(tǒng)的術語在業(yè)界被廣泛的引用時,僅僅到目前為止, OMG 和它的成員,包括 IBM Rational ,已經(jīng)能夠在 MDA 意味著什么、MDA 將向哪里發(fā)展、MDA 的哪些方面對于今天的技術是可能的和如何在實踐中利用 MDA 上提供清晰的指導。

本文是這個由三篇文章組成的系列的第一部分,這個系列將覆蓋:在現(xiàn)今的工業(yè)中建模將如何被使用和 MDA 與當今軟件系統(tǒng)的關系(第一部分);MDA 工具支持的分類(第二部分);和在 IBM 的模型驅(qū)動的開發(fā)技術環(huán)境中 MDA 的使用樣例(第三部分)。

在這個第一部分的文章中,我們解釋了模型和建模的重要性,并介紹了四個關鍵的 MDA 的原則,同時讓你了解一下 IBM 在定義 MDA 方法和支持標準上扮演的領導者的角色 2 。

有效的企業(yè)軟件開發(fā)


今天開發(fā)企業(yè)級的應用要求一種軟件架構的方法,這種方法應該能夠以一種靈活的方式幫助架構師來發(fā)展他們的架構。這種方法應該允許在及時的實現(xiàn)業(yè)務功能的新的能力的情況下重用已有的勞動成果,甚至是當目標基礎架構本身在一直的演進。兩個重要的思想現(xiàn)在被認為是應對這種挑戰(zhàn)的中心:

  • 面向服務的體系架構(SOA)。企業(yè)解決方案能夠被視作通過良好的說明定義了他們的服務接口契約連接的服務聯(lián)合。結果的系統(tǒng)設計通常被稱作面向服務的體系架構(SOAs)。 3 通過將一個系統(tǒng)組織成為被封裝好的服務集合,這些服務可以通過他們定義的服務接口被操作,系統(tǒng)的靈活性被大大的增強了。現(xiàn)在很多組織用一系列的服務和服務之間的相互連接表示他們的解決方案。
  • 軟件的產(chǎn)品線。通常,在一個組織開發(fā)和維護的系統(tǒng)中,存在著大量的可公用的部分。從捕獲核心業(yè)務過程和領域概念的標準領域模型,到開發(fā)人員在代碼中使用的實現(xiàn)設計的實現(xiàn)細節(jié)方案,我們在企業(yè)的軟件項目的每一個級別上看到了重用的方法。當模式能夠被經(jīng)驗豐富的從業(yè)者開發(fā)出來并在跨越組織的范圍內(nèi)傳播時,軟件開發(fā)組織將獲得大量的效率。這表現(xiàn)了一種朝著促進計劃的資產(chǎn)重用,增加自動化的級別來實現(xiàn)被開發(fā)系統(tǒng)大部分的方案的軟件產(chǎn)品線開發(fā)視圖的遷移。 4 更加普遍的情況下,我們能夠?qū)⒃陂_發(fā)的產(chǎn)品線視圖中定義良好模式的應用理解成為一種從一個抽象級別到一個更底層抽象級別的方案轉(zhuǎn)化描述的方法。

這兩種思想對對象管理組織(OMG)的思想有著重大意義的影響,一個開發(fā)和支持規(guī)范以改進企業(yè)軟件開發(fā)和部署實踐的軟件組織聯(lián)盟(在下一個部分 OMG 將扮演更重要的角色)。OMG 已經(jīng)創(chuàng)建了一個概念性的框架 5 ,這個概念性的框架將平臺選擇與獨立的面向業(yè)務的決定分離開來以使在架構和演進這些系統(tǒng)時允許更大的靈活性。這個概念性框架和幫助實現(xiàn)它的標準就是 OMG 稱為的"模型驅(qū)動的體系架構(MDA)."。 6 應用的架構師使用 MDA 框架作為表示他們企業(yè)架構的藍圖,并且使用在 MDA 中的開發(fā)標準作為他們獨立于供應商和技術的"未來的證明 "。

OMG 的 MDA 的概念通過 OMG 的構建模型的標準對系統(tǒng)的交互性提供了一種開放的、供應商中立的方法:統(tǒng)一建模語言(UML),Meta-Object Facility (MOF), XML Metadata Interchange (XMI) 和 Common Warehouse Meta-model (CWM) 。企業(yè)應用的描述能夠使用這些建模標準被建立并被轉(zhuǎn)化到一種主流的開發(fā)的或者是私有的平臺上,包括 CORBA ,J2EE ,.NET 和基于 Web 的平臺。

在我們開始深入的了解 MDA 之前,讓我們考慮一下在軟件開發(fā)中進行建模的基本概念和好處。





回頁首


建模的基本原理


模型提供了一個物理系統(tǒng)的抽象,模型可以讓工程師們通過忽略無關的細節(jié)而把注意力放到系統(tǒng)的重要部分來思考系統(tǒng)。工程中的所有工作形式都依賴模型來理解復雜的、真實世界的系統(tǒng)。模型被用在很多的方面:預期系統(tǒng)的質(zhì)量,當系統(tǒng)的某些方面變化時推理特定的屬性,和為各種涉眾溝通關鍵的系統(tǒng)特征。模型也可以作為實現(xiàn)物理系統(tǒng)的先驅(qū)被開發(fā),或者模型可以根據(jù)一個已存在的系統(tǒng)或者開發(fā)中的系統(tǒng)被產(chǎn)生作為理解系統(tǒng)行為的幫助手段。

系統(tǒng)和模型轉(zhuǎn)換


因為一個系統(tǒng)的很多方面也許都是讓人感興趣的,你可以及時的根據(jù)系統(tǒng)相關的部分在任何點上使用各種不同的建模概念和符號來突出一個或者多個特定透視圖或者視圖。此外,在一些情況下,你可以使用提示或者規(guī)則來添加一些模型,這可以幫助你將模型從一種表示法轉(zhuǎn)換成為另一種表示法。通常在相同的抽象級別上轉(zhuǎn)換到系統(tǒng)的不同視圖是必要的(例如,從架構視圖到行為視圖的轉(zhuǎn)換),并且模型的轉(zhuǎn)換將使它更加容易。在其他的情況下,模型之間的轉(zhuǎn)換是在一個特定的方面上進行的,這種轉(zhuǎn)換是從一個抽象級別到另一個抽象級別,這往往是通過按照轉(zhuǎn)換的規(guī)則添加更多的細節(jié)從更加高的抽象視圖到低的抽象視圖進行的。

模型、建模和 MDA


模型和模型驅(qū)動的軟件開發(fā)是 MDA 方法的核心。因此,為了更好的理解 MDA ,我們應該首先來了解一下企業(yè)應用開發(fā)人員是如何利用建模的。

追溯到程序設計的最早的日子,在軟件工程的世界里,建模有著悠久的傳統(tǒng)。多數(shù)近期的革新都是關注于符號和工具的,這些工具允許用戶非常容易的映射到在特定的操作系統(tǒng)上能夠被編譯的編程語言代碼的方式來表示對軟件的架構師和開發(fā)人員有價值的系統(tǒng)透視圖。這些實踐的當前情況是使用統(tǒng)一建模語言(UML)作為首選的建模符號。UML 允許開發(fā)團隊在相應的模型中獲取一個系統(tǒng)的各方面的重要特征。這些模型之間的轉(zhuǎn)換主要是手工進行的。UML 建模工具典型的支持需求的跟蹤和模型元素之間的依賴關系,通過支持文檔和補充的咨詢信息提供如何作為大范圍開發(fā)工作的一部分來維護同步模型的最佳實踐的指導。

一個有用的刻畫當前實踐特色的方法是看一下用于同步模型和源代碼的不同的方法。這在圖 1 中被列舉 7 圖 1 顯示了今天軟件從業(yè)者使用的建模方法的光譜。每一個類型代表了一種獨特的幫助軟件從業(yè)者創(chuàng)建能夠運行在特定運行時平臺上的應用(代碼)和模型與代碼之間的關系的模型的使用。 8

圖 1: 建模的光譜


今天,多數(shù)的軟件開發(fā)人員仍然在使用 單獨-代碼的方法(在建模光譜的左端,圖 1)并且根本沒有分離的定義模型。他們幾乎完全的依靠他們編寫的代碼,并且他們直接在一種集成的開發(fā)環(huán)境(IDE)中(比如,IBM WebSphere Studio , Eclipse 或者 Microsoft VisualStudio 9 )通過第三代的編程語言如 Java 、C++ 或者 C# 直接的表示他們正在建立的系統(tǒng)的模型。他們所做的任何"建模"都是以嵌入在代碼中的編程的抽象形式進行的(比如,包、模塊和接口等等),這些方式是通過程序庫和對象層次的機制進行管理的。任何分離的體系架構的設計模型都是不正規(guī)的和依靠直覺的,并且存在于白板上、PowerPoint 幻燈片上或者開發(fā)人員的腦袋中。然而這種方法對于個體開發(fā)者和小的開發(fā)團隊也許是足夠的,但是這種方法使在業(yè)務邏輯實現(xiàn)的細節(jié)中理解系統(tǒng)的關鍵特性十分的困難。此外,隨著系統(tǒng)的范圍和復雜度的增加,系統(tǒng)的演進或者在原來的設計團隊成員不能直接的與維護系統(tǒng)的團隊溝通時,這種方法對于管理這些方案的演進將是更加困難的。

一個改進是在一些適當?shù)慕7栔刑峁┝?代碼可視化。當開發(fā)人員創(chuàng)建或者分析一個應用時,他們通常希望通過一些輔助理解代碼的結構或者行為的圖形化符號來可視化代碼。作為一種編輯基于文本代碼的可選方式利用圖形化的符號也是可能的, 所以可視化的描寫變成了一種代碼的直接表示。這種描寫有時稱作代碼模型,或者實現(xiàn)模型。在允許這種畫圖的工具中(比如,IBM WebSphere Studio 和 Borland Together/J),代碼的視圖和模型的視圖可以被同時顯示;當開發(fā)人員對其中的一個進行操作時,另一個視圖也將立即進行同步。在這種方法中,圖與代碼表示緊緊的聯(lián)系在一起,并提供了在代碼級別上觀看和編輯的可選方法。

建模的更深層次的利益是通過 雙向工程(RTE)得到的,雙向工程提供了一種在描述系統(tǒng)的架構或者設計和代碼的模型之間進行雙向交換的機制。典型的情況下,開發(fā)人員將系統(tǒng)設計細化到一定的詳細級別,然后通過應用模型-代碼的轉(zhuǎn)換創(chuàng)建第一輪的實現(xiàn),這通常是手工完成的。例如,一個工作在高級別設計的團隊也許會向工作在實現(xiàn)級別上的團隊提供設計模型(也許是通過簡單的打印出模型圖或者為實現(xiàn)團隊提供包含模型的文件)。實現(xiàn)團隊轉(zhuǎn)換這個抽象、高級別的設計成為詳細的設計模型的集合和編程語言的實現(xiàn)。其中表示上的重復將作為錯誤出現(xiàn),這些錯誤既可以在設計模型中更正也可以在實現(xiàn)模型中更正。因此,如果沒有良好的紀律,抽象模型和實現(xiàn)模型常常 — 并很快 — 的因為步調(diào)不一致而結束。

工具能夠自動化的進行最初的轉(zhuǎn)換,也可以在設計模型和實現(xiàn)模型進行演進時幫助他們保持步調(diào)一致。典型的,工具可以從用戶必須進一步細化的設計模型生成代碼的框架。 10 對代碼的更改必須要在一些點上與原有的模型相一致(也就是術語"雙向工程"或者 RTE)。為了實現(xiàn)這一點,你需要一種方法來識別出被產(chǎn)生的用戶定義的代碼;在代碼中放置標記就是一種方法。實現(xiàn)這個方法的工具,比如 IBM Rational Rose 能夠支持在模型與不同實現(xiàn)語言之間雙向提供多種轉(zhuǎn)換服務。

在一種 以模型為中心的方法中,系統(tǒng)模型具有足夠的細節(jié)能夠從這些模型中生成整個系統(tǒng)的實現(xiàn)。為了實現(xiàn)這一點,模型也許應該包括,比如持久數(shù)據(jù)和非持久數(shù)據(jù)、業(yè)務邏輯和表示層元素的表示法。如果存在任何與遺留數(shù)據(jù)和服務的集成,對那些元素的接口也需要被建模。然后代碼生成過程應用一系列的模式將模型轉(zhuǎn)換成代碼,通常允許開發(fā)人員對被應用的模式進行一些選擇(比如,選擇各種不同的部署拓撲)。這種方法常常使用標準的或者私有的應用框架和運行時服務,這些應用框架和運行時服務能夠通過限制被生成應用的類型使代碼生成任務更加容易。因此,使用這種方法的工具典型的專攻于特定應用類型的生成(例如,用于實時嵌入式系統(tǒng)的 IBM Rational Rose Technical Developer 和用于企業(yè) IT 系統(tǒng)的 IBM Rational Rapid developer)。然而,在所有的情況下,模型都是被開發(fā)人員創(chuàng)建和操作的主要產(chǎn)物。

一個 單獨模型的方法在圖 1 中的編碼/建模光譜的最右端。在這種方法中開發(fā)人員把模型純粹的作為理解業(yè)務或者方案領域,或者分析被提議的方案架構的輔助手段。模型通常被作為討論、交流和在一個單獨的組織或者是跨多個組織的項目中進行分析的基礎來使用。這些模型常常出現(xiàn)在新工作的建議中,或者裝飾在辦公室的墻上和在軟件實驗室中作為一種促進對一些復雜領域理解的方法并建立一個共享的在完全不同的團隊中的詞匯表和概念集。實際上,一個系統(tǒng)的實現(xiàn),不論是從打草稿開始還是作為一個已有方案的更新,都可以從模型中分離出來。一個有趣的例子是越來越多的組織將他們的系統(tǒng)的實現(xiàn)和維護進行外包,而他們自己維護整個的企業(yè)架構的控制。

MDA:成長中的公認輿論


建模已經(jīng)在軟件工程中起到了較大的影響,并且它對于每一個企業(yè)級方案的成功都是至關重要的。然而,在模型的表示和如何使用上有著很大的多樣性。一個有意思的問題是:這些方法中的哪一種我們能夠描述為"模型驅(qū)動呢"?如果我創(chuàng)建一個系統(tǒng)的某些部分的可視化表示,這能意味著我正在實踐 MDA 嗎?不幸的是,沒有一個確定的答案。然而,存在著一種正在成長的輿論認為 MDA 是最貼近于從更加抽象的模型自動的產(chǎn)生代碼,并且使用標準的說明語言來描述那些模型的方法。我們在接下來的部分探究這個概念。





回頁首


MDA 的理論


對于 MDA 是什么和不是什么有著很多中觀點和意見,最權威的觀點是被對象管理組織(OMG)提供的,一個擁有超過 800 家公司、組織和個人的軟件行業(yè)聯(lián)盟。為什么 OMG 關于 MDA 的觀點是如此的重要呢?作為一個新興的體系架構的標準,MDA 屬于 OMG 支持的悠久傳統(tǒng)和過去二十年中的眾多計算機標準。 OMG 一直負責一些對于系統(tǒng)的說明和互操作性方面的工業(yè)上知名的和最具影響力的規(guī)范的開發(fā),包括公共對象請求代理體系架構(CORBA),OMG 接口定義語言(IDL),Internet Inter-ORB Protocol (IIOP),統(tǒng)一建模語言(UML),Meta Object Facility (MOF), XML Metadata Interchange (XMI), Common Warehouse Model (CWM) 和 Object Management Architecture (OMA)。此外,OMG 也增強了這些規(guī)范來支持特定行業(yè),比如衛(wèi)生保健業(yè)、制造業(yè)、電信業(yè)和其他的行業(yè)。

OMG 已經(jīng)重新關注它的策略、標準和定位來支持 MDA 方法。OMG 正在將 MDA 作為一種開發(fā)更加準確的滿足客戶需要并且在系統(tǒng)的演進中具有更好靈活性的系統(tǒng)方法來促進它的發(fā)展。MDA 方法構建在較早期的系統(tǒng)規(guī)范標準的工作上,并且為定義相互連接的系統(tǒng)提供一種全面的具有互操作能力的框架。

MDA 原則


OMG 組織對于 MDA 的觀點下有四個原則:

  • 以一中定義良好的符號表示的模型是理解企業(yè)級方案系統(tǒng)的基礎。
  • 系統(tǒng)的構建能夠圍繞著一系列模型通過使用在模型之間的一系列轉(zhuǎn)換被組織的,并且能被組織到一個分層的和轉(zhuǎn)換的體系架構框架中。
  • 以一系列元模型來描述模型的一種正式的支持能夠使在模型中有意義的集成和轉(zhuǎn)換變得容易,并且是通過工具實現(xiàn)自動化的基礎。
  • 接受和廣泛采納基于模型的方法需要工業(yè)的標準提供開放性給客戶,并鼓勵供應商之間的競爭。

為了支持這些原則,OMG 已經(jīng)定義了一系列的層次和轉(zhuǎn)換,他們?yōu)?MDA 提供了概念性的框架和詞匯表。特別的,OMG 確定了四種模型類型:計算無關的模型(CIM),平臺無關的模型(PIM),被一個平臺模型(PM)描述的平臺相關的模型(PSM)和一個實現(xiàn)相關的模型(ISM)。

對于 MDA 來說,“平臺”僅僅是相對特定的視圖觀點有意義的 --換句話說,一個人的 PIM 可以是另一人的 PSM 。例如,如果一個模型沒有 規(guī)定一種特定的中間件技術的選擇,那這個模型對于通訊中間件來說就是一個 PIM 。然而,當一個使用特定的中間件(比如CORBA)被決定使用時,這個模型就被轉(zhuǎn)化成了一個 CORBA 相關的 PSM 。新的模型在 ORB 的選擇上也許仍然是一個 PIM -- 在目標操作系統(tǒng)和硬件的方面這個模型也是一個 PIM 。如圖 2 所示。

圖 2: PIM 到 PSM 轉(zhuǎn)化的例子


作為結果,一個 MDA 工具也許通過幾個步驟支持轉(zhuǎn)化一個模型,從最初的分析模型到可執(zhí)行的代碼。例如,IBM Rational XDE 的模式工具就支持這種多種轉(zhuǎn)換的開發(fā)。相比之下,一個工具(比如,IBM Rational Rose Technical Developer)能夠僅用一個步驟就將模型從 UML 轉(zhuǎn)化成可執(zhí)行的代碼。

MDA 的從業(yè)者認可轉(zhuǎn)換能夠被應用到一個系統(tǒng)的各個方面的抽象描述以添加細節(jié),使描述更加準確,或者在表示法之間進行轉(zhuǎn)換。不同類型模型之間的區(qū)別允許我們將軟件和系統(tǒng)開發(fā)想象成為一系列在不同模型表示法之間的細化。對于包括了在表示系統(tǒng)不同方面的模型之間的細化,對一個模型的細節(jié)的添加,或者在不同的模型類型之間的轉(zhuǎn)換的情況下,這些模型和他們的細化是開發(fā)方法的重要組成部分。

這里是關于模型的抽象本質(zhì)和模型所表達的詳細實現(xiàn)的三種重要思想:

  • 模型分類。我們能夠通過如何表示目標平臺的各個方面的術語對軟件和系統(tǒng)模型進行分類。在所有的軟件和系統(tǒng)開發(fā)中都存在著通過語言、硬件、網(wǎng)絡拓撲、通訊協(xié)議和底層架構等選擇所帶來的重要約束。這些約束的每一個能夠被作為一個方案"平臺."的元素被考慮。MDA 的方法幫助我們關注在被設計方法的業(yè)務方面的本質(zhì)上,而不是在 "平臺."相關的細節(jié)上。
  • 平臺無關。"平臺"的概念是相當復雜和高度依賴環(huán)境的。例如,在一些情況下,平臺也許是操作系統(tǒng)和相關的工具;在一些情況下,它也許是被良好定義的編程模型所代表的技術架構,比如 J2EE 或者 .Net ;在其他的情況下,它也許是一個特定的硬件拓撲的實例。在任何情況下,考慮根據(jù)不同抽象級別的模型被用于不同的目的,而不是將注意力分散到定義"平臺."上是更加重要的。
  • 模型的轉(zhuǎn)換和細化。通過將軟件和系統(tǒng)開發(fā)想象成為一系列的模型細化,模型之間的轉(zhuǎn)換變成了開發(fā)過程中的第一類元素。這是重要的,因為大量的工作任務發(fā)生在定義這些轉(zhuǎn)換上,這通常需要特殊的業(yè)務領域的知識和用來實現(xiàn)的技術等等。我們能夠通過明確的獲取這些轉(zhuǎn)換和跨方案的重用它們來改進系統(tǒng)的效率和質(zhì)量。如果不同的抽象模型被良好的定義,我們能夠使用標準的轉(zhuǎn)換。例如,在以 UML 表示的設計模型和以 J2EE 表示的實現(xiàn)模型之間,我們能夠使用良好理解的能夠被應用、驗證和自動化的 UML 到 J2EE 的轉(zhuǎn)換模式。

在這些模型表示法和支持的轉(zhuǎn)換之下是一系列的元模型。分析、自動化和轉(zhuǎn)換模型的能力需要一個清晰、明確的方法來描述模型的語義。因此,對于一個建模方法模型的本質(zhì)本身也必須能夠以模型來表示,我們稱這種模型為元模型。例如,UML 的標準語義和符號就是用元模型描述的,工具的提供商以一種標準的方法使用元模型來實現(xiàn) UML 。UML 元模型精確的描述了類、屬性和這兩個概念之間的關系的細節(jié)。

OMG 認可對于建模來說元模型和正規(guī)語義的重要性,,并且還定義了一系列元建模級別和用于表示元模型的標準語言:Meta Object Facility (MOF)。元模型使用 MOF 正式的定義一系列建模構想的抽象語法。

模型和模型之間的轉(zhuǎn)換將使用開放的標準被說明。作為工業(yè)的聯(lián)盟,OMG 一直擁護多種用于說明系統(tǒng)和系統(tǒng)間的互連性的重要工業(yè)標準。通過這些標準,例如 CORBA、 IIOP、 UML 和 CWM ,軟件行業(yè)能夠?qū)崿F(xiàn)以前不可能的系統(tǒng)互操作能力的級別,此外,工具交換標準,例如 MOF 和 XMI ,也促進了工具的互操作。

一個簡單的例子


圖 3 顯示了一個平臺無關模型(PIM)和它的三種轉(zhuǎn)換到平臺相關模型(PSM)的簡單的例子。




圖 3:PIM 到 PSM 轉(zhuǎn)換的簡單例子


在圖 3 中的簡單的 PIM 表示了一個客戶和賬號。在這個抽象級別上,模型通過類和類的屬性描述了領域的重要特征,但是并沒有描述任何關于什么樣的技術將被使用的平臺相關的選擇。圖 3 指出了三個特定的被定義的映射,或者轉(zhuǎn)換,和一些用來表示這些映射的標準來創(chuàng)建 PSM 。例如,一個方法是使用被 XML Schema Definitions (XSD) 或者 Document Type Definitions (DTD)表示的標準定義將以 UML 表示的 PSM 輸出成為 XMI 格式。然后這能被用作代碼生成工具的輸入,這個代碼生成工具為每一個以 UML 定義的類生成 Java 語言的接口定義。

通常,一系列的規(guī)則被建立在代碼生成工具中以執(zhí)行轉(zhuǎn)換。然而,代碼生成工具往往允許那些規(guī)則通過腳本語言的形式被明確的定義。 11

簡單的介紹 MDA 的理論


隨著使用模型來表示問題和方案領域關鍵思想的悠久歷史,MDA 為使用模型和應用模型之間的轉(zhuǎn)換作為被控制的、高效的軟件開發(fā)過程的一部分提供了概念性的框架。這里是今天控制 MDA 用法的基本設想和因素:

  • 模型幫助人們理解和交流復雜的思想。
  • 根據(jù)環(huán)境上下文,許多不同種類的元素能夠被模型化。這些模型提供了符合世界的不同視圖。
  • 我們在這些模型的所有級別上看到了公用性 -- 不論是在被分析的問題上還是在被建議的方案上。
  • 應用不同類型模型的思想和模型表示法之間轉(zhuǎn)換提供了一種定義良好的開發(fā)和識別和重用公用方法的方式。
  • 在"模型驅(qū)動的體系架構"方面,OMG 提供了一個概念性的框架和一系列表示模型、模型關系和模型到模型轉(zhuǎn)換的標準。
  • 工具和技術能夠幫助實現(xiàn)這個方法,并使這個方法更具實踐性和高效的被應用。




回頁首


IBM 和 MDA


IBM 在對建模、模型驅(qū)動開發(fā)的支持上有著悠久的傳統(tǒng),并且 MDA 顯然跨越了 IBM 的很多技術和服務領域(例如,業(yè)務建模、數(shù)據(jù)建模和部署建模等等)。這里我們將關注于 IBM Rational 的解決方案,在 IBM Rational 的解決方案中建模主要被用于驅(qū)動企業(yè)級應用、軟件密集系統(tǒng)的設計和實現(xiàn)。

在過去的十多年中, IBM Rational 工具一直強調(diào)建模作為一種提升系統(tǒng)抽象級別的方法的重要性,軟件的從業(yè)者在這個抽象的級別上理解和構建軟件解決方案。在過去的幾年中,軟件開發(fā)行業(yè)不斷的意識到更高級別抽象的價值 — 從在機器語言級別上的代碼描述到 MDA 的出現(xiàn) — 見圖 4 。

圖 4: 對于軟件從業(yè)者漸增的抽象級別


我們已經(jīng)看到了一系列的軟件從業(yè)者理解的軟件密集的解決方案的基本轉(zhuǎn)變。這些轉(zhuǎn)變改變了絕大多數(shù)軟件工程師們的思想。從前,他們只是關心他們自己的低級別的操作數(shù)據(jù)位和在 CPU 的寄存器之間移動字節(jié)的細節(jié);現(xiàn)在,他們將主要的時間花費在根據(jù)被支持的用例來理解用戶的問題領域和設計提供行為的服務之間的協(xié)作的方案來實現(xiàn)那些用例上。只有存在著支持高效的允許新概念被清晰的表達和共享的工具,這個在思想上意義深遠的轉(zhuǎn)變才有可能。

這個轉(zhuǎn)變的基礎當然是 UML 。它提供了一個公共概念的單一集合,這些公共概念被廣泛的應用到軟件工業(yè)中,很快的結束了當設計軟件系統(tǒng)時應該使用哪一種概念集合的長期爭論。IBM Rational 在定義 UML 中的領導角色被廣泛的認可,IBM Rational Rose 產(chǎn)品在實現(xiàn) UML 來支持大型軟件系統(tǒng)的架構方面也是同樣出眾的。相同的原則已經(jīng)被應用到了 IBM Rational Rose XDE 產(chǎn)品家族當中,它合并了豐富的建模環(huán)境和面向代碼的工具集以為在各種架構類型和特定的目標運行時平臺中創(chuàng)建方案提供全面的從業(yè)者桌面。

通過 IBM 的支持 OMG 定義的 MDA 可視化建模和開發(fā)工具,和隨著時間的推移對 MDA 的支持, IBM 將繼續(xù)這種在建模支持上的傳統(tǒng)。

IBM 對 MDA 的觀點


IBM 堅定的相信通過創(chuàng)建問題領域和方案領域的模型和在整個軟件項目的生命周期中調(diào)整這些模型,軟件組織將會很好的被服務。因為 IBM 一直是模型驅(qū)動的軟件開發(fā)方法的強烈建議者,并且模型驅(qū)動的開發(fā)形成了來自于 IBM 的最佳實踐和工具的關鍵組件,今天遍及世界的 IBM 的客戶使用了這些技術來實現(xiàn)良好的結果。 12

IBM 將 MDA 視為一種新興的關注于一種軟件開發(fā)的特殊方式的標準和技術的集合 -- 它指明了某種模型類型被使用,這些模型如何被準備和不同模型類型之間的關系。 MDA 和 實現(xiàn) MDA 的工具提供下面的方法:

  • 說明與支持平臺無關的系統(tǒng)、
  • 說明平臺。
  • 選擇系統(tǒng)開發(fā)的特定平臺。
  • 將系統(tǒng)說明轉(zhuǎn)換成特定平臺相關的模型。

總而言之,IBM 相信兩種軟件開發(fā)工具將為 MDA 提供強有力的支持:

  • 在模型定義和轉(zhuǎn)換上提供了高度自動化的工具,典型的是針對特定的應用領域的,適合這個領域的復雜的轉(zhuǎn)換規(guī)則能夠被預先定義。
  • 被設計用于更加通用的目的,但是能夠通過最終用戶和第三方工具供應商的擴展和定制被配置以支持 MDA 的工具,典型的是針對更大范圍的應用領域的。

IBM Rational 提供了這兩類產(chǎn)品。 13 在第一類產(chǎn)品中,IBM Rational Rose Technical Developer 提供了高度自動化的模型轉(zhuǎn)換和強大的代碼生成能力 — 這種能力對于嵌入式系統(tǒng)和其他技術軟件產(chǎn)品的開發(fā)人員尤其重要。類似的,IBM Rational Rapid Developer 提供了高度自動化的面向 J2EE 應用的 MDA 的實現(xiàn),它能夠集成和擴展已有的遺留系統(tǒng)。在第二個種類中,IBM Rational Rose XDE Developer 提供了模式能力、代碼模板和應用接口的合并,這允許開發(fā)人員和供應商為更加普遍的領域適用性自己開發(fā)他們的 MDA 實現(xiàn)。

IBM 在 MDA 上的領導地位


IBM 對 MDA 支持的其他重要方面能夠在很多關鍵的 MDA 標準中 IBM 扮演的領導地位看到。IBM 一貫的為 OMG 在以下方面提供強有力的支持:

  • 詳細的標準大量的來自于 IBM 的技術。一個重要的例子,當然是 UML ,它是基于 IBM Rational — 以前的 Rational 軟件 ,2003 年被 IBM 收購—的基礎上。另外,IBM Rational 在其他的標準上也有著重要的影響,比如,Meta Object Facility (MOF),QVT 標準和新興的可重用資產(chǎn)規(guī)范(RAS)的工作上。
  • 來自于 IBM Rational 的對驅(qū)動 MDA 標準的個人承諾。IBM Rational 的職員在 OMG 的機構委員會中、標準任務和開發(fā)方案的團隊中占據(jù)著關鍵的位置。IBM Rational 熱衷于繼續(xù)在 MDA 標準上的深層次的參與,并確保那些標準在 IBM Rational 的工具中是可實踐的和高效的。




回頁首


總結


MDA 還在一個發(fā)展的過程中;完整的 MDA 定義還在不斷的演進。狹義上講,它是關于一個系統(tǒng)的不同的抽象模型,和在模型之間的定義良好的模型轉(zhuǎn)換。廣義上講,它是關于抽象的各種級別上的模型,這些抽象作為基礎為軟件架構服務,這些架構最終將通過各種實現(xiàn)技術被實現(xiàn)。此時,MDA 被解釋的非常廣泛,并且很多組織(他們的一些工具已經(jīng)在本文中被提及)主張在不同的方案中"支持" 或者 "符合" MDA 的標準。

我們已經(jīng)利用這個機會表明了 IBM Rational 對于 MDA 的觀點和我們的工具是如何支持被 OMG 定義的 MDA 的。基本上,當前我們的可視化和開發(fā)工具以兩種方式支持 MDA:1)通過在特定的方案領域提供高度自動化,和 2)通過允許組織容易的為自己的特定領域構建定制的模型驅(qū)動的方法來提供綜合目的的能力。隨著時間的遷移,我們也將堅定的支持 MDA 。

IBM 將 MDA 視為一系列新興的關注于軟件開發(fā)的特殊方式的標準和技術 -- 這種開發(fā)方式強調(diào)在各種抽象的級別上利用建模,最重要的是通過這些模型的信息整合和信息流。這種方法允許開發(fā)人員通過使用與他們的信息和決定最匹配的模型類型對項目作出貢獻。它也允許高級的項目成員通過他們對模型到模型轉(zhuǎn)換的定義和實現(xiàn)使他們的工作效率最大化。系統(tǒng)的分析人員、測試人員和質(zhì)量保證人員能夠在系統(tǒng)被完成之前利用模型分析系統(tǒng)和系統(tǒng)的性能。

今天,IBM 正積極的與被選擇的客戶一起工作來改進 MDA 的實踐。這些經(jīng)驗將隨著時間的推移驅(qū)動我們支持 MDA 的方法。





回頁首


鳴謝


在本文中被討論的思想反映了一個來自于 IBM 的廣泛團隊的思想,包括 Jim Amsden, Grady Booch, Gary Cernosek, Magnus Christerson, Jim Conallen, Luan Doan-Minh, Pete Eeles, John Hogg, Sridhar Iyengar, Simon Johnston, Grant Larsen, Martin Nally, Jim Rumbaugh, Bran Selic, 和 Dave Tropeano 。





回頁首


進一步的讀物


如果你對學習更多的在實踐中應用 MDA 的知識,這里是三個主要的來源:

  • OMG 的材料。OMG 是學習、了解 MDA 思想的主要來源(瀏覽 http://www.omg.org/mda)。當前,OMG 的材料趨于既有瞄準在實現(xiàn)規(guī)范的技術上的也有 MDA 方法的高級別的白皮書和展示,并且還提供概念和標準的全面介紹。不幸的是,在這兩個方面的材料之間的能夠讓人更多的了解 MDA 在實際的開發(fā)方法和開發(fā)環(huán)境是如何被應用的資源是不夠豐富的。你可以參看下面的“參考資料”部分。
  • 書和論文。為了彌補 OMG 材料的缺乏,一些專家已經(jīng)出版和發(fā)表了一些關于 MDA 的書和論文。主要的兩本是:Kleppe 所著的 MDA Explained: The Model Driven Architecture Practice and Promise(Addison Wesley , 2003) 和 D. Frankel 所著的 Model Driven Architecture: Applying MDA to Enterprise Computing(Wiley 出版社 , 2003)。第三本書正在編寫之中:S. Mellor 所著的 MDA Distilled(將在 2004 年 由 Addison Wesley 出版)。其他的一些書籍在重要的 MDA 技術方面提供了有用的觀點,比如在可執(zhí)行的 UML 和對象約束語言(OCL)方面。他們包括 S. Mellor 所著的 Executable UML: A Foundation for MDA(Addison Wesley , 2003) 和 J. Warmer 與 A. Kleppe 所著的 The Object Constraint Language: Getting Your Models Ready for MDA, 第二版 (Addison Wesley , 2003)。這兩類書提供了在 重要的 OMG 的標準以及這些標準之間的關系和支持 MDA 的實踐中的有限的觀點上提供了看法。你可以參看下面的“參考資料”部分。
  • 主要的工業(yè)和理論材料。就像 MDA 方法受到了支持一樣,眾多關于 MDA 的實踐應用、能力和限制的材料是可得到的。當前,這種材料在關注點、深度和質(zhì)量上是不一樣的。OMG 維護了一個小的 MDA 論文的庫( www.omg.org/mda/presentations.htm),它提供了一個好的開始點。使用 Web 搜索引擎將找到更多的資料。
回頁首

注釋


1 Model Driven Architecture (MDA)是屬于對象管理組織 (OMG)的注冊商標。

2 對于那些有興趣更多的了解一些在實踐中應用 MDA 的人有一些幫助的資源。本文末尾的"進一步的讀物"部分提供了一個有用的開始點。

3 D.K. Barry, Web Services and Service Oriented Architectures。 Morgan Kaufman , 2003 。

4 P. Clements and L. Northrop , Software Product Lines: Practices and Patterns。Addison Wesley , 2001 。

5 在本文中,一個概念性的框架是指導計劃、理解和企業(yè)方案實現(xiàn)的重要的概念和機構集合。

6 Richard Soley and OMG Staff Strategy Group , "Model Driven Architecture," November 2000 。

7 圖 1 是基于最初被 John Daniels 使用的圖的。

8 許多其他的重要生命周期產(chǎn)物也會從模型驅(qū)動方法中受益(比如,需求列表、測試用例和構建腳本)。為了簡單起見,我們將經(jīng)理放在主要的開發(fā)周期產(chǎn)物上 -- 代碼。

9 對于這個討論我們將忽略代碼本身就是一種編程模型實現(xiàn)的事實,這個編程模型將開發(fā)人員從在內(nèi)存、寄存器中操作單個的位的機器代碼中抽象了出來。

10 在一些情況下,更多的代碼框架根據(jù)模型被真實的產(chǎn)生出來。

11 本文中涉及到的更加詳細的樣例將在本系列文章的后續(xù)部分中被討論。然而,你就=可能希望了解一下 MDA 在商業(yè)工具中的例子,比如 IBM Rational Rose Technical Developer 和 Rapid Developer 產(chǎn)品( http://www.ibm.com/rational)或者應用這種方法的開放源碼的 MDA 工具(比如,AndroMDA ( http://www.andromda.org和 Jamda ( http://jamda.sourceforge.net))。

12 看一下,比如

13 使用 IBM Rational 工具創(chuàng)建 MDA 方案的詳細例子將會在本系列文章的后續(xù)部分被提供。這里提供的是 IBM Rational 工具對 MDA 支持的簡單介紹。



參考資料

T. Sloan, "Business Model Collaborations: Pushing Software Revolution." Software Magazine, September 2003: www.softwaremag.com

A. Kleppe, J. Warmer, and W. Bast, MDA Explained: The Model Driven Architecture Practice and Promise. Addison Wesley, 2003.

D. Frankel, Model Driven Architecture: Applying MDA to Enterprise Computing. Wiley Press, 2003.

Richard Soley and OMG Staff Strategy Group, "Model Driven Architecture." November 2000.

P. Harman, "MDA: An Idea Whose Time Has Come." Cutter Consortium, 2003.

B. Selic, "The Pragmatics of Model-Driven Development," IEEE Software, Vol. 20, #5, September 2003.

T. Gardner, C. Griffin, J. Koehler, and R. Hauser, "A review of OMG MOF 2.0 Query/View/Transformation Submissions and Recommendations Towards the Final Standard." IBM Whitepaper submitted to the OMG, September 17, 2003.

D.K. Barry, Web Services and Service Oriented Architectures. Morgan Kaufman, 2003.

P. Clements and L. Northrop, Software Product Lines: Practices and Patterns. Addison Wesley, 2001.

A. Thomas Manes, Web Services: A Manager‘s Guide. Addison Wesley, 2003.

S. Mellor et al., MDA Distilled.Forthcoming from Addison Wesley, 2004.

S. Mellor et al., Executable UML: A Foundation for MDA. Addison Wesley, 2003.

J. Warmer and A. Kleppe, The Object Constraint Language: Getting Your Models Ready for MDA, second edition. Addison Wesley, 2003.

J. Daniels, "Modeling with a Sense of Purpose." IEEE Software, pp8-10, Jan/Feb 2002.



關于作者

 

Alan Brown has authored this article

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
博客園 - 明天會更好 - MDA(模型驅(qū)動架構)
月光軟件站 - 編程文檔 - Java - 模型驅(qū)動開發(fā)
MDA是什么
SaaS “可配置”和“多租戶”架構的技術實現(xiàn)方式
什么是統(tǒng)一架構框架 (Unified Architecture Framework)?
工作流引擎技術介紹-BPMN2.0
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服