

下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
DSM領(lǐng)域定義建模和MDA模型驅(qū)動架構(gòu)分析Domain-SpecificModelingandModelDrivenArchitectureDSM(領(lǐng)域定義建模)和MDA(模型驅(qū)動架構(gòu))模型在軟件開發(fā)中的角色當(dāng)今信息系統(tǒng)的開發(fā)越來越復(fù)雜,而且所涉及到的領(lǐng)域也越來越廣,開發(fā)者必須掌握許多不同的技術(shù),包括流行的面向?qū)ο蠹夹g(shù),XML,腳本語言,接口定義語言,過程定義語言,數(shù)據(jù)庫定義和查詢等等。要把來自于問題領(lǐng)域的需求轉(zhuǎn)換成解決方案需要對許多架構(gòu)和協(xié)議的深刻理解。再者,最終用戶常常期望結(jié)果是高運(yùn)行效率的,易用的,易擴(kuò)展的,而且對于不可知且不可靠的網(wǎng)絡(luò)連接是安全的,這可是件苦差事。在軟件開發(fā)之外的一些領(lǐng)域,例如電子產(chǎn)品(電視機(jī),HiFi音響,照相機(jī))等等,我們可以看到低成本和高可靠性的情況。在過去的幾十年里,制造行業(yè)一直采用這樣的流程:通過一連串復(fù)雜的步驟來制造一臺電視機(jī)或汽車,其中有很多步驟是完全自動化的。我們會喜歡使用相同的原理來構(gòu)筑軟件,不同的是我們沒有開發(fā)出能夠允許有效分離軟件中關(guān)注點(diǎn)的軟件說明語言。盡管我們使用不同的程序開發(fā)語言來書寫應(yīng)用邏輯,來完成不同的開發(fā)任務(wù)。例如:使用XML在應(yīng)用組件中傳遞數(shù)據(jù),使用SQL存取數(shù)據(jù),使用WSDL來說明面向Web應(yīng)用的組件的接口等等,但是它們中沒有一個(gè)直接針對最終用戶所面對的業(yè)務(wù)問題。本文將要介紹的軟件構(gòu)筑技術(shù)是domain-specificlanguages(領(lǐng)域定義語言,簡稱DSL)的開發(fā)。DSL被設(shè)計(jì)為直接面向它所要解決的問題領(lǐng)域。在某種程度上,它能夠代替編碼,數(shù)據(jù)交換,配置等工作,我們常把這類語言稱為建模語言。我們使用這些語言來針對問題領(lǐng)域進(jìn)行建模。模型里的每個(gè)元素都映射到現(xiàn)實(shí)領(lǐng)域中的一個(gè)概念,很多年以來,模型對于定義IT系統(tǒng)如何來保存數(shù)據(jù)一直是很重要的,現(xiàn)在,模型的應(yīng)用更廣泛,例如對業(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對UML和一些相關(guān)技術(shù)進(jìn)行了大力的推廣。但是我們必須看到80年代的CASE工具的結(jié)果,顯然,CASE已經(jīng)無法兌現(xiàn)當(dāng)初的諾言,對于MDA我們?nèi)匀皇謶岩?,除非能夠證明它對于我們所面對的問題找到了新的道路,不再重蹈CASE工具的覆轍。在我看來只有模型,模式,框架等技術(shù)結(jié)合在一起才能夠避免象CASE工具那樣的失敗。Domain-SpecificLanguages如果我們想通過運(yùn)用模型來使領(lǐng)域?qū)<夷芨菀椎亟鉀Q問題,那么模型就必須能夠清晰地描述問題領(lǐng)域。對于建模語言,就是指用來針對問題領(lǐng)域建模的標(biāo)記和關(guān)系的定義。典型的,但不是必須的,建模語言可以是一組圖釋,一組由線條連接起來的節(jié)點(diǎn),也可以是流程圖或者實(shí)體-關(guān)系圖。模型通常被標(biāo)記和文本元素所修飾,開發(fā)者需要細(xì)心地審視,理解掩蓋在這些修飾下的模型真正要表達(dá)的信息。所以要能夠進(jìn)行建模就必須明白每個(gè)元素相關(guān)細(xì)節(jié)。這意味著一旦成為具有專門的建模技能的人才就會帶來豐厚的回報(bào)。有些人可能會認(rèn)為正確的觀點(diǎn)是應(yīng)該定義一個(gè)通用的建模語言,使用它來對所有的問題領(lǐng)域建模,同時(shí)要教會那些領(lǐng)域?qū)<覀儗W(xué)會使用這個(gè)通用建模語言。從UML得到的經(jīng)驗(yàn)來看,這樣作并不成功,后面我們將會討論UML?,F(xiàn)在,我們把那些被設(shè)計(jì)成用來對特定問題領(lǐng)域建模的建模語言稱作domain-specificlanguages(領(lǐng)域建模語言)。領(lǐng)域建模語言可以針對很多問題領(lǐng)域創(chuàng)建,例如:通訊,銀行業(yè)務(wù),空間勘測等等。無論如何,設(shè)計(jì)和使用領(lǐng)域建模語言只是模型被用作輔助軟件開發(fā)的很小一部分。模型可以被分析和驗(yàn)證,轉(zhuǎn)換,通過很多步驟,被部署并執(zhí)行軟件。這個(gè)過程包括開發(fā),分析,驗(yàn)證模型,在很多不同領(lǐng)域中,通過工具將模型進(jìn)行轉(zhuǎn)換,直到部署系統(tǒng)完成。在軟件系統(tǒng)的構(gòu)筑中,模型的一個(gè)對應(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)為建模語言是定義擴(kuò)展點(diǎn),使其契合到框架上,來適應(yīng)用戶對問題的理解的一種方法。另一個(gè)重要的對應(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的錯誤在于沒有針對問題領(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)信建模將對軟件開發(fā)越來越重要,我們將在即將發(fā)布的VisualStudio中整合建模功能,我們相信認(rèn)真地根據(jù)目標(biāo)客戶的技能來設(shè)計(jì)領(lǐng)域定義語言的本質(zhì)是:我們要給客戶直觀的,敏捷,高效,無縫的建模體驗(yàn)。我們的第一個(gè)建模產(chǎn)品的目標(biāo)是能夠立即為我們的客戶提供高收益。在最近的微軟開發(fā)者大會上,我們展示了幫助開發(fā)者進(jìn)行SOA的開發(fā)和部署的建模工具,關(guān)于這次展示的細(xì)節(jié),可以在/vstudio/enterprise找到。隨著時(shí)間的推移,我們將繼續(xù)擴(kuò)充我們的建模工具來面向更多的領(lǐng)域,例如:代碼可視化、業(yè)務(wù)建模,還會把支持更多領(lǐng)域的工具整合進(jìn)VisualStudio。更長遠(yuǎn)的計(jì)劃是通過多個(gè)產(chǎn)品線,包括模型,框架,模式,工具,來整合完整的軟件開發(fā)過程。ModelDrivenArchitecture在IT界,術(shù)語MDA—般是指在軟件開發(fā)過程中使用模型。但事實(shí)上,OMG把這個(gè)術(shù)語注冊為商標(biāo),并將其引申為特殊的使用OMG的建模技術(shù)進(jìn)行模型驅(qū)動開發(fā)的概念。使用的建模技術(shù)的核心是UML和MOF(Meta-ObjectFacility元對象設(shè)施),本文的這部分將簡要討論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(平臺無關(guān)模型),然后使用標(biāo)準(zhǔn)映射,轉(zhuǎn)換到PSM(平臺定義模型),最后,映射生成最終程序代碼,依照OMG的MDA的FAQ:/mda“UML是MDA所使用的關(guān)鍵技術(shù),任何使用MDA創(chuàng)建的應(yīng)用程序都基于標(biāo)準(zhǔn)化的,平臺無關(guān)的UML模型?!边@樣,就意味著應(yīng)用程序的被定義為平臺無關(guān)的,這樣應(yīng)用程序就是可移植的。這很容易讓人回想其Java所宣稱的“writeoncerunanywhere”,試圖去構(gòu)建一個(gè)平臺無關(guān)的框架,諸如SwingUI庫,必須在性能和平臺集成上作出折衷,在過去,這種折衷是很多產(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)用。但是無論如何,就象前面所提到的,這對開發(fā)者意味著全面轉(zhuǎn)向敏捷開發(fā),而且不能引起不必要的轉(zhuǎn)變和障礙,例如不可逆的代碼生成過程和調(diào)試上的問題。擴(kuò)展MDA到其他領(lǐng)域很困難,OMG所定義的“平臺”的概念很模糊,真正的例子也就是J2EE。在軟件開發(fā)過程中使用模型的道路上,使用模型來創(chuàng)建J2EE應(yīng)用是有效且使用的。事實(shí)上,幾乎沒有關(guān)于平
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年市場營銷特色化營銷題試題及答案
- 安全車輛測試題及答案
- 2024視覺傳播設(shè)計(jì)自考整體規(guī)劃與試題及答案
- 百盛招聘筆試試題及答案
- 需求獲取方法考查試題及答案
- 自考視覺藝術(shù)理論與應(yīng)用試題及答案
- 2024小自考公共事業(yè)管理分析與試題
- 師范生研修網(wǎng)試題及答案
- 2025年公路養(yǎng)護(hù)檢測設(shè)備項(xiàng)目合作計(jì)劃書
- 庫存管理員工關(guān)懷方案
- Unit 6 Topic 2 Section C 課件 -2024-2025學(xué)年仁愛科普版八年級英語下冊
- 中國近現(xiàn)代史綱要學(xué)習(xí)心得體會與民族團(tuán)結(jié)
- 2022年北京市初三一模道德與法治試題匯編:守望精神家園
- 2024年福建省能源石化集團(tuán)有限責(zé)任公司秋季校園招聘153人筆試參考題庫附帶答案詳解
- 2025年修訂版二手房買賣協(xié)議
- 棚戶區(qū)改造項(xiàng)目(EPC)方案投標(biāo)文件(技術(shù)方案)
- 2025年中國軍用方艙行業(yè)市場集中度、企業(yè)競爭格局分析報(bào)告-智研咨詢發(fā)布
- 鍋爐應(yīng)急預(yù)案
- 2025年焦作師范高等專科學(xué)校高職單招高職單招英語2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025山東文旅云智能科技限公司招聘19人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年浙江浙能電力股份有限公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論