基于面向?qū)ο蟪绦蚯衅能浖攘?/h1>
1 引言
程序切片是軟件工程領(lǐng)域的一項程序分析技術(shù),在軟件測試、度量、程序調(diào)試、維護(hù)以及逆向工程等方面有著廣泛應(yīng)用。通過切片技術(shù),人們在程序分析過程中可以重點關(guān)注那些感興趣的代碼或者變量。
本文引用地址:http://2s4d.com/article/201809/388955.htm2 程序切片技術(shù)
這里利用面向對象程序切片技術(shù)進(jìn)行軟件度量。程序切片主要包括:
(1)語句切片該傳統(tǒng)的程序切片技術(shù)是一種條件切片,根據(jù)程序的順序、循環(huán)和選擇結(jié)構(gòu)進(jìn)行程序切片。
(2)無定型程序切片 其不僅在保存一個程序語義投影的同時簡化了程序,還可以使用任何簡化的轉(zhuǎn)換。而這些轉(zhuǎn)換保留了該語義映射。
(3)面向對象切片 把切片技術(shù)應(yīng)用于面向對象的系統(tǒng)相關(guān)圖和過程相關(guān)圖中,使對面向?qū)ο蟪绦虻拇a理解、測試、調(diào)試、逆向工程和度量分析變得相對容易嘲。
3 面向?qū)ο蟪绦蚯衅夹g(shù)
程序切片技術(shù)分面向過程和面向?qū)ο蟪绦蚯衅?。目前程序切片大都以系統(tǒng)依賴圖為基礎(chǔ),利用圖的可達(dá)性算法獲得。
3.1 SDG和OOSDG
系統(tǒng)依賴圖SDG(System Dependence Graph)用一組邊和頂點的集合表示一個程序。頂點表示程序的語句和控制謂詞,邊則表示語句之間的依賴關(guān)系。在SDG中有兩類邊:控制依賴邊和數(shù)據(jù)依賴邊。SDG是在控制流圖、數(shù)據(jù)流圖、控制依賴子圖、數(shù)據(jù)依賴子圖、過程依賴子圖和程序依賴圖的基礎(chǔ)上建立的一種語法分析樹,如圖1所示。
面向?qū)ο笠蕾噲DOOSDG(Obiect-Orientecl System Depen-dence Graph)是過程依賴子圖、類依賴子圖、類層次子圖、控制依賴子圖、數(shù)據(jù)依賴子圖和虛函數(shù)調(diào)用子圖幾種表示方法的并集.如圖2所示。
1 引言
程序切片是軟件工程領(lǐng)域的一項程序分析技術(shù),在軟件測試、度量、程序調(diào)試、維護(hù)以及逆向工程等方面有著廣泛應(yīng)用。通過切片技術(shù),人們在程序分析過程中可以重點關(guān)注那些感興趣的代碼或者變量。
2 程序切片技術(shù)
這里利用面向對象程序切片技術(shù)進(jìn)行軟件度量。程序切片主要包括:
(1)語句切片該傳統(tǒng)的程序切片技術(shù)是一種條件切片,根據(jù)程序的順序、循環(huán)和選擇結(jié)構(gòu)進(jìn)行程序切片。
(2)無定型程序切片 其不僅在保存一個程序語義投影的同時簡化了程序,還可以使用任何簡化的轉(zhuǎn)換。而這些轉(zhuǎn)換保留了該語義映射。
(3)面向對象切片 把切片技術(shù)應(yīng)用于面向對象的系統(tǒng)相關(guān)圖和過程相關(guān)圖中,使對面向?qū)ο蟪绦虻拇a理解、測試、調(diào)試、逆向工程和度量分析變得相對容易嘲。
3 面向?qū)ο蟪绦蚯衅夹g(shù)
程序切片技術(shù)分面向過程和面向?qū)ο蟪绦蚯衅?。目前程序切片大都以系統(tǒng)依賴圖為基礎(chǔ),利用圖的可達(dá)性算法獲得。
3.1 SDG和OOSDG
系統(tǒng)依賴圖SDG(System Dependence Graph)用一組邊和頂點的集合表示一個程序。頂點表示程序的語句和控制謂詞,邊則表示語句之間的依賴關(guān)系。在SDG中有兩類邊:控制依賴邊和數(shù)據(jù)依賴邊。SDG是在控制流圖、數(shù)據(jù)流圖、控制依賴子圖、數(shù)據(jù)依賴子圖、過程依賴子圖和程序依賴圖的基礎(chǔ)上建立的一種語法分析樹,如圖1所示。
面向?qū)ο笠蕾噲DOOSDG(Obiect-Orientecl System Depen-dence Graph)是過程依賴子圖、類依賴子圖、類層次子圖、控制依賴子圖、數(shù)據(jù)依賴子圖和虛函數(shù)調(diào)用子圖幾種表示方法的并集.如圖2所示。
評論