- 相關(guān)推薦
計算機軟件動(dòng)態(tài)演化技術(shù)概述
軟件動(dòng)態(tài)演化技術(shù)的研究和應用軟件開(kāi)發(fā)有重要意義,下面是小編搜集整理的一篇探究計算機軟件動(dòng)態(tài)演化技術(shù)論文范文,歡迎閱讀查看。
摘 要:本文闡述了軟件動(dòng)態(tài)演化技術(shù)的現狀,研究意義和發(fā)展前景。
關(guān)鍵詞:動(dòng)態(tài)演化;語(yǔ)言層面;體系結構模型
1 軟件動(dòng)態(tài)演化的定義
計算機軟件技術(shù)的發(fā)展,令人們的社會(huì )生活變得豐富有趣,然而隨著(zhù)計算機硬件技術(shù)和網(wǎng)絡(luò )技術(shù)的快速發(fā)展,各種各樣的計算硬件平臺充斥到計算機網(wǎng)絡(luò )應用的方方面面,許多軟件已經(jīng)因為不能適應物理環(huán)境的改變失去了生存空間,人們期望能夠有一種新的軟件技術(shù)來(lái)代替原有的軟件開(kāi)發(fā)技術(shù),使得開(kāi)發(fā)出的軟件能夠適應物理環(huán)境的改變,延長(cháng)軟件的生命周期,降低軟件的開(kāi)發(fā)成本。針對這個(gè)問(wèn)題,國內外專(zhuān)家學(xué)者都提出了自己的解決方案,如網(wǎng)構軟件、自治計算和普適計算機模式等。
透過(guò)現象看本質(zhì),產(chǎn)生這個(gè)問(wèn)題的原因是變化,網(wǎng)絡(luò )環(huán)境的改變,硬件環(huán)境的改變和人們對軟件功能的需求改變。為了解決這個(gè)問(wèn)題,軟件動(dòng)態(tài)演化技術(shù)應運而生。軟件動(dòng)態(tài)演化技術(shù)就是期待所開(kāi)發(fā)出來(lái)的軟件能夠在運行中,根據環(huán)境地變化而主動(dòng)修改執行以呈現不同的功能行為的技術(shù)。演化主要由滿(mǎn)足設計期間需求的預設演化和滿(mǎn)足運行期間需求的非預設演化構成。目前,軟件動(dòng)態(tài)演化已經(jīng)成為軟件工程中一個(gè)新的但是很熱門(mén)的研究領(lǐng)域。
2 軟件動(dòng)態(tài)演化的意義
傳統軟件常常期望能夠盡可能多的滿(mǎn)足用戶(hù)的需求,也就是傳統軟件演化主要是預設演化,但由于用戶(hù)需求、網(wǎng)絡(luò )環(huán)境介質(zhì),拓撲結構,計算平臺等軟件應用環(huán)境的改變以及軟件開(kāi)發(fā)周期的限制,要在軟件開(kāi)發(fā)的設計初期考慮所有潛在和未知的需求幾乎是不可能的。因此為了延長(cháng)軟件的生存周期,使有限的資源發(fā)揮最大的功效,提升軟件的適應能力,軟件需要具有動(dòng)態(tài)演化的能力。另外,互聯(lián)網(wǎng)經(jīng)濟體已經(jīng)成為世界上最重要的經(jīng)濟體之一,互聯(lián)網(wǎng)經(jīng)濟體對軟件的需求是不間斷運行,這也是互聯(lián)網(wǎng)經(jīng)濟體的特點(diǎn)之一,在這種情況下,那怕是因為正常的軟件升級和優(yōu)化造成的短暫停止都會(huì )帶來(lái)巨大的損失,這是用戶(hù)所不能忍受的。所以支持動(dòng)態(tài)演化是軟件維護過(guò)程中的有力保證。再者,現有的軟件提供模式已經(jīng)不再能滿(mǎn)足用戶(hù)的需求,用戶(hù)不希望同一個(gè)軟件對于不同的用戶(hù)呈現出來(lái)的都是千篇一律的應用,不同的用戶(hù)對于同一個(gè)軟件的不同功能感興趣,用戶(hù)更希望能夠根據需要定制所需軟件,因此,這也要求軟件具有演化功能。軟件演化技術(shù)正是在需求個(gè)性化與多元化的刺激下應運而生的。
3 軟件動(dòng)態(tài)演化技術(shù)的研究現狀
現有的軟件動(dòng)態(tài)演化技術(shù)從軟件描述語(yǔ)言、軟件體系結構及軟件框架與模型等方面進(jìn)行了深入研究。
(1)在軟件演化編程技術(shù)上,各種編程語(yǔ)言都提供了一些有效機制實(shí)現軟件的動(dòng)態(tài)演化,在JAVA和C++語(yǔ)言中提供了延遲綁定機制,使軟件在運行時(shí)才綁定具體的對象。C#中的反射機制,可以對軟件進(jìn)行內省,并可以在運行時(shí)動(dòng)態(tài)創(chuàng )建對象。但是,編程語(yǔ)言提供的自適應演化機制僅僅局限于DLL替換、函數等小規模范圍的演化。
(2)構造動(dòng)態(tài)演化的軟件系統難度非常大,原有的演化方式具有將動(dòng)態(tài)演化邏輯固化在應用邏輯中的缺點(diǎn),這樣的方法具有很大的局限性。為了能夠在宏觀(guān)的角度指導軟件系統在運行時(shí)刻的動(dòng)態(tài)演化,現在的研究從體系結構的角度出發(fā)進(jìn)行動(dòng)態(tài)演化軟件的設計,取得了較好的效果,這種支持軟件動(dòng)態(tài)演化的體系結構也被稱(chēng)之為動(dòng)態(tài)軟件體系結構。我國的北京大學(xué)提出了自適應軟件體系結構建模及其實(shí)施的方法描述,浙江大學(xué)則給出了一種形式化的動(dòng)態(tài)體系結構描述語(yǔ)言。
(3)在研究中,許多科研機構給出了軟件動(dòng)態(tài)演化技術(shù)的框架和模型。東南大學(xué)提出了一種自適應框架,該框架可以根據學(xué)生的訪(fǎng)問(wèn)設備、網(wǎng)絡(luò )狀況、用戶(hù)信息等上下文信息動(dòng)態(tài)生成學(xué)生的學(xué)習對象課件,并且在學(xué)生進(jìn)行學(xué)習的過(guò)程中,對學(xué)生的行為和喜好進(jìn)行信息收集,以幫助更新學(xué)生的模式庫和數據挖掘規則。
浙江大學(xué)博士提出了一個(gè)面向普適計算的自適應中間件模型SCUD,在SCUD中通過(guò)擴展時(shí)序邏輯對中間件自適應語(yǔ)義進(jìn)行規范范描述,利用基于內省與上下文感知的外省機制組成一個(gè)有機的整體,實(shí)現面向普適式計算的可靠高效的中間件自適應演化機制。
(4)作為軟件設計開(kāi)發(fā)的新思路,面向服務(wù)計算和面向服務(wù)體系結構可以通過(guò)重用有良好接口的服務(wù)而構筑一個(gè)新的軟件系統,服務(wù)與服務(wù)之間連接使用松耦合,互相依賴(lài)較少。在軟件演化技術(shù)的研究過(guò)程中,不管是采用體系結構還是利用反射等機制,技術(shù)核心都是軟件實(shí)體之間的分離和對象的松耦合引用,只有軟件實(shí)體之間盡可能的分離,那么單個(gè)的軟件實(shí)體的變化才不會(huì )影響其它實(shí)體的行為,而松耦合的對象引用讓系統在運行過(guò)程中,可以通過(guò)代理的解釋?zhuān)该鞯霓D換到實(shí)際的對象,這樣當對象重建、變化、修改時(shí),用戶(hù)察覺(jué)不到的,系統在運行時(shí)的狀態(tài)便靈活可變,也就實(shí)現了用戶(hù)變化需求的目的。在面向服務(wù)的軟件體系結構中,將業(yè)務(wù)邏輯和具體實(shí)現技術(shù)兩者進(jìn)行了分離,從而使遵循該體系結構的軟件應用能適應邏輯業(yè)務(wù)與實(shí)現技術(shù)的不斷變化;另外,服務(wù)提供者將服務(wù)的接口信息向服務(wù)注冊機構發(fā)布,該接口信息描述了服務(wù)所需的外部環(huán)境以及它向外部提供的服務(wù);而服務(wù)調用者則通過(guò)服務(wù)代理查找服務(wù)注冊登記處,查找自己所需的服務(wù),進(jìn)而使用服務(wù)接口。這樣就實(shí)現了服務(wù)在運行時(shí)進(jìn)行重新組合,可以隨時(shí)申請的注銷(xiāo)服務(wù)。前面所述的機制保證了面向服務(wù)體系結構的軟件系統在運行時(shí)可以靈活多變,實(shí)現響應用戶(hù)需求變化的目的。
4 軟件動(dòng)態(tài)演化技術(shù)的應用前景
目前,軟件動(dòng)態(tài)演化技術(shù)的相關(guān)理論、技術(shù)和方法仍然處在起步階段,到大范圍的應用階段仍存在一定的距離,許多方法理論需要進(jìn)一步的研究完善。但是,由于互聯(lián)網(wǎng)技術(shù)和計算機硬件技術(shù)的發(fā)展,人們對具有動(dòng)態(tài)演化能力的軟件需求必將進(jìn)一步擴大。具有動(dòng)態(tài)演化功能的軟件將成為人們開(kāi)發(fā)軟件時(shí)的首選,具有動(dòng)態(tài)演化的系統可以通過(guò)收集外部信息進(jìn)行自我評估,當信息變化表明外部環(huán)境發(fā)生變化時(shí),可以進(jìn)行軟件形態(tài)的變化,主要表現為軟件實(shí)體數目、結構和軟件具體行為的變化。這樣,通過(guò)軟件演化技術(shù)產(chǎn)生的系統將能更加廣泛的應用于各種不同的計算平臺,使得軟件的通用性及個(gè)性得到最大限度的發(fā)揮。
5 小結
軟件動(dòng)態(tài)演化技術(shù)的研究和應用軟件開(kāi)發(fā)有重要意義,在增強軟件對環(huán)境的適應能力方面有著(zhù)廣泛的應用前景。本文簡(jiǎn)單的闡述了當前軟件動(dòng)態(tài)演化技術(shù)的現狀及應用前景。介紹了當前軟件動(dòng)態(tài)深化技術(shù)取得的一些成果和技術(shù)。為以后進(jìn)一步的研究打下了堅實(shí)的理論基礎。在以后的系統開(kāi)發(fā)過(guò)程中,應該將重構思想貫穿全局,重構的工作方式可以大大減少先前設計的工作量,同時(shí)它使設計變?yōu)橐环N必要和需求的產(chǎn)物。這種產(chǎn)物能更準確地反映問(wèn)題的本身。同時(shí),它也可以使設計隨著(zhù)對問(wèn)題的進(jìn)一步深入而逐漸變得合理。這是一種進(jìn)化的設計方法。
參考文獻:
[1]張國輝,謝小鵬,陳建明.一種軟件重構設計方法及其應用[J].現代制造工程,2010(05).
[2]王穎斯,劉建賓.軟件重構技術(shù)綜述[J].福建電腦,2009(10).
[3]殷定媛,高建華.軟件重構中Visitor設計模式和應用[J].計算機工程與設計,2006(24).
[4]陳生慶,張立臣,陳廣明.面向方面軟件重構等價(jià)性形式化證明方法[J].計算機科學(xué),2006(07).
[5]林治.軟件重構在軟件開(kāi)發(fā)中的作用分析[J].揚州教育學(xué)院學(xué)報,2007(03).
【計算機軟件動(dòng)態(tài)演化技術(shù)概述】相關(guān)文章:
淺析顧客需求、期望與知識的動(dòng)態(tài)演化09-07
淺談植物檢疫技術(shù)概述08-10
JSP動(dòng)態(tài)網(wǎng)頁(yè)制作技術(shù)09-19
C++類(lèi)的動(dòng)態(tài)組件化技術(shù)10-12
膜結構的加工制作與施工技術(shù)概述09-24
計算機軟件技術(shù)中插件技術(shù)的運用10-02