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