·上一文章:通过初级端调节满足充电器能效规范
·下一文章:LED应用的电源要求
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所示。