1 导言
程序切片是软件工程范畴的一项程序剖析技能,在软件测验、衡量、程序调试、保护以及逆向工程等方面有着广泛应用。经过切片技能,人们在程序剖析进程中能够要点重视那些感兴趣的代码或许变量。
2 程序切片技能
这儿运用面向目标程序切片技能进行软件衡量。程序切片首要包含:
(1)句子切片该传统的程序切片技能是一种条件切片,依据程序的次序、循环和挑选结构进行程序切片。
(2)无定型程序切片 其不仅在保存一个程序语义投影的一起简化了程序,还能够运用任何简化的转化。而这些转化保留了该语义映射。
(3)面向目标切片 把切片技能应用于面向目标的体系相关图和进程相关图中,使对面向目标程序的代码了解、测验、调试、逆向工程和衡量剖析变得相对简单嘲。
3 面向目标程序切片技能
程序切片技能分面向进程和面向目标程序切片。现在程序切片大都以体系依靠图为根底,运用图的可达性算法取得。
3.1 SDG和OOSDG
体系依靠图SDG(System Dependence Graph)用一组边和极点的调集表明一个程序。极点表明程序的句子和操控谓词,边则表明句子之间的依靠联系。在SDG中有两类边:操控依靠边和数据依靠边。SDG是在操控流图、数据流图、操控依靠子图、数据依靠子图、进程依靠子图和程序依靠图的根底上树立的一种语法剖析树,如图1所示。
面向目标依靠图OOSDG(Obiect-Orientecl System Depen-dence Graph)是进程依靠子图、类依靠子图、类层次子图、操控依靠子图、数据依靠子图和虚函数调用子图几种表明办法的并集.如图2所示。