欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
模型驅動(dòng)體系架構介紹 第一部分: MDA 和當今的系統(轉與 Rational Edge)

2005 年 4 月 01 日

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


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

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

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

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

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


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

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

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

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

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





回頁(yè)首


建模的基本原理


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

系統和模型轉換


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

模型、建模和 MDA


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

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

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

圖 1: 建模的光譜


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

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

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

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

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

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

MDA:成長(cháng)中的公認輿論


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





回頁(yè)首


MDA 的理論


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

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

MDA 原則


OMG 組織對于 MDA 的觀(guān)點(diǎn)下有四個(gè)原則:

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

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

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

圖 2: PIM 到 PSM 轉化的例子


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

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

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

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

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

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

模型和模型之間的轉換將使用開(kāi)放的標準被說(shuō)明。作為工業(yè)的聯(lián)盟,OMG 一直擁護多種用于說(shuō)明系統和系統間的互連性的重要工業(yè)標準。通過(guò)這些標準,例如 CORBA、 IIOP、 UML 和 CWM ,軟件行業(yè)能夠實(shí)現以前不可能的系統互操作能力的級別,此外,工具交換標準,例如 MOF 和 XMI ,也促進(jìn)了工具的互操作。

一個(gè)簡(jiǎn)單的例子


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




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


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

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

簡(jiǎn)單的介紹 MDA 的理論


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

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




回頁(yè)首


IBM 和 MDA


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

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

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


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

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

通過(guò) IBM 的支持 OMG 定義的 MDA 可視化建模和開(kāi)發(fā)工具,和隨著(zhù)時(shí)間的推移對 MDA 的支持, IBM 將繼續這種在建模支持上的傳統。

IBM 對 MDA 的觀(guān)點(diǎn)


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

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

  • 說(shuō)明與支持平臺無(wú)關(guān)的系統、
  • 說(shuō)明平臺。
  • 選擇系統開(kāi)發(fā)的特定平臺。
  • 將系統說(shuō)明轉換成特定平臺相關(guān)的模型。

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

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

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

IBM 在 MDA 上的領(lǐng)導地位


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

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




回頁(yè)首


總結


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

我們已經(jīng)利用這個(gè)機會(huì )表明了 IBM Rational 對于 MDA 的觀(guān)點(diǎn)和我們的工具是如何支持被 OMG 定義的 MDA 的?;旧?,當前我們的可視化和開(kāi)發(fā)工具以?xún)煞N方式支持 MDA:1)通過(guò)在特定的方案領(lǐng)域提供高度自動(dòng)化,和 2)通過(guò)允許組織容易的為自己的特定領(lǐng)域構建定制的模型驅動(dòng)的方法來(lái)提供綜合目的的能力。隨著(zhù)時(shí)間的遷移,我們也將堅定的支持 MDA 。

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

今天,IBM 正積極的與被選擇的客戶(hù)一起工作來(lái)改進(jìn) MDA 的實(shí)踐。這些經(jīng)驗將隨著(zhù)時(shí)間的推移驅動(dòng)我們支持 MDA 的方法。





回頁(yè)首


鳴謝


在本文中被討論的思想反映了一個(gè)來(lái)自于 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 。





回頁(yè)首


進(jìn)一步的讀物


如果你對學(xué)習更多的在實(shí)踐中應用 MDA 的知識,這里是三個(gè)主要的來(lái)源:

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

注釋


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

2 對于那些有興趣更多的了解一些在實(shí)踐中應用 MDA 的人有一些幫助的資源。本文末尾的"進(jìn)一步的讀物"部分提供了一個(gè)有用的開(kāi)始點(diǎn)。

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 在本文中,一個(gè)概念性的框架是指導計劃、理解和企業(yè)方案實(shí)現的重要的概念和機構集合。

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

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

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

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

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

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

12 看一下,比如

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



參考資料

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.



關(guān)于作者

 

Alan Brown has authored this article

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

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久