軟件開發(fā)
MDA軟件設(shè)計方法
由于傳統(tǒng)的軟件開發(fā)模式其最終生成產(chǎn)品是程序代碼,難以適應(yīng)需求的快速變化。雖然目前部分生產(chǎn)環(huán)節(jié)已經(jīng)有模型可以參與,但模型仍不能應(yīng)用于大規(guī)模的軟件開發(fā)中,因此軟件開發(fā)過程中不可避免地出現(xiàn)非標準化與非自動化的問題。為了解決軟件開發(fā)中存在的這些問題,OMG組織發(fā)布了模型驅(qū)動架構(gòu)(Model Driven Architecture,MDA)。本文在介紹MDA開發(fā)過程的基礎(chǔ)上,探討了平臺無關(guān)模型和平臺相關(guān)模型的定義、映射和轉(zhuǎn)化等,并將MDA開發(fā)方法和傳統(tǒng)軟件開發(fā)方法進行了分析比較。
一、MDA體系結(jié)構(gòu)
模型驅(qū)動式軟件開發(fā)是指通過對問題進行分析然后建模、轉(zhuǎn)化和精化模型,最終生成可執(zhí)行代碼的過程。模型驅(qū)動架構(gòu)是一種建立業(yè)務(wù)邏輯抽象模型并自動產(chǎn)生完備的應(yīng)用程序的方法,其核心思想是通過計算無關(guān)模型(Computation Independent Mode,CIM)描述系統(tǒng)的行為與功能,用與使用平臺無關(guān)的建模語言(例如UML)來構(gòu)建在實現(xiàn)時無需關(guān)心所用技術(shù)的平臺無關(guān)模型(Platform Independent Mode,PIM),隨后平臺無關(guān)模型通過一定的轉(zhuǎn)化規(guī)則與輔助工具被轉(zhuǎn)化為平臺相關(guān)模型(Platform Specific Mode,PSM),最后PSM精化生成可執(zhí)行代碼。MDA軟件開發(fā)方法將標準的系統(tǒng)模型放在了驅(qū)動架構(gòu)的核心位置,如圖1所示。MDA通過PIM和PSM將系統(tǒng)說明和實現(xiàn)技術(shù)與平臺獨立開來,確保軟件開發(fā)成果不受需求變化與技術(shù)變遷的影響。
MDA模型組織分為4層結(jié)構(gòu),如圖2所示。下一個層次是上一個層次的應(yīng)用,上一個層次是下一個層次的基礎(chǔ),MOF位于M3層,其是MDA框架中基礎(chǔ)與核心的模型,同時也是M2層所有模型的元模型。M2層為MOF上不同模型所對應(yīng)的模型語言,不同的領(lǐng)域通過M2層能夠獲取與所在領(lǐng)域相匹配的建模語言,為M1層的建模提供了建模符號。M1層是軟件開發(fā)過程中建模人員采用模型語言為企業(yè)應(yīng)用建立的模型描述,PIM,CIM,PSM應(yīng)用模型就位于該層之中。最底層為M0層,即實例層,其將M1層的模型轉(zhuǎn)化為具體的可使用的應(yīng)用程序。
MDA的核心是由OMG制定的一系列標準,元對象設(shè)施(Meta Object Facilit,MOF)、統(tǒng)一建模語言(UnifiedModeling Languag,UML)、數(shù)據(jù)倉庫元模型(CommonWarehouse Metamodel,CWM)、XML元數(shù)據(jù)交換(XML?based Metadata Interchange,XMI)以及對象約束語言(Object Constraint Language,OCL)。這些標準構(gòu)成了一個構(gòu)建模型驅(qū)動架構(gòu)的基準,其不但決定了MDA的核心架構(gòu),并在State?of?art的系統(tǒng)建模中起到了關(guān)鍵性的作用。
二、MDA實現(xiàn)與基于模型驅(qū)動架構(gòu)的軟件開發(fā)
基于MDA的軟件開發(fā)過程可分為:
(1)模型驅(qū)動軟件開發(fā)過程。此方案中使用的模型為PIM和PSM,利用模型驅(qū)動代碼的產(chǎn)生,具體操作步驟為代碼通過模型產(chǎn)生,接著通過人工的方式進行商業(yè)邏輯代碼的編寫,最后將手工編寫的商業(yè)邏輯代碼進行部署及發(fā)布。
(2)通過模型驅(qū)動來控制系統(tǒng)運行時的行為。此時軟件模型能夠被一個操作系統(tǒng)運行時通用模型直接執(zhí)行,該過程無需產(chǎn)生具體的軟件代碼,最后部署和發(fā)布的僅是模型,因為模型中已經(jīng)將應(yīng)用程序的各個層面均做出了表達。
基于MDA的軟件開發(fā)包括建模、開發(fā)和發(fā)布三個階段,如圖3所示。
模型階段:創(chuàng)建無關(guān)平臺模型PIM,并以此為核心,ISM和PSM均可通過PIM自動轉(zhuǎn)換生成。該模型應(yīng)用如XMI的MOF映射方法進行映射。
開發(fā)階段:產(chǎn)生平臺無關(guān)代碼,即MDA工具自動產(chǎn)生和程序員手工編寫客戶端及服務(wù)器端的代碼。MDA中代碼的生成是MDA工程的最終目標,其具體是指PSM到代碼的映射,映射生成ISM模型。
發(fā)布階段:該階段將諸多內(nèi)容放在一起組成可運行組件,其包括模型、MOF映射、手工編寫的代碼和MDA運行時庫及待發(fā)布的配置信息,最終將組建發(fā)布到運行平臺上。
三、軟件開發(fā)過程比較
雖然基于MDA的軟件開發(fā)過程是一種新型模型驅(qū)動軟件開發(fā)方法,與傳統(tǒng)的軟件開發(fā)方法相比具有以下優(yōu)點:
(1)模型變換可自動實現(xiàn)。相比較傳統(tǒng)的軟件開發(fā)過程由手工完成模型與模型、模型與代碼之間的變換,基于MDA的軟件開發(fā)過程均是MDA開發(fā)工具自動完成的。
(2)便于維護,模型與代碼同步。在基于MDA的軟件開發(fā)過程中,模型通過轉(zhuǎn)換即可直接生成可執(zhí)行代碼,無需要其他步驟,從而實現(xiàn)模型與代碼的同步。軟件開發(fā)人員對軟件的維護重點從程序代碼變?yōu)榕c技術(shù)平臺無關(guān)、與業(yè)務(wù)邏輯相關(guān)的平臺無關(guān)模型。
(3)開發(fā)效率高,軟件可靠性強。MDA模型架構(gòu)對系統(tǒng)的不同層次進行抽象,每一層代表的含義簡單易懂,從而使得系統(tǒng)的整個框架可被軟件開發(fā)人員清晰地了解與掌握,而不必困惑于具體的實現(xiàn)技術(shù)。由于模型通過轉(zhuǎn)換即可直接生成可執(zhí)行代碼,使得開發(fā)過程中減少了編碼環(huán)節(jié),所以若構(gòu)建PIM正確,整個系統(tǒng)的正確性便可得到保證。
(4)業(yè)務(wù)邏輯模型獨立于技術(shù)實現(xiàn)平臺。PIM模型可根據(jù)技術(shù)平臺的不同,自動生成基于該模型的軟件系統(tǒng),從而實現(xiàn)PIM模型與技術(shù)實驗平臺的獨立。
(5)模型是程序生成的基礎(chǔ)設(shè)施。在基于MDA的軟件開發(fā)過程中,模型被作為其生命周期中的設(shè)計工作,是程序生成的基礎(chǔ)設(shè)施。模型通過一系列轉(zhuǎn)化最終可自動生成可執(zhí)行代碼。
總結(jié)
本文在介紹和分析了MDA的架構(gòu)和基于其軟件開發(fā)過程的基礎(chǔ)上,將其與傳統(tǒng)軟件設(shè)計方法進行了對比,說明了其在軟件開發(fā)過程中的顯著優(yōu)勢,并在文中最后設(shè)計基于MDA的決策支持系統(tǒng),證明了使用MDA開發(fā)方法設(shè)計的軟件系統(tǒng)獨立于技術(shù)平臺,通用性強、可移植性強,其可通過建模、轉(zhuǎn)化和精化模型,直至最終生成可執(zhí)行代碼,大幅降低了設(shè)計成本且提高了開發(fā)效率。
以上就是我們深圳市組創(chuàng)微電子有限公司為您介紹的基于MDA的軟件開發(fā)方法的研究。如果您有智能電子產(chǎn)品的軟硬件功能開發(fā)需求,可以放心交給我們,我們有豐富的電子產(chǎn)品定制開發(fā)經(jīng)驗,可以盡快評估開發(fā)周期與IC價格,也可以核算PCBA報價。我們是多家國內(nèi)外芯片代理商,有MCU、語音IC、藍牙IC與模塊、wifi模塊。我們的擁有硬件設(shè)計與軟件開發(fā)能力。涵蓋了電路設(shè)計、PCB設(shè)計、單片機開發(fā)、軟件定制開發(fā)、APP定制開發(fā)、微信公眾號開發(fā)、語音識別技術(shù)、藍牙wifi開發(fā)等。還可以承接智能電子產(chǎn)品研發(fā)、家用電器方案設(shè)計、美容儀器開發(fā)、物聯(lián)網(wǎng)應(yīng)用開發(fā)、智能家居方案設(shè)計、TWS方案開發(fā)、藍牙音頻開發(fā)、兒童玩具方案開發(fā)、電子教育產(chǎn)品研發(fā)。
- 返回頂部