軟件動態(tài)演化技術

出版時間:2007-11  出版社:北京大學  作者:李長云,何頻捷,李玉龍  頁數(shù):290  
Tag標簽:無  

內(nèi)容概要

為了適應Internet開放環(huán)境和用戶需求的不斷變化,軟件系統(tǒng)需要不斷調(diào)整自身。軟件動態(tài)演化技術是滿足這一變化的有效手段,也是自治計算、網(wǎng)格計算、自適應軟件和網(wǎng)構軟件的核心技術。本書是國內(nèi)外第一本對軟件動態(tài)演化技術進行系統(tǒng)闡述的著作。作者結合多年研究和實踐的經(jīng)驗,從開放系統(tǒng)發(fā)展動力到動態(tài)演化技術產(chǎn)生,從動態(tài)演化技術基本原理到動態(tài)演化的形態(tài)和粒度,從動態(tài)配置技術到基于反射的動態(tài)演化、動態(tài)演化的基礎設施,從設計可動態(tài)演化的軟件系統(tǒng)到動態(tài)演化技術的應用以及未來發(fā)展趨勢,都進行了系統(tǒng)的論述。本書最后部分介紹了作者提出的軟件動態(tài)演化模型SASM及其支持工具和平臺,望起到拋磚引玉的作用。    本書內(nèi)容全面、敘述清楚,注意一些最新的協(xié)議、規(guī)范及學術界、工業(yè)界研究進展,同時還非常注重實用性。本書既適用于本科高年級和研究生的教學,也可供工程技術人員自學參考之用。

書籍目錄

第1章 概述 1.1 軟件演化的基本概念  1.1.1 軟件演化、軟件維護與軟件復用  1.1.2 軟件演化的分類 1.2 設計時演化  1.2.1 設計模式對設計時演化的支持  1.2.2 構件技術對設計時演化的支持  1.2.3 框架技術對設計時演化的支持 1.3 裝載時演化 1.4 動態(tài)演化概念  1.4.1 動態(tài)演化、動態(tài)配置和軟件的演化性  1.4.1 動態(tài)演化分類 1.5 軟件動態(tài)演化技術的重要性  1.5.1 Internet需要軟件動態(tài)演化  1.5.2 動態(tài)演化性是網(wǎng)構軟件的基本特征  1.5.3 追求動態(tài)演化能力是自治計算的目的  1.5.4 動態(tài)演化技術是網(wǎng)格計算的基礎第2章 動態(tài)演化基礎 2.1 基本原理  2.1.1 動態(tài)演化過程  2.1.2 語言、模型和平臺  2.1.3 動態(tài)演化要解決的關鍵問題 2.2 系統(tǒng)一致性  2.2.1 系統(tǒng)一致性分類  2.2.2 行為一致性  2.2.3 構件狀態(tài)一致性  2.2.4 應用狀態(tài)一致性  2.2.5 引用一致性 2.3 狀態(tài)遷移方法  2.3.1 狀態(tài)檢測  2.3.2 狀態(tài)遷移方法分類  2.3.3 一種構件間狀態(tài)遷移的元模型驅動方法第3章 設計可動態(tài)演化的軟件系統(tǒng) 3.1 構造性和演化性 3.2 動態(tài)需求  3.2.1 具有動態(tài)性的需求和需求的動態(tài)性  3.2.2 需求的動態(tài)變化性  3.2.3 具有動態(tài)性的需求 3.3 應用設計模式  3.3.1 設計模式的概念和分類  3.3.2 支持動態(tài)演化的設計模式  3.3.3 設計模式的應用 3.4 應用框架  3.4.1 框架的概念和分類  3.4.2 支持動態(tài)演化的框架  3.4.3 框架的應用 3.5 應用軟件體系結構風格  3.5.1 體系結構風格概念和分類  3.5.2 支持動態(tài)演化的體系結構風格  3.5.3 體系結構風格的應用 3.6 AOP技術  3.6.1 AOP技術簡介  3.6.2 動態(tài)AOP  3.6.3 AOP技術在Java平臺中的應用第4章 動態(tài)演化的粒度 4.1 函數(shù)層次的動態(tài)演化  4.1.1 DLL簡介  4.1.2 調(diào)用方式  4.1.3 重新編譯問題及解決方案  4.1.4 小結 4.2 類/對象層次的動態(tài)演化  4.2.1 JAVA的動態(tài)性  4.2.2 隱式加載和顯式加載  4.2.3 自定義類加載機制  4.2.4 類加載器的階層體系  4.2.5 類的動態(tài)替換  4.2.6 小結 4.3 構件層次的動態(tài)演化  4.3.1 構件和基于構件的軟件工程  4.3.2 當前主要的構件標準規(guī)范  4.3.3 構件的動態(tài)配置  4.3.4 總結 4.4 動態(tài)軟件體系結構  4.4.1 體系結構概念  4.4.2 演化與體系結構  4.4.3 動態(tài)軟件體系結構的描述  4.4.4 動態(tài)軟件體系結構的實現(xiàn) 4.5 動態(tài)工作流  4.5.1 工作流技術簡介  4.5.2 動態(tài)工作流概述  4.5.3 動態(tài)工作流的特征及分類  4.5.4 動態(tài)修改的策略或處理  4.5.5 應用示例第5章 動態(tài)配置技術 5.1 動態(tài)配置系統(tǒng)體系結構 5.2 動態(tài)配置方法的分類 5.3 避免性動態(tài)配置方法  5.3.1 Jeff方法  5.3.2 Warren方法  5.3.3 其他方法  5.3.4 避免性動態(tài)配置方法中存在的不足 5.4 動態(tài)配置算法  5.4.1 構件刪除算法  5.4.2 構件添加算法  5.4.3 構件替換算法  5.4.4 構件遷移算法  5.4.5 連接建立算法  5.4.6 連接刪除算法  5.4.7 連接重定向算法  5.4.8 構件屬性設置算法第6章 基于反射的動態(tài)演化 6.1 反射  6.1.1 背景、概念和特征  6.1.2 反射的分類 6.2 反射系統(tǒng)  6.2.1 反射系統(tǒng)的概念  6.2.2 面向對象的反射系統(tǒng)  6.2.3 反射模型 6.3 反射和演化 6.4 反射中間件  6.4.1 背景和概念  6.4.2 幾個典型的反射中間件  6.4.3 中間件中的反射層  6.4.4 反射層的編程模型  6.4.5 利用反射層實現(xiàn)服務定制 6.5 基于反射理論的動態(tài)配置模型第7章 動態(tài)演化的基礎設施 7.1 COM構件的演化機制  7.1.1 概述  7.1.2 平臺設計  7.1.3 ProBase平臺引擎的設計  7.1.4 業(yè)務構件交互問題  7.1.5 ProBase優(yōu)點總結 7.2 CORBA構件的演化機制  7.2.1 概述  7.2.2 反射式動態(tài)配置模型RDRM  7.2.3 動態(tài)配置系統(tǒng)反射體系  7.2.4 RDRM模型中的要素活躍性分析  7.2.5 RDRM模型在CCM平臺上的映射  7.2.6 StarDRP的實現(xiàn)  7.2.7 StarDRP體系結構  7.2.8 小結 7.3 J2EE平臺的演化機制  7.3.1 構件管理框架  7.3.2 J2EE動態(tài)演化支撐平臺  7.3.3 小結 7.4 Web Services和SOA  7.4.1 Web Services技術  7.4.2 SOA基礎  7.4.3 SOA與Web Services的聯(lián)系  7.4.4 Web Services的動態(tài)組合 7.5 多Agent系統(tǒng)  7.5.1 多Agent系統(tǒng)簡介  7.5.2 多Agent系統(tǒng)的體系結構  7.5.3 多Agent系統(tǒng)的動態(tài)性分析  7.5.4 Web Agent第8章 與動態(tài)演化技術相關的應用 8.1 自治計算  8.1.1 自治計算的概念  8.1.2 自治計算的特征  8.1.3 動態(tài)演化在自治計算中的應用 8.2 網(wǎng)格計算  8.2.1 網(wǎng)格計算的概念  8.2.2 網(wǎng)格計算的體系結構  8.2.3 網(wǎng)格軟件構件  8.2.4 網(wǎng)格服務集成 8.3 普適計算  8.3.1 普適計算的概念  8.3.2 普適計算層次化模型  8.3.3 普適計算的關鍵技術  8.3.3 動態(tài)演化在普適計算中的應用 8.4 自適應中間件  8.4.1 自適應中間件的概念  8.4.2 自適應中間件的分類  8.4.3 自適應中間件的支撐方法第9章 支持動態(tài)演化的模型SASM 9.1 引言 9.2 D-ADL語言  9.2.1 D-ADL設計原則  9.2.2 高階多型丌演算簡介  9.2.3 D-ADL的語法規(guī)約和形式語義  9.2.4 D-ADL對系統(tǒng)聯(lián)機演化和SA求精的形式化支持  9.2.5 D-ADL和其他相關工作的比較 9.3 SASM模型  9.3.1 相關研究  9.3.2 基本原理  9.3.3 SASM框架  9.3.4 SASM中的反射機制  9.3.5 SASM系統(tǒng)開發(fā) 9.4 SASM動態(tài)演化方法  9.4.1 簡單的系統(tǒng)演化  9.4.2 由RSAS變更引起的動態(tài)演化 9.5 小結第10章 SASM支撐平臺和工具 10.1 引言 10.2 支撐平臺的總體架構設計 10.3 運行和監(jiān)控的關鍵技術  10.3.1 運行信息跟蹤器的機理分析  10.3.2 元連接件引擎的設計 10.4 動態(tài)演化管理  10.4.1 動態(tài)演化過程中的平臺支持  10.4.2 運行狀態(tài)維持機制 10.5 支撐平臺的一個原型實現(xiàn)  10.5.1 原型系統(tǒng)的開發(fā)環(huán)境  10.5.2 體系結構元素的表示  10.5.3 原型系統(tǒng)的設計與實現(xiàn)  10.5.4 對原型環(huán)境中物理構件間的通信測試參考文獻

章節(jié)摘錄

  第1章 概述  1.1 軟件演化的基本概念  “變化”是現(xiàn)實世界永恒的主題,只有“變化”才能發(fā)展。Lehman認為,現(xiàn)實世界的系統(tǒng)要么變得越來越?jīng)]有價值,要么進行持續(xù)不斷的演化變化以適應環(huán)境的變化。軟件是對現(xiàn)實世界中問題空間與解空間的具體描述,是客觀事物的一種反映。現(xiàn)實世界是不斷演化的,因此,演化性是軟件的基本屬性。特別是在Intemet成為主流軟件運行環(huán)境之后,網(wǎng)絡的開放性和動態(tài)性使得客戶需求與硬件資源更加頻繁地變化,導致軟件的演化性和復雜性進一步增強?! ?.1.1 軟件演化、軟件維護與軟件復用  軟件演化(Software Evolution)指在軟件系統(tǒng)的生命周期內(nèi)軟件維護和軟件更新的行為和過程。在現(xiàn)代軟件系統(tǒng)的生命周期內(nèi),演化是一項貫穿始終的活動,系統(tǒng)需求改變、功能實現(xiàn)增強、新功能加入、軟件體系結構改變、軟件缺陷修復、運行環(huán)境改變無不均要求軟件系統(tǒng)具有較強的演化能力,能夠快速適應改變,減少軟件維護的代價?! ≤浖莼芯恐铝τ趯ふ乙?guī)則、識別模式。這種規(guī)則和模式,主要用于管理那些由應用程序的編程人員或者是維護人員所作的變更。這意味著軟件演化研究與導致系統(tǒng)不一致的變化有關。軟件演化是一個模糊而范圍廣泛的概念,普遍的理解認為演化就是修改軟件,而且意味著需要一個新的開發(fā)周期,包括新的測試和生成階段,這樣對于資源消耗來說是很危險的。尤其當調(diào)試者不是軟件的開發(fā)人員的時候,就顯得更加復雜了。我們認為軟件演化應致力于盡可能限制那些可能被影響的變化本身的性質?! 能浖莼母拍顏砜矗浖莼蛙浖S護有著密切聯(lián)系,但二者又有本質區(qū)別。軟件維護是對現(xiàn)有的已交付的軟件系統(tǒng)進行修改,使得目標系統(tǒng)能夠完成新的功能,或是在新的環(huán)境下完成同樣的功能,主要是指在軟件維護期的修改活動。而軟件演化則是著眼于軟件的整個生命周期,從系統(tǒng)功能行為的角度來觀察系統(tǒng)的變化,這種變化是軟件的一種向前的發(fā)展過程,主要體現(xiàn)在軟件功能的不斷完善。在軟件維護期,通過具體的維護活動可以使系統(tǒng)不斷向前演化。因此,軟件維護和軟件演化可以歸結為這樣一種關系:前者是后者特定階段的活動,并且前者直接是后者的組成部分。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    軟件動態(tài)演化技術 PDF格式下載


用戶評論 (總計0條)

 
 

 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7