下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
DSM領(lǐng)域定義建模和MDA模型驅(qū)動(dòng)架構(gòu)分析Domain-SpecificModelingandModelDrivenArchitectureDSM(領(lǐng)域定義建模)和MDA(模型驅(qū)動(dòng)架構(gòu))模型在軟件開發(fā)中的角色當(dāng)今信息系統(tǒng)的開發(fā)越來越復(fù)雜,而且所涉及到的領(lǐng)域也越來越廣,開發(fā)者必須掌握許多不同的技術(shù),包括流行的面向?qū)ο蠹夹g(shù),XML,腳本語(yǔ)言,接口定義語(yǔ)言,過程定義語(yǔ)言,數(shù)據(jù)庫(kù)定義和查詢等等。要把來自于問題領(lǐng)域的需求轉(zhuǎn)換成解決方案需要對(duì)許多架構(gòu)和協(xié)議的深刻理解。再者,最終用戶常常期望結(jié)果是高運(yùn)行效率的,易用的,易擴(kuò)展的,而且對(duì)于不可知且不可靠的網(wǎng)絡(luò)連接是安全的,這可是件苦差事。在軟件開發(fā)之外的一些領(lǐng)域,例如電子產(chǎn)品(電視機(jī),HiFi音響,照相機(jī))等等,我們可以看到低成本和高可靠性的情況。在過去的幾十年里,制造行業(yè)一直采用這樣的流程:通過一連串復(fù)雜的步驟來制造一臺(tái)電視機(jī)或汽車,其中有很多步驟是完全自動(dòng)化的。我們會(huì)喜歡使用相同的原理來構(gòu)筑軟件,不同的是我們沒有開發(fā)出能夠允許有效分離軟件中關(guān)注點(diǎn)的軟件說明語(yǔ)言。盡管我們使用不同的程序開發(fā)語(yǔ)言來書寫應(yīng)用邏輯,來完成不同的開發(fā)任務(wù)。例如:使用XML在應(yīng)用組件中傳遞數(shù)據(jù),使用SQL存取數(shù)據(jù),使用WSDL來說明面向Web應(yīng)用的組件的接口等等,但是它們中沒有一個(gè)直接針對(duì)最終用戶所面對(duì)的業(yè)務(wù)問題。本文將要介紹的軟件構(gòu)筑技術(shù)是domain-specificlanguages(領(lǐng)域定義語(yǔ)言,簡(jiǎn)稱DSL)的開發(fā)。DSL被設(shè)計(jì)為直接面向它所要解決的問題領(lǐng)域。在某種程度上,它能夠代替編碼,數(shù)據(jù)交換,配置等工作,我們常把這類語(yǔ)言稱為建模語(yǔ)言。我們使用這些語(yǔ)言來針對(duì)問題領(lǐng)域進(jìn)行建模。模型里的每個(gè)元素都映射到現(xiàn)實(shí)領(lǐng)域中的一個(gè)概念,很多年以來,模型對(duì)于定義IT系統(tǒng)如何來保存數(shù)據(jù)一直是很重要的,現(xiàn)在,模型的應(yīng)用更廣泛,例如對(duì)業(yè)務(wù)過程建模,服務(wù)的部署,數(shù)據(jù)中心等等。模型受歡迎是因?yàn)樗軌蚝芎玫乇硎鰡栴}從而避免陷入技術(shù)細(xì)節(jié)中。當(dāng)技術(shù)變得越來越復(fù)雜的時(shí)候,模型是提高生產(chǎn)力的必須手段。模型的另一個(gè)好處是可以讓程序員和問題領(lǐng)域的專家使用同樣的表述方法,這有助于團(tuán)隊(duì)成員間的溝通。我們也可以把使用模型看作彌合技術(shù)和業(yè)務(wù)之間縫隙的方法。在過去的幾年里,新的建模方法開始合并,特別是在MDA的旗幟和能夠提高軟件開發(fā)生產(chǎn)力及軟件可移植性的承諾下,OMG對(duì)UML和一些相關(guān)技術(shù)進(jìn)行了大力的推廣。但是我們必須看到80年代的CASE工具的結(jié)果,顯然,CASE已經(jīng)無法兌現(xiàn)當(dāng)初的諾言,對(duì)于MDA我們?nèi)匀皇謶岩?,除非能夠證明它對(duì)于我們所面對(duì)的問題找到了新的道路,不再重蹈CASE工具的覆轍。在我看來只有模型,模式,框架等技術(shù)結(jié)合在一起才能夠避免象CASE工具那樣的失敗。Domain-SpecificLanguages如果我們想通過運(yùn)用模型來使領(lǐng)域?qū)<夷芨菀椎亟鉀Q問題,那么模型就必須能夠清晰地描述問題領(lǐng)域。對(duì)于建模語(yǔ)言,就是指用來針對(duì)問題領(lǐng)域建模的標(biāo)記和關(guān)系的定義。典型的,但不是必須的,建模語(yǔ)言可以是一組圖釋,一組由線條連接起來的節(jié)點(diǎn),也可以是流程圖或者實(shí)體-關(guān)系圖。模型通常被標(biāo)記和文本元素所修飾,開發(fā)者需要細(xì)心地審視,理解掩蓋在這些修飾下的模型真正要表達(dá)的信息。所以要能夠進(jìn)行建模就必須明白每個(gè)元素相關(guān)細(xì)節(jié)。這意味著一旦成為具有專門的建模技能的人才就會(huì)帶來豐厚的回報(bào)。有些人可能會(huì)認(rèn)為正確的觀點(diǎn)是應(yīng)該定義一個(gè)通用的建模語(yǔ)言,使用它來對(duì)所有的問題領(lǐng)域建模,同時(shí)要教會(huì)那些領(lǐng)域?qū)<覀儗W(xué)會(huì)使用這個(gè)通用建模語(yǔ)言。從UML得到的經(jīng)驗(yàn)來看,這樣作并不成功,后面我們將會(huì)討論UML?,F(xiàn)在,我們把那些被設(shè)計(jì)成用來對(duì)特定問題領(lǐng)域建模的建模語(yǔ)言稱作domain-specificlanguages(領(lǐng)域建模語(yǔ)言)。領(lǐng)域建模語(yǔ)言可以針對(duì)很多問題領(lǐng)域創(chuàng)建,例如:通訊,銀行業(yè)務(wù),空間勘測(cè)等等。無論如何,設(shè)計(jì)和使用領(lǐng)域建模語(yǔ)言只是模型被用作輔助軟件開發(fā)的很小一部分。模型可以被分析和驗(yàn)證,轉(zhuǎn)換,通過很多步驟,被部署并執(zhí)行軟件。這個(gè)過程包括開發(fā),分析,驗(yàn)證模型,在很多不同領(lǐng)域中,通過工具將模型進(jìn)行轉(zhuǎn)換,直到部署系統(tǒng)完成。在軟件系統(tǒng)的構(gòu)筑中,模型的一個(gè)對(duì)應(yīng)物是框架,框架是適用于整個(gè)領(lǐng)域的代碼實(shí)現(xiàn)框架,并且給多個(gè)系統(tǒng)間在相同領(lǐng)域的不同元素提供了擴(kuò)展點(diǎn)。有很多框架的例子:從GUI到ERP的基礎(chǔ)結(jié)構(gòu)和算法。在所有的情況下,模型的角色是使用框架,給特定的應(yīng)用定義擴(kuò)展點(diǎn)。在這個(gè)層面上,我們可以認(rèn)為建模語(yǔ)言是定義擴(kuò)展點(diǎn),使其契合到框架上,來適應(yīng)用戶對(duì)問題的理解的一種方法。另一個(gè)重要的對(duì)應(yīng)物是模式,一個(gè)模式本質(zhì)上是一個(gè)有很多小孔的模型,和如何將這些小孔用其他模型來填充的規(guī)則。有一種高效使用模式的方法:使用一個(gè)由許多小的模型組成的大的模型,或一個(gè)由其他類型的模型組裝起來的模型。在軟件開發(fā)過程中運(yùn)用模型,模式,框架,代碼的至關(guān)重要的一點(diǎn)就是最終的結(jié)果必須是“敏捷“的。在代碼和模型間必須不存在任何不可逆性和不連續(xù)性,在整個(gè)開發(fā)過程中必須能夠?qū)梢姷母鞣N因素作出快速的反映,變化后重新產(chǎn)生最終結(jié)果。CASE的錯(cuò)誤在于沒有針對(duì)問題領(lǐng)域使用框架,而是使用了龐大的,不可逆的代碼生成過程,這樣使得開發(fā)者無法修改生成的代碼,從而使整個(gè)方法完全失效。只有將模型,模式,框架結(jié)合在一起,并使它們無縫的整合進(jìn)一個(gè)敏捷的開發(fā)過程中,才可以避免出現(xiàn)CASE方法那樣的缺陷。運(yùn)用模型,模式,框架的過程從整體上看起來制造業(yè)的很相似,我們可以把軟件開發(fā)看成一個(gè)價(jià)值鏈的概念:從供應(yīng)商那里取得輸入,利用自己的專業(yè)經(jīng)驗(yàn)為這些輸入增加價(jià)值,到鏈條的最后產(chǎn)生輸出。迄今為止,軟件的構(gòu)造過程很少被看作這樣的一個(gè)鏈條,根本原因在于表述軟件的方式的限制,當(dāng)代碼成為表述軟件的惟一的手段時(shí),惟一和產(chǎn)品密切相關(guān)的人就是程序員。領(lǐng)域定義模型、模式和框架的開發(fā)應(yīng)被納入軟件價(jià)值鏈,也就是產(chǎn)品線中。在微軟,我們堅(jiān)信建模將對(duì)軟件開發(fā)越來越重要,我們將在即將發(fā)布的VisualStudio中整合建模功能,我們相信認(rèn)真地根據(jù)目標(biāo)客戶的技能來設(shè)計(jì)領(lǐng)域定義語(yǔ)言的本質(zhì)是:我們要給客戶直觀的,敏捷,高效,無縫的建模體驗(yàn)。我們的第一個(gè)建模產(chǎn)品的目標(biāo)是能夠立即為我們的客戶提供高收益。在最近的微軟開發(fā)者大會(huì)上,我們展示了幫助開發(fā)者進(jìn)行SOA的開發(fā)和部署的建模工具,關(guān)于這次展示的細(xì)節(jié),可以在/vstudio/enterprise找到。隨著時(shí)間的推移,我們將繼續(xù)擴(kuò)充我們的建模工具來面向更多的領(lǐng)域,例如:代碼可視化、業(yè)務(wù)建模,還會(huì)把支持更多領(lǐng)域的工具整合進(jìn)VisualStudio。更長(zhǎng)遠(yuǎn)的計(jì)劃是通過多個(gè)產(chǎn)品線,包括模型,框架,模式,工具,來整合完整的軟件開發(fā)過程。ModelDrivenArchitecture在IT界,術(shù)語(yǔ)MDA—般是指在軟件開發(fā)過程中使用模型。但事實(shí)上,OMG把這個(gè)術(shù)語(yǔ)注冊(cè)為商標(biāo),并將其引申為特殊的使用OMG的建模技術(shù)進(jìn)行模型驅(qū)動(dòng)開發(fā)的概念。使用的建模技術(shù)的核心是UML和MOF(Meta-ObjectFacility元對(duì)象設(shè)施),本文的這部分將簡(jiǎn)要討論MDA,然后將關(guān)注MDA中所包含的建模技術(shù),特別是UML和MOF,還將討論MDA中和我們相關(guān)的方法學(xué)。MDA的本質(zhì)就是區(qū)別PlatformIndependentModels(PIMs)和PlatformSpecificModels(PSMs)。當(dāng)使用MDA開發(fā)應(yīng)用程序時(shí),必須首先創(chuàng)建PIM(平臺(tái)無關(guān)模型),然后使用標(biāo)準(zhǔn)映射,轉(zhuǎn)換到PSM(平臺(tái)定義模型),最后,映射生成最終程序代碼,依照OMG的MDA的FAQ:/mda“UML是MDA所使用的關(guān)鍵技術(shù),任何使用MDA創(chuàng)建的應(yīng)用程序都基于標(biāo)準(zhǔn)化的,平臺(tái)無關(guān)的UML模型?!边@樣,就意味著應(yīng)用程序的被定義為平臺(tái)無關(guān)的,這樣應(yīng)用程序就是可移植的。這很容易讓人回想其Java所宣稱的“writeoncerunanywhere”,試圖去構(gòu)建一個(gè)平臺(tái)無關(guān)的框架,諸如SwingUI庫(kù),必須在性能和平臺(tái)集成上作出折衷,在過去,這種折衷是很多產(chǎn)品失敗的根源,因?yàn)檫@些失敗,業(yè)界仍然非常懷疑MDA的宣言,在OOPSLA2003上MDA的session就是佐證。不過,MDA的探索在某些應(yīng)用程序方面是有幫助的,一些廠商已經(jīng)向我們展示了基于J2EE的Web應(yīng)用,創(chuàng)建包含了數(shù)據(jù)實(shí)體,組件的UML模型,再映射到各種J2EE應(yīng)用。但是無論如何,就象前面所提到的,這對(duì)開發(fā)者意味著全面轉(zhuǎn)向敏捷開發(fā),而且不能引起不必要的轉(zhuǎn)變和障礙,例如不可逆的代碼生成過程和調(diào)試上的問題。擴(kuò)展MDA到其他領(lǐng)域很困難,OMG所定義的“平臺(tái)”的概念很模糊,真正的例子也就是J2EE。在軟件開發(fā)過程中使用模型的道路上,使用模型來創(chuàng)建J2EE應(yīng)用是有效且使用的。事實(shí)上,幾乎沒有關(guān)于平
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版實(shí)習(xí)合同模板:實(shí)習(xí)期間實(shí)習(xí)成果轉(zhuǎn)化3篇
- 2025版木結(jié)構(gòu)景觀清包施工合同示范文本4篇
- 二零二五年度虛擬現(xiàn)實(shí)內(nèi)容創(chuàng)作者免責(zé)聲明合同范本4篇
- 2025版小型沼氣項(xiàng)目設(shè)備研發(fā)、生產(chǎn)、安裝及運(yùn)營(yíng)維護(hù)合同3篇
- 增值稅及其會(huì)計(jì)處理教學(xué)課件
- 2025版新能源汽車動(dòng)力電池回收利用合同范本4篇
- 2025版小麥種子市場(chǎng)調(diào)研與風(fēng)險(xiǎn)評(píng)估合同2篇
- 2025版學(xué)校臨時(shí)教師聘用合同實(shí)施細(xì)則3篇
- 二零二五版幕墻工程風(fēng)險(xiǎn)管理與保險(xiǎn)合同4篇
- 體育設(shè)施工程體育場(chǎng)地圍網(wǎng)施工考核試卷
- 定額〔2025〕1號(hào)文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價(jià)格水平調(diào)整的通知
- 2024年城市軌道交通設(shè)備維保及安全檢查合同3篇
- 【教案】+同一直線上二力的合成(教學(xué)設(shè)計(jì))(人教版2024)八年級(jí)物理下冊(cè)
- 湖北省武漢市青山區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期末質(zhì)量檢測(cè)數(shù)學(xué)試卷(含解析)
- 單位往個(gè)人轉(zhuǎn)賬的合同(2篇)
- 科研倫理審查與違規(guī)處理考核試卷
- GB/T 44101-2024中國(guó)式摔跤課程學(xué)生運(yùn)動(dòng)能力測(cè)評(píng)規(guī)范
- 高危妊娠的評(píng)估和護(hù)理
- 2024年山東鐵投集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 兒童10歲生日-百日宴-滿月酒生日會(huì)成長(zhǎng)相冊(cè)展示(共二篇)
- 2023年高考全國(guó)甲卷數(shù)學(xué)(理)試卷【含答案】
評(píng)論
0/150
提交評(píng)論