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