基于面向對象程序切片的軟件度量
1 引言
程序切片是軟件工程領域的一項程序分析技術,在軟件測試、度量、程序調試、維護以及逆向工程等方面有著廣泛應用。通過切片技術,人們在程序分析過程中可以重點關注那些感興趣的代碼或者變量。
2 程序切片技術
這里利用面向對象程序切片技術進行軟件度量。程序切片主要包括:
(1)語句切片該傳統(tǒng)的程序切片技術是一種條件切片,根據程序的順序、循環(huán)和選擇結構進行程序切片。
(2)無定型程序切片 其不僅在保存一個程序語義投影的同時簡化了程序,還可以使用任何簡化的轉換。而這些轉換保留了該語義映射。
(3)面向對象切片 把切片技術應用于面向對象的系統(tǒng)相關圖和過程相關圖中,使對面向對象程序的代碼理解、測試、調試、逆向工程和度量分析變得相對容易嘲。
3 面向對象程序切片技術
程序切片技術分面向過程和面向對象程序切片。目前程序切片大都以系統(tǒng)依賴圖為基礎,利用圖的可達性算法獲得。
3.1 SDG和OOSDG
系統(tǒng)依賴圖SDG(System Dependence Graph)用一組邊和頂點的集合表示一個程序。頂點表示程序的語句和控制謂詞,邊則表示語句之間的依賴關系。在SDG中有兩類邊:控制依賴邊和數據依賴邊。SDG是在控制流圖、數據流圖、控制依賴子圖、數據依賴子圖、過程依賴子圖和程序依賴圖的基礎上建立的一種語法分析樹,如圖1所示。
面向對象依賴圖OOSDG(Obiect-Orientecl System Depen-dence Graph)是過程依賴子圖、類依賴子圖、類層次子圖、控制依賴子圖、數據依賴子圖和虛函數調用子圖幾種表示方法的并集.如圖2所示。
評論