首页> 中文学位 >面向Java程序错误定位的动态切片技术的研究与应用
【6h】

面向Java程序错误定位的动态切片技术的研究与应用

代理获取

目录

文摘

英文文摘

论文说明:图表目录

第1章 绪论

1.1 课题背景

1.1.1 程序切片技术的发展历程

1.1.2 程序切片技术的应用

1.2 Java程序切片研究现状

1.2.1 国内外研究现状

1.2.2 目前研究中存在的问题

1.3 本文研究目标及内容

1.4 本文的组织结构

第2章 动态切片技术概述

2.1 动态切片的基本概念

2.1.1 执行记录

2.1.2 动态切片准则

2.2 动态切片的分类

2.3 动态切片相关研究

2.3.1 过程型程序动态切片方法介绍

2.3.2 Java程序动态切片介绍

2.4 本文方法概述

2.5 本章小结

第3章 Java系统依赖图

3.1 Java程序面向对象特性

3.2 JSDG的基本语法语义

3.3 JSDG的构造过程

3.3.1 语句

3.3.2 方法依赖图

3.3.3 类依赖图

3.3.4 接口依赖图

3.4 本章小结

第4章 程序动态切片技术研究

4.1 目前Java程序动态切片中存在的问题

4.2 方法执行路径的收集

4.2.1 程序插桩技术概述

4.2.2 Java字节码插桩技术

4.3 提取动态执行信息

4.4 动态系统依赖图

4.4.1 动态系统依赖图的构造步骤

4.4.2 动态类依赖图

4.4.3 动态方法调用图

4.4.4 动态方法依赖子图

4.4.5 方法依赖关系库

4.4.6 动态方法依赖图

4.5 切片算法

4.6 切片精度评估

4.7 效率评估

4.8 在程序错误定位中的应用

4.9 本章小结

第5章 Java程序动态切片系统设计

5.1 开发环境

5.1.1 AspectJ介绍

5.1.2 JavaCC介绍

5.2 系统的设计思想

5.3 系统总体结构

5.3.1 系统框架

5.3.2 功能模块

5.4 系统主要数据结构

5.5 本章小结

结论

参考文献

致谢

附录A 攻读学位期间所发表的学术论文目录

展开▼

摘要

Java语言是一门简单的、面向对象的、健壮安全的、分布式的、结构中立、可移植性强、高效能、支持多线程的、动态的程序设计语言。Java的卓越特性使得它在各个领域获得了广泛的应用。同时,随着计算机软件技术的发展,Java软件系统的规模也逐渐扩大,如何高效地对大规模的Java软件系统进行软件测试、程序理解、调试、维护等问题受到研究者们的广泛关注。
   程序切片作为一种分解程序的程序分析技术,在程序理解、程序分析、调试、软件测试、软件维护诸多领域发挥着不可低估的作用。程序切片技术可分为静态切片和动态切片两种,动态切片需要跟踪程序的执行,而Java程序中的一些无法在编译期间确定的信息可以在执行时确定,因此,动态切片的结果会比静态切片的更加精确,但其存在执行代价高的问题,特别是在计算大型软件系统的动态切片过程中。
   目前有关Java程序的动态切片技术的研究较少,本文针对动态切片系统开销大的问题,提出了一种基于方法执行路径的计算Java程序动态切片的方法。该方法跟踪程序方法的执行,利用程序动态执行信息和静态信息建立动态系统依赖图,并在动态系统依赖图上采用两步图可达性算法获得动态切片。然后,本文从理论和实验两个方面对本方法的切片精度和系统开销进行了评估,充分证明了本方法有效地提高了Java程序动态切片的效率。此外,本文还结合实际应用,将本文提出的Java程序动态切片方法应用于程序错误定位的研究当中。最后,为本文提出的动态切片方法设计了原型系统(J_Dslice):该原型系统运用AOP(面向切面的编程思想)具体实现之一的AspectJ对Java字节码进行插桩,收集程序方法的执行信息;采用JavaCC工具和JTB工具分别生成Java源程序的抽象语法树(AST)和遍历语法树,进而提取程序静态信息;并设计和定义了一系列功能模块用于构造动态系统依赖图、计算动态切片及错误定位。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号