关键词:
Java
软件调试
程序切片
程序谱
故障定位
摘要:
在现今的软件架构中,分布式已经成为一个核心概念。Java平台因为其分布式、良好的API和产品支持等特点,成为了分布式的核心角色。同时,Java语言安全、健壮、简单、可移植,已成为目前最流行的面向对象程序设计语言,但也是因为Java语言的面向对象特性,其在进行程序切片时存在许多问题。在软件开发和维护过程中,程序员需要不断地调试程序。故障定位是软件调试活动中最困难、最耗时的任务之一,迫切需要自动化或半自动化技术提高故障定位的效率,以避免冗长繁琐的维护工作,减少开发和运营成本。基于程序切片的程序错误定位技术和基于程序谱的程序故障定位技术,是目前故障定位技术研究领域中比较热门的两个方向,但由于各自存在的缺点,其故障定位的效率都不高。本文首先通过对程序切片技术的发展成果进行总结和分析,并在其基础上提出了分布式Java动态切片的构建算法;然后通过分析目前主流程序故障定位技术的优缺点,结合程序切片技术和程序谱技术,提出了基于程序切片谱的程序故障定位技术;最后在上述理论研究的基础上实现了程序切片系统与故障定位应用,并通过实验与分析,验证了基于程序切片谱的程序故障定位技术的有效性。本文的主要工作有:(1)研究了程序切片技术的发展,并在其基础上提出了分布式Java程序依赖图构建算法、分布式Java程序切片构建算法;(2)研究了程序故障定位技术的发展,通过分析基于程序谱的程序故障定位技术和基于程序切片的程序故障定位技术的优点与不足,结合两种技术,提出了基于程序切片谱的程序故障定位技术ESFL;(3)在上述理论研究的支撑下,实现了程序切片系统和程序故障定位应用;(4)在程序切片系统和程序故障定位应用的支持下,通过实验与分析,验证了分布式Java程序切片算法的正确性与基于程序切片谱的程序故障定位技术的有效性。