一種基于軟件架構(gòu)的組件實(shí)現(xiàn)的基本模型及其語言與工具支持.pdf_第1頁
已閱讀1頁,還剩74頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、軟件架構(gòu)(SoftwareArchutectureSA)描述了軟件系統(tǒng)的高層整體框架。清晰的軟件架構(gòu)促進(jìn)了更加有效的軟件設(shè)計(jì),程序理解,形式化分析以及軟件生產(chǎn)線的構(gòu)建。為了支持對于軟件架構(gòu)的清晰描述以及在具體實(shí)現(xiàn)中進(jìn)行架構(gòu)推理(ArchitecturalReasoning),一系列架構(gòu)定義語言(ArchitectureDefinitionLanguagesADL)被設(shè)計(jì)出來對系統(tǒng)建模,架構(gòu)描述,以及完成對架構(gòu)與實(shí)現(xiàn)代碼的一致性檢驗(yàn)。

2、 目前存在的ADL對于具體實(shí)現(xiàn)的處理上主要可以分為兩大類:一類的ADL只負(fù)責(zé)架構(gòu)的抽象定義,并不考慮任何與實(shí)現(xiàn)有關(guān)的問題。在這種情況下,具體的實(shí)現(xiàn)只好通過程序員或是軟件工程師自己對于架構(gòu)的理解來完成,無任何的強(qiáng)制手段。結(jié)果就是導(dǎo)致架構(gòu)與實(shí)現(xiàn)的耦合過于松散,實(shí)現(xiàn)中也反映不出架構(gòu)來,其結(jié)果是對于軟件開發(fā)過程無多少實(shí)際意義。第二類的ADL則走向另一個(gè)極端,這類以ArchJava為代表的ADL將實(shí)現(xiàn)與架構(gòu)抽象緊密地結(jié)合,將它們統(tǒng)一在一種語言

3、中。這種ADL在語言中使用一個(gè)強(qiáng)大的類型系統(tǒng),使用類型檢查來強(qiáng)制架構(gòu)與抽象的統(tǒng)一。然而,這樣的ADL卻無法提供給設(shè)計(jì)人員來定義和設(shè)計(jì)架構(gòu)抽象,因?yàn)樵谠O(shè)計(jì)階段,具體的實(shí)現(xiàn)代碼顯然不會(huì)存在。 目前對于軟件架構(gòu)的研究中還存在著另外一方面的問題。軟件架構(gòu)中所定義的組件具有兩種不同的特性:作為SA中的基本元素,它們之間的通訊必須嚴(yán)格地遵循架構(gòu)限制。另一方面,作為基于組件的軟件開發(fā)的構(gòu)成元素,它們和一般的組件一樣,也必須擁有可以被獨(dú)立開發(fā),

4、并支持滯后的第三方集成(Latethirdpartyintegration)的靈活性。這兩方面問題都非常的重要,因?yàn)椴粷M足架構(gòu)限制,SA在軟件開發(fā)中毫無意義;然而如果架構(gòu)中的組件不具有可以獨(dú)立開發(fā)的靈活性,那么SA無法被真正到應(yīng)用到實(shí)用中去。然而,目前對于這兩方面的研究往往分開進(jìn)行,無任何聯(lián)系。對于任何一個(gè)問題所提出的解決方案根本無法來應(yīng)用于解決另一個(gè)問題。這給SA的應(yīng)用帶來了極大的阻礙。在本文中,作者試圖將此兩個(gè)問題結(jié)合在一起考慮。本

5、文首先提出了一個(gè)新穎的設(shè)計(jì)模式triple-C模式(Component-C-ommunicate-through-Connector),此模式不但強(qiáng)調(diào)了實(shí)現(xiàn)必須完全遵循架構(gòu)定義,而且首次把架構(gòu)中定義的組件也必須擁有可以被獨(dú)立開發(fā)的靈活性這一問題在軟件架構(gòu)的研究領(lǐng)域提出。此模式建議不但架構(gòu)中定義的組件必須被實(shí)現(xiàn),架構(gòu)抽象中的組件間連接關(guān)系(connection)也應(yīng)被在實(shí)現(xiàn)中得以體現(xiàn)。實(shí)現(xiàn)中組件的通訊不應(yīng)存在直接的client-serve

6、r關(guān)系,而是通過被實(shí)現(xiàn)的軟件連接子1(SoftwareConnector)來傳遞完成。 基于triple-C模式,作者設(shè)計(jì)了一種新型的架構(gòu)定義語言JCMPL,來支持抽象架構(gòu)的描述。JCMPL僅僅定義抽象,不牽涉任何實(shí)現(xiàn)內(nèi)容,因此完全適用于SA的設(shè)計(jì)。同時(shí),作者還開發(fā)了工具集JCMP,來編譯JCMPL語言,產(chǎn)生基于triple-C模式的實(shí)現(xiàn)代碼(本文中的實(shí)現(xiàn)代碼為Java代碼),完成自動(dòng)的接口匹配、檢查,最終實(shí)現(xiàn)代碼與抽象定義的一

7、致性。本文介紹了如何保證基于triple-C模式的實(shí)現(xiàn)與JCMPL所定義的架構(gòu)一致性,以及如何支持基于triple-C模式組件的獨(dú)立開發(fā)的方法。由于基于triple-C模式的實(shí)現(xiàn)更加清晰和真實(shí)地反映了架構(gòu)抽象,JCMP工具集還提供了JCMP/Miner的工具來動(dòng)態(tài)地從已經(jīng)存在的組件實(shí)現(xiàn)中提取出架構(gòu)定義,這也將極大地促進(jìn)組件的復(fù)用以及軟件架構(gòu)在軟件工業(yè)中的應(yīng)用。本文的最后,作者將方案應(yīng)用于實(shí)際系統(tǒng)中,并在其功能與性能上做出了評估。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論