论文部分内容阅读
程序切片是一种分析和理解程序的技术,通过分析程序语句之间的依赖性关系自动分解源程序。程序切片技术被广泛应用于程序理解、调试、维护、测试以及反向工程等。随着Web技术的不断发展,J2EE、.net等新的Web集成框架的出现,基于Web的应用系统的规模和复杂性也日益增加,使Web应用程序的可读性,可理解性受到很大影响。将切片方法运用到Web应用程序中,对改善其可读性、可理解性,降低Web应用程序的分析、测试和维护难度有很好的作用。
Web应用程序是基于Web,采用HTML、各类脚本、客户端、服务器端编程技术、组件技术等建立的一种应用程序形式。它不同于传统的程序语言(如,C,C++)构造的程序,因此一些传统的程序分析方法对其并不完全适用。本文在研究、讨论依赖性分析及程序切片原理的基础上,通过分析Web应用程序的语法和结构特点,给出了基于依赖分析的Web应用切片方法。
论文的主要工作包括:给出了Web应用程序页面中的和页面间的依赖关系的定义。其中页面中的依赖关系包括嵌入依赖、调用依赖、参数依赖、数据依赖以及控制依赖;而页面间的依赖关系则包括超链接依赖、action依赖、定位依赖、包含依赖、前向依赖、继承依赖、引用依赖及组件依赖;给出了表示Web应用程序的页面依赖图(PaDG)、结构依赖图(WAStrDG)及系统依赖图(WASDG)的定义以及Web应用切片及切片准则的定义。PaDG和WAStrDG是构建WASDG的基础,WASDG是计算Web切片重要的数据结构;通过引入Web应用程序的依赖图,提出了基于WAStrDG的前向切片算法、后向切片算法以及基于WASDG的后向切片算法。前者计算的是粗粒度切片,主要用于分析Web应用结构以获取更高层次的信息,后者计算的是细粒度切片,用于Web工程的各个领域,如,可降低测试难度,简化Web程序的理解;实现了一个针对JavaScript及JSP语言所构造的Web应用程序分析原型系统WASPS,该系统为Web应用程序的分析提供了软件平台,借此可获得PaDG,WAStrDG,WASDG以及Web应用切片。