注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件工程及軟件方法學程序切片技術及其應用

程序切片技術及其應用

程序切片技術及其應用

定 價:¥35.00

作 者: 李必信編著
出版社: 科學出版社
叢編項:
標 簽: 軟件 分析

ISBN: 9787030169440 出版時間: 2006-03-01 包裝: 平裝
開本: 16開 頁數(shù): 295 字數(shù):  

內(nèi)容簡介

  本書主要介紹程序切片的起源和發(fā)展,程序切片技術的圖論基礎,程序切片的各種變體(如靜態(tài)切片、動態(tài)切片、有條件切片、并發(fā)切片、面向?qū)ο蟪绦虻那衅Ⅲw系結構切片和規(guī)約切片等),計算程序切片的各種方法,以及程序切片技術在軟件調(diào)試、波動分析、軟件測試、度量、重用、程序理解、逆向工程和軟件安全等方面的應用,并討論了程序切片技術的發(fā)展趨向。本書適合作為高等院校計算機軟件專業(yè)學生學習"軟件工程"、"軟件分析與測試"等課程的參考書或工具書,也適合作為軟件分析與測試研究人員的參考書。上篇程序切片技術基本原理第1章 概論1.1 程序切片技術的起源和發(fā)展1.1.1 從數(shù)據(jù)流方程到程序依賴圖1.1.2 從可執(zhí)行的程序切片到不可執(zhí)行的程序切片1.1.3 靜態(tài)切片、動態(tài)切片和有條件切片1.1.4 后向切片和前向切片1.1.5 從源程序代碼切片到軟件規(guī)約切片1.1.6 從單一切片到多種切片1.2 程序切片技術的應用概述1.2.1 程序調(diào)試1.2.2 軟件維護1.2.3 同歸測試1.2.4 軟件度量1.2.5 軟件重用1.2.6 軟件安全1.3 程序切片工具簡介1.3.1 支持C語言的PST1.3.2 支持Ada語言的PST1.3.3 支持Oberon-2語言的PST1.3.4 支持Java語言的PST1.3.5 其他PST小結思考題參考文獻第2章 圖論基礎2.1 控制流圖2.1.1 基本模塊2.1.2 控制流圖定義2.1.3 基本屬性2.2 控制流分析2.2.1 控制流2.2.2 控制流的表示方法2.2.3 支配節(jié)點和后必經(jīng)節(jié)點2.2.4 循環(huán)識別2.3 數(shù)據(jù)流分析2.3.1 可到達定義2.3.2 數(shù)據(jù)流方程2.3.3 活性分析2.4 數(shù)據(jù)依賴和控制依賴2.4.1 控制依賴2.4.2 數(shù)據(jù)依賴2.5 程序依賴圖2.5.1 過程內(nèi)依賴圖2.5.2 過程間依賴圖小結思考題參考文獻第3章 靜態(tài)程序切片3.1 引言3.2 Mark weiser程序切片3.2.1 初步理解3.2.2 基本術語3.2.3 Mark weiser的數(shù)據(jù)流算法3.3 過程內(nèi)切片3.3.1 構造程序依賴圖3.3.2 圖可達性算法3.3.3 例子分析3.4 過程間切片3.4.1 構造系統(tǒng)依賴圖3.4.2 構造特征子圖的算法3.4.3 過程間切片的算法小結思考題參考文獻第4章 動態(tài)程序切片4.1 引言4.2 基本術語4.2.1 程序依賴圖和靜態(tài)切片4.2.2 執(zhí)行歷史和動態(tài)切片準則4.3 Agrawal和Horgan的動態(tài)切片4.3.1 動態(tài)切片方法14.3.2 動態(tài)切片方法24.3.3 動態(tài)切片方法34.3.4 動態(tài)切片方法44.4 Korel和Laski的動態(tài)切片小結思考題參考文獻第5章 有條件程序切片5.1 引言5.2 有條件切片5.2.1 準靜態(tài)切片5.2.2 同時動態(tài)切片5.2.3 一般的有條件切片模型5.2.4 有條件切片計算5.3 切片模型關系分析5.4 分割分析小結思考題參考文獻第6章 面向?qū)ο蟪绦蚯衅?.1 引言6.2 傳統(tǒng)系統(tǒng)依賴圖的缺陷分析6.3 面向?qū)ο笙到y(tǒng)依賴圖6.3.1 OOSDG的基本組成模型6.3.2 OOSDG對SDG的擴充6.3.3 類依賴圖6.3.4 虛函數(shù)調(diào)用圖的構造6.3.5 OOSDG的構造算法6.3.6 基于OOSDG的程序切片算法小結思考題參考文獻第7章 并發(fā)程序切片7.1 引言7.2 Cheng的并發(fā)程序切片思想7.3 Krinke多線程程序靜態(tài)切片方法7.3.1 線程控制流圖7.3.2 線程程序依賴圖7.3.3 基于tPDG的切片7.4 Nanda和Ramesh的并發(fā)程序切片方法7.5 并發(fā)程序的動態(tài)切片7.5.1 進程圖和靜態(tài)程序依賴圖7.5.2 進程圖到并發(fā)圖7.5.3 構建DPDG7.6 面向?qū)ο蟛l(fā)程序的切片方法7.6.1 Zhao的早期方法7.6.2 Java并發(fā)程序的切片方法小結思考題參考文獻第8章 規(guī)約切片8.1 形式規(guī)約切片8.1.1 靜態(tài)形式規(guī)約切片8.1.2 動態(tài)形式規(guī)約切片8.1.3 其他形式規(guī)約切片8.2 基于規(guī)約的程序切片8.2.1 前置和后置條件8.2.2 基于規(guī)約的切片8.3 體系結構規(guī)約切片8.3.1 體系結構規(guī)約8.3.2 體系結構切片定義8.3.3 體系結構信息流圖和體系結構切片的計算8.4 動態(tài)軟件體系結構切片8.5 JVM規(guī)約切片小結思考題參考文獻第9章 新型切片變體9.1 無定型切片9.1.1 程序投影9.1.2 無定型簡單性度量9.1.3 無定型靜態(tài)切片9.1.4 無定型有條件切片9.1.5 無定型切片的實現(xiàn)以及相關問題9.2 削片9.2.1 靜態(tài)削片9.2.2 動態(tài)削片9.2.3 削片的性質(zhì)和構造策略9.3 砍片小結思考題參考文獻中篇程序切片技術的基本應用第lO章 程序調(diào)試10.1 引言10.1.1 什么是程序淵試10.1.2 為什么用切片進行調(diào)試10.2 如何用切片輔助程序調(diào)試10.2.1 調(diào)試中的錯誤分析及切片選取10.2.2 面向?qū)ο蟪绦蚯衅c調(diào)試10.3 基于切片的調(diào)試工具10.3.1 C-Debug10.3.2 SPYDER小結思考題參考文獻第11章 波動分析11.1 引言11.2 程序切片與REA過程11.3 后向切片存在的必要性11.3.1 定義修改11.3.2 使用修改11.3.3 控制修改11.4 程序切片運算11.5 直接波動和誘導波動11.5.1 通用程序切片11.5.2 REA例子小結思考題參考文獻第12章 軟件測試12.1 引言12.2 基于程序切片的軟件測試12.2.1 例子簡介12.2.2 依賴圖模型12.2.3 基本性質(zhì)12.3 回歸測試12.3.1 受影響的定義一使用關系類型12.3.2 BackwardWalk算法12.3.3 ForwardWalk算法12.3.4 進一步討論12.3.5 回歸測試的一般步驟12.4 基于切片技術的軟件測試工具模型小結思考題參考文獻第13章 軟件維護13.1 引言13.2 軟件維護模型13.3 分解切片與軟件維護13.3.1 分解切片13.3.2 使用分解切片的幾條規(guī)則13.4 聯(lián)合切片與軟件維護13.4.1 聯(lián)合切片13.4.2 利用聯(lián)合切片維護軟件13.5 基于切片的軟件維護模型小結思考題參考文獻第14章 復雜性度量14.1 引言14.2 早期基于切片的度量14.3 內(nèi)聚度量14.3.1 數(shù)據(jù)切片14.3.2 膠水、強力膠水和粘性14.3.3 內(nèi)聚度量14.3.4 類內(nèi)切片和類內(nèi)聚14.4 耦合度量14.4.1 Java源代碼中存在的耦合問題分析14.4.2 基于切片的Java耦合度量框架小結思考題參考文獻第15章 軟件安全15.1 引言15.2 軟件安全分析的幾種常用方法15.2.1 失效模式效應分析法15.2.2 軟件故障樹分析法15.2.3 Petri網(wǎng)分析法15.3 臨界安全組件與軟件故障樹分析15.3.1 共同模式失效問題15.3.2 臨界安全組件15.4 基于程序切片的共同模式失效分析方法15.4.1 基本原理15.4.2 例子分析小結思考題參考文獻第16章 軟件重用16.1 引言16.2 轉(zhuǎn)換切片Lj重用16.3 有條件切片與重用16.4 規(guī)約驅(qū)動切片與重用16.5 軟件體系結構切片與重用小結思考題參考文獻第17章 應用擴展17.1 程序分析理解17.1.1 Lucia等人的初步思想17.1.2 Korel的大型程序理解手段17.1.3 Kumar的CONCEPT技術17.2 逆向工程和再工程17.2.1 傳統(tǒng)切片17.2.2 接口切片17.3 Tip的類型錯誤定位方法17.3.1 靜態(tài)語義規(guī)約和類型檢17.3.2 項重寫和依賴追蹤17.3.3 切片精確度問題17.4 程序驗證17.5 其他應用小結思考題參考文獻下篇程序切片技術展望第18章 層次切片模型及其實現(xiàn)18.1 面向?qū)ο蟪绦虻膶哟谓Y構模型18.2 層次切片模型18.3 SSA算法的基本思想18.4 HSM和SSA的實現(xiàn)18.4.1 代碼信息樹18.4.2 依賴圖的生成算法和切片算法18.5 Jato:Java程序切片工具18.5.1 依賴圖生成層18.5.2 切片生成層18.6 層次切片復雜度小結思考題參考文獻第19章 層次切片模型的應用19.1 靜態(tài)信息流分析19.2 耦合度量19.2.1 方法m1和m2之間的耦合度量19.2.2 類c的耦合度量19.3 內(nèi)聚度量19.3.1 子功能內(nèi)聚19.3.2 功能內(nèi)聚19.4 復雜度度量小結思考題參考文獻第20章 結束語20.1 基本原理總結20.2 基本應用總結20.3 未來研究課題20.3.1 程序切片的形式語義20.3.2 無定型程序切片20.3.3 規(guī)約切片20.3.4 基于規(guī)約程序切片20.3.5 軟件體系結構切片20.3.6 程序切片應用參考文獻附錄附錄A 漢英名詞對照附錄B 縮略語英漢對照

作者簡介

  李必信男,1969年出生,安徽廬江人,博士后,現(xiàn)任東南大學計算機科學與工程系教授。1998年2月至2000年12月,在南京大學計算機科學與技術系攻讀博士學位,師從著名軟件工程學者鄭國梁教授;2001年4月至2002年3月,在芬蘭圖爾庫(Turku)計算機科學中心(TUCS)做博士后研究,師從著名軟件工程專家、精化演算創(chuàng)始人RalphJohanBack教授;2002年4月至2004年1月,受聘于歐洲信息和數(shù)學聯(lián)盟(ERCIM),并被派往挪威科學技術大學(NTNU)和荷蘭國家計算機和信息研究中心(CWI)從事教學和研究工作。2004年2月加盟東南大學,并開始組建ERICS(EmpiricalResearchinComputerScience)研究組。目前ERlCS的主要研究方向為軟件開發(fā)新技術與新方法、經(jīng)驗軟件工程、程序切片技術、軟件分析與測試、軟件語言、軟件建模與驗證和軟件過程改進等。1999年以來,先后在JournalofInformationandComputationalScience,InformationandSoftwareTechnology,JournalofComputerScie

圖書目錄

上篇程序切片技術基本原理
第1章 概論
1.1 程序切片技術的起源和發(fā)展
1.1.1 從數(shù)據(jù)流方程到程序依賴圖
1.1.2 從可執(zhí)行的程序切片到不可執(zhí)行的程序切片
1.1.3 靜態(tài)切片、動態(tài)切片和有條件切片
1.1.4 后向切片和前向切片
1.1.5 從源程序代碼切片到軟件規(guī)約切片
1.1.6 從單一切片到多種切片
1.2 程序切片技術的應用概述
1.2.1 程序調(diào)試
1.2.2 軟件維護
1.2.3 同歸測試
1.2.4 軟件度量
1.2.5 軟件重用
1.2.6 軟件安全
1.3 程序切片工具簡介
1.3.1 支持C語言的PST
1.3.2 支持Ada語言的PST
1.3.3 支持Oberon-2語言的PST
1.3.4 支持Java語言的PST
1.3.5 其他PST
小結
思考題
參考文獻
第2章 圖論基礎
2.1 控制流圖
2.1.1 基本模塊
2.1.2 控制流圖定義
2.1.3 基本屬性
2.2 控制流分析
2.2.1 控制流
2.2.2 控制流的表示方法
2.2.3 支配節(jié)點和后必經(jīng)節(jié)點
2.2.4 循環(huán)識別
2.3 數(shù)據(jù)流分析
2.3.1 可到達定義
2.3.2 數(shù)據(jù)流方程
2.3.3 活性分析
2.4 數(shù)據(jù)依賴和控制依賴
2.4.1 控制依賴
2.4.2 數(shù)據(jù)依賴
2.5 程序依賴圖
2.5.1 過程內(nèi)依賴圖
2.5.2 過程間依賴圖
小結
思考題
參考文獻
第3章 靜態(tài)程序切片
3.1 引言
3.2 Mark weiser程序切片
3.2.1 初步理解
3.2.2 基本術語
3.2.3 Mark weiser的數(shù)據(jù)流算法
3.3 過程內(nèi)切片
3.3.1 構造程序依賴圖
3.3.2 圖可達性算法
3.3.3 例子分析
3.4 過程間切片
3.4.1 構造系統(tǒng)依賴圖
3.4.2 構造特征子圖的算法
3.4.3 過程間切片的算法
小結
思考題
參考文獻
第4章 動態(tài)程序切片
4.1 引言
4.2 基本術語
4.2.1 程序依賴圖和靜態(tài)切片
4.2.2 執(zhí)行歷史和動態(tài)切片準則
4.3 Agrawal和Horgan的動態(tài)切片
4.3.1 動態(tài)切片方法1
4.3.2 動態(tài)切片方法2
4.3.3 動態(tài)切片方法3
4.3.4 動態(tài)切片方法4
4.4 Korel和Laski的動態(tài)切片
小結
思考題
參考文獻
第5章 有條件程序切片
5.1 引言
5.2 有條件切片
5.2.1 準靜態(tài)切片
5.2.2 同時動態(tài)切片
5.2.3 一般的有條件切片模型
5.2.4 有條件切片計算
5.3 切片模型關系分析
5.4 分割分析
小結
思考題
參考文獻
第6章 面向?qū)ο蟪绦蚯衅?br />6.1 引言
6.2 傳統(tǒng)系統(tǒng)依賴圖的缺陷分析
6.3 面向?qū)ο笙到y(tǒng)依賴圖
6.3.1 OOSDG的基本組成模型
6.3.2 OOSDG對SDG的擴充
6.3.3 類依賴圖
6.3.4 虛函數(shù)調(diào)用圖的構造
6.3.5 OOSDG的構造算法
6.3.6 基于OOSDG的程序切片算法
小結
思考題
參考文獻
第7章 并發(fā)程序切片
7.1 引言
7.2 Cheng的并發(fā)程序切片思想
7.3 Krinke多線程程序靜態(tài)切片方法
7.3.1 線程控制流圖
7.3.2 線程程序依賴圖
7.3.3 基于tPDG的切片
7.4 Nanda和Ramesh的并發(fā)程序切片方法
7.5 并發(fā)程序的動態(tài)切片
7.5.1 進程圖和靜態(tài)程序依賴圖
7.5.2 進程圖到并發(fā)圖
7.5.3 構建DPDG
7.6 面向?qū)ο蟛l(fā)程序的切片方法
7.6.1 Zhao的早期方法
7.6.2 Java并發(fā)程序的切片方法
小結
思考題
參考文獻
第8章 規(guī)約切片
8.1 形式規(guī)約切片
8.1.1 靜態(tài)形式規(guī)約切片
8.1.2 動態(tài)形式規(guī)約切片
8.1.3 其他形式規(guī)約切片
8.2 基于規(guī)約的程序切片
8.2.1 前置和后置條件
8.2.2 基于規(guī)約的切片
8.3 體系結構規(guī)約切片
8.3.1 體系結構規(guī)約
8.3.2 體系結構切片定義
8.3.3 體系結構信息流圖和體系結構切片的計算
8.4 動態(tài)軟件體系結構切片
8.5 JVM規(guī)約切片
小結
思考題
參考文獻
第9章 新型切片變體
9.1 無定型切片
9.1.1 程序投影
9.1.2 無定型簡單性度量
9.1.3 無定型靜態(tài)切片
9.1.4 無定型有條件切片
9.1.5 無定型切片的實現(xiàn)以及相關問題
9.2 削片
9.2.1 靜態(tài)削片
9.2.2 動態(tài)削片
9.2.3 削片的性質(zhì)和構造策略
9.3 砍片
小結
思考題
參考文獻
中篇程序切片技術的基本應用
第lO章 程序調(diào)試
10.1 引言
10.1.1 什么是程序淵試
10.1.2 為什么用切片進行調(diào)試
10.2 如何用切片輔助程序調(diào)試
10.2.1 調(diào)試中的錯誤分析及切片選取
10.2.2 面向?qū)ο蟪绦蚯衅c調(diào)試
10.3 基于切片的調(diào)試工具
10.3.1 C-Debug
10.3.2 SPYDER
小結
思考題
參考文獻
第11章 波動分析
11.1 引言
11.2 程序切片與REA過程
11.3 后向切片存在的必要性
11.3.1 定義修改
11.3.2 使用修改
11.3.3 控制修改
11.4 程序切片運算
11.5 直接波動和誘導波動
11.5.1 通用程序切片
11.5.2 REA例子
小結
思考題
參考文獻
第12章 軟件測試
12.1 引言
12.2 基于程序切片的軟件測試
12.2.1 例子簡介
12.2.2 依賴圖模型
12.2.3 基本性質(zhì)
12.3 回歸測試
12.3.1 受影響的定義一使用關系類型
12.3.2 BackwardWalk算法
12.3.3 ForwardWalk算法
12.3.4 進一步討論
12.3.5 回歸測試的一般步驟
12.4 基于切片技術的軟件測試工具模型
小結
思考題
參考文獻
第13章 軟件維護
13.1 引言
13.2 軟件維護模型
13.3 分解切片與軟件維護
13.3.1 分解切片
13.3.2 使用分解切片的幾條規(guī)則
13.4 聯(lián)合切片與軟件維護
13.4.1 聯(lián)合切片
13.4.2 利用聯(lián)合切片維護軟件
13.5 基于切片的軟件維護模型
小結
思考題
參考文獻
第14章 復雜性度量
14.1 引言
14.2 早期基于切片的度量
14.3 內(nèi)聚度量
14.3.1 數(shù)據(jù)切片
14.3.2 膠水、強力膠水和粘性
14.3.3 內(nèi)聚度量
14.3.4 類內(nèi)切片和類內(nèi)聚
14.4 耦合度量
14.4.1 Java源代碼中存在的耦合問題分析
14.4.2 基于切片的Java耦合度量框架
小結
思考題
參考文獻
第15章 軟件安全
15.1 引言
15.2 軟件安全分析的幾種常用方法
15.2.1 失效模式效應分析法
15.2.2 軟件故障樹分析法
15.2.3 Petri網(wǎng)分析法
15.3 臨界安全組件與軟件故障樹分析
15.3.1 共同模式失效問題
15.3.2 臨界安全組件
15.4 基于程序切片的共同模式失效分析方法
15.4.1 基本原理
15.4.2 例子分析
小結
思考題
參考文獻
第16章 軟件重用
16.1 引言
16.2 轉(zhuǎn)換切片Lj重用
16.3 有條件切片與重用
16.4 規(guī)約驅(qū)動切片與重用
16.5 軟件體系結構切片與重用
小結
思考題
參考文獻
第17章 應用擴展
17.1 程序分析理解
17.1.1 Lucia等人的初步思想
17.1.2 Korel的大型程序理解手段
17.1.3 Kumar的CONCEPT技術
17.2 逆向工程和再工程
17.2.1 傳統(tǒng)切片
17.2.2 接口切片
17.3 Tip的類型錯誤定位方法
17.3.1 靜態(tài)語義規(guī)約和類型檢
17.3.2 項重寫和依賴追蹤
17.3.3 切片精確度問題
17.4 程序驗證
17.5 其他應用
小結
思考題
參考文獻
下篇程序切片技術展望
第18章 層次切片模型及其實現(xiàn)
18.1 面向?qū)ο蟪绦虻膶哟谓Y構模型
18.2 層次切片模型
18.3 SSA算法的基本思想
18.4 HSM和SSA的實現(xiàn)
18.4.1 代碼信息樹
18.4.2 依賴圖的生成算法和切片算法
18.5 Jato--Java程序切片工具
18.5.1 依賴圖生成層
18.5.2 切片生成層
18.6 層次切片復雜度
小結
思考題
參考文獻
第19章 層次切片模型的應用
19.1 靜態(tài)信息流分析
19.2 耦合度量
19.2.1 方法m1和m2之間的耦合度量
19.2.2 類c的耦合度量
19.3 內(nèi)聚度量
19.3.1 子功能內(nèi)聚
19.3.2 功能內(nèi)聚
19.4 復雜度度量
小結
思考題
參考文獻
第20章 結束語
20.1 基本原理總結
20.2 基本應用總結
20.3 未來研究課題
20.3.1 程序切片的形式語義
20.3.2 無定型程序切片
20.3.3 規(guī)約切片
20.3.4 基于規(guī)約程序切片
20.3.5 軟件體系結構切片
20.3.6 程序切片應用
參考文獻
附錄
附錄A 漢英名詞對照
附錄B 縮略語英漢對照

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.dappsexplained.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號