1. 程式人生 > >MDA:模型驅動架構 簡介

MDA:模型驅動架構 簡介

模型驅動架構(MDA)是一種獨立於特定平臺和軟體供應商的軟體體系結構設計和開發方法,它適用於設計、部署、整合等軟體開發的整個生命週期。 MDA 遵循的是諸如統一建模語言(UML)、可擴充套件標記語言(XML)和公共物件請求代理體系結構(CORBA)等一系列業界開放標準。

MDA 建模是基於功能,而非基於特定語言、平臺或實現技術,它可以簡化系統整合、縮短開發週期和節省企業資源。

模型通常以圖和文字的形式來描述一個系統及其環境。模型驅動的方法就是利用模型來引導系統的設計、開發和維護。而模型驅動架構即是用系統的模型來生成系統的體系結構。

MDA 有三個檢視。第一個檢視叫“計算無關檢視(CIV)”,其作用就是將系統基本處理邏輯同平臺相關的技術規範分離開來。CIV檢視關注於系統的環境和需求,而系統的具體結構和實現是隱藏的。

第二個檢視是“平臺無關檢視(PIV)”。該檢視關注於系統的操作而隱藏了平臺相關的細節,該檢視可能用一種通用的、平臺無關的建模語言如UML來描述。

第三個檢視叫“平臺相關檢視(PSV)”。該檢視關注特定平臺的實現細節。

以上三個檢視都有其各自相應的模型:

計算無關模型(CIM)通常由業務分析人員建立,展示了系統的業務模型。 平臺無關模型(PIM)是系統功能的模型,通常由系統架構師建立。 平臺相關模型(PSM)對一個或多個平臺的PIM模型的具體實現建模。

MDA 的真正價值在於 CIM 模型可以通過簡單的對映轉換成 PIM 模型。同樣的,PIM 模型也可以對映成 PSM 模型,而 PSM 模型則可以最終轉換成具體的實現程式碼。

如下圖所示,右上角的 CIM 模型是整個模型轉換過程的起點。CIM 模型轉換成 PIM 模型後,系統架構師和設計師即可以建立系統其餘部分的模型。設計完成之後,PIM 模型就轉換成了一個或多個 PSM 模型。

模型驅動架構(MDA)

MDA 提供了一種優雅而可靠的開發框架,這種框架使得系統架構師在沒有考慮到有關係統實現的任何細節之前就可以事先定義好系統的模型。

MDA 的優勢主要包括如下幾點:

可移植性 -當你建立好一個 PIM 模型之後,建立一個新的基於該 PIM 模型的 PSM 模型是相當容易的。當然,你需要到目標平臺的對映規則和一些連線程式碼。 跨平臺的互操作性 - 除了可以將一個系統模型轉化為不同的實現,你也可以使用一種特殊的對映規則將一個 PIM 模型轉化為一個異構的 PSM 模型,在該異構模型中,最終的系統是由來自多個平臺的元件構建而成的。 開發效率 - MDA 是一種極其高效的設計和開發方法。使用 MDA 方法可以以更少的人力來完成原先相同的工作量,或者以原先相同的人力來完成更多的工作,所有這些都無需對開發團隊施加額外的壓力。 軟體質量 - 使用一種單一的模型來生成和匯出系統的大部分程式碼可以極大地降低人為錯誤的發生。

MDA 還有其它更多的優勢,如對新技術的快速包容、平臺無關性、領域相關性、降低開發成本和縮短開發週期等等。

相關推薦

MDA模型驅動架構 簡介

模型驅動架構(MDA)是一種獨立於特定平臺和軟體供應商的軟體體系結構設計和開發方法,它適用於設計、部署、整合等軟體開發的整個生命週期。 MDA 遵循的是諸如統一建模語言(UML)、可擴充套件標記語言(XML)和公共物件請求代理體系結構(CORBA)等一系列業界開放標準。 MDA 建模是基於功能,而非基於特定

DSM(領域定義建模)和MDA模型驅動架構

Domain-Specific Modeling and Model Driven Architecture

模型驅動架構(f-MDA)的基本思想

傳統MDA實現方案的共同缺陷         模型驅動架構(ModelDriven Architecture, MDA)的核心思想是抽象出與實現技術無關、完整描述業務功能的核心平臺無關模型( PIM , Platform Independent Model ),然後針對不同

MDA 模型驅動架構

MDA(Model DrivenArchitecture)是模型驅動架構,它是由OMG定義的一個軟體開發框架。它是一種基於UML以及其他工業標準的框架,支援軟體設計和模型的視覺化、儲存和交換。和UML相比,MDA能夠創建

MDA模型驅動架構

中科永聯高階技術培訓中心(www.itisedu.com) MDA(Model Driven Architecture)是模型驅動架構,它是由OMG定義的一個軟體開發框架。它是一種基於UML以及其他工業標準的框架,支援軟體設計和模型的視覺化、儲存和交換。和UML相比,MDA能夠創建出機器可讀和高度抽象的模

多研究些架構,少談些框架( 3 )事件驅動架構

object 邏輯 查詢 同時 最新 order ring 手機 enc 接上篇,我們采用了領域驅動的開發方式,使用了充血模型,享受了他的好處,但是也不得不面對他帶來的弊端。這個弊端在分布式的微服務架構下面又被放大。 事務一致性 事務一致性的問題在Monolithic下面不

Linux ALSA 音效卡驅動之一ALSA架構簡介

一.  概述     ALSA是Advanced Linux Sound Architecture 的縮寫,目前已經成為了linux的主流音訊體系結構,想了解更多的關於ALSA的這一開源專案的資訊和知識,請檢視以下網址:http://www.alsa-project.org/。     在核心裝置驅動層,

Linux ALSA音效卡驅動之一ALSA架構簡介

一.  概述     ALSA是Advanced Linux Sound Architecture 的縮寫,目前已經成為了linux的主流音訊體系結構,想了解更多的關於ALSA的這一開源專案的資訊和知識,請檢視以下網址:http://www.alsa-project.org/。     在核心裝置驅動層

Linux裝置模型之tty驅動架構分析

------------------------------------------ 本文系本站原創,歡迎轉載!轉載請註明出處:http://ericxiao.cublog.cn/------------------------------------------一:前言Tty這個名稱源於電傳打位元組的簡稱。

Linux SPI匯流排和裝置驅動架構之一系統概述

SPI是"Serial Peripheral Interface" 的縮寫,是一種四線制的同步序列通訊介面,用來連線微控制器、感測器、儲存裝置,SPI裝置分為主裝置和從裝置兩種,用於通訊和控制的四根線分別是: CS    片選訊號SCK  時鐘訊號MISO  主裝置的資料

linux裝置模型之uart驅動架構分析

一:前言 接著前面的終端控制檯分析,接下來分析serial的驅動.在linux中,serial也對應著終端,通常被稱為串列埠終端.在shell上,我們看到的/dev/ttyS*就是串列埠終端所對應的裝置節點. 在分析具體的serial驅動之前.有必要先分析uart

Linux SPI匯流排和裝置驅動架構之二SPI通用介面層

通過上一篇文章的介紹,我們知道,SPI通用介面層用於把具體SPI裝置的協議驅動和SPI控制器驅動聯接在一起,通用介面層除了為協議驅動和控制器驅動提供一系列的標準介面API,同時還為這些介面API定義了相應的資料結構,這些資料結構一部分是SPI裝置、SPI協議驅動和SPI控制

Linux SPI匯流排和裝置驅動架構之四SPI資料傳輸的佇列化

我們知道,SPI資料傳輸可以有兩種方式:同步方式和非同步方式。所謂同步方式是指資料傳輸的發起者必須等待本次傳輸的結束,期間不能做其它事情,用程式碼來解釋就是,呼叫傳輸的函式後,直到資料傳輸完成,函式才會返回。而非同步方式則正好相反,資料傳輸的發起者無需等待傳輸的結束,資料傳

Linux裝置模型之tty&&uart驅動架構分析

五: uart_add_one_port()操作 在前面提到.在對uart裝置檔案過程中.會將操作轉換到對應的port上,這個port跟uart_driver是怎麼關聯起來的呢?這就是uart_add_ont_port()的主要工作了. 顧名思義,這個函式是在uart_driver增加一個port.程式碼如

Linux ALSA音效卡驅動之一ALSA系統架構

Linux ALSA 系統架構ALSA 是Linux音效卡驅動的架構,下面基於linux-2.6.32描述下ALSA系統架構。ALSA系統可以分為alsa-lib、alsa- driver,而alsa-driver又分為core層和底層硬體層。作為開發者,我們只需移植底層硬

解構領域驅動設計(二)領域驅動設計的核心之分層架構

() shc created win cif nec upd 方法 bool 反映業務規則的代碼是整個軟件的核心,但是它一般只占很小的一部分,在傳統的基於貧血模型的分層軟件架構中,業務規則可能分散到各個層、各個代碼段,從而使得通過代碼來還原業務規則或者保證代碼與業務規則一致

###struts模型驅動(必須new)能夠封裝【物件型別屬性的屬性】.頁面傳參錯誤導致的問題HTTP Status 500

問題詳情: HTTP Status 500 - could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.Constraint

Kafka架構簡介【轉】

轉:http://www.cnblogs.com/f1194361820/p/6026313.html Kafka 架構簡介 Kafka是一個開源的、分散式的、可分割槽的、可複製的基於日誌提交的釋出訂閱訊息系統。它具備以下特點: ·訊息持久化: 為了從大資料中獲取有價值的資訊,任何資訊的丟失都是負擔不起的。

MDA模型驅動介紹

MDA為新方法學提供了土壤         如果軟體開發是遊戲,那麼方法學就是攻略。或許高手不需要攻略也能把遊戲玩通關,但大多數人在攻略的指導下能少走很多彎路。MDA制定了新的遊戲規則,那 麼我們自然可以期待新版本的攻略如雨後春筍般出現。即便是同一個遊戲,您手中有了不同的戰鬥工具、不同的裝備,玩法也會

MDA模型驅動引擎-帶你走進真正的模型驅動開發(一)

帶你走進MDA的世界。--真正的模型驅動開發。目前的建模工具很多,不過個人的觀點來看,基本都跑偏了。沒辦法真正應用模型驅動來有效開發。廢話少說。下面的就是MDA(KAYA)建模工具。左側是需要用到的元素,簡單說來包括 1.Product(產品&服務--可以看作系統名稱