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