首页> 中文学位 >Java程序维护中基于别名分析的错误诊断技术与工具
【6h】

Java程序维护中基于别名分析的错误诊断技术与工具

代理获取

目录

文摘

英文文摘

声明

第一章绪论

1.1研究背景

1.2国内外研究现状

1.3研究问题

1.4论文工作及组织结构

第二章基于别名分析的Java程序错误诊断技术

2.1软件维护

2.1.1软件维护的定义与分类

2.1.2程序维护中的纠错性维护

2.2别名分析技术

2.2.1 Java中别名关系的表示

2.2.2别名分析方法

2.2.3别名分析中的数据结构

2.3本章小结

第三章面向错误诊断的别名分析相关分析与设计

3.1面向对象程序中别名引起的问题

3.2面向对象程序Java中的别名分析问题

3.3别名分析步骤

3.4对象类型表

3.5类内别名分析方法

3.5.1带异常结构的控制流分析

3.5.2流敏感的别名分析

3.5.3别名关系图分析

3.6基于需求的类间别名分析方法

3.6.1实例成员访问分析与计算

3.6.2类间别名计算分析

3.7本章小结

第四章基于Eclipse的Java程序错误诊断工具实现

4.1别名分析工具简介

4.2抽象语法树

4.3程序静态信息的提取

4.3.1静态信息的数据结构

4.3.2变量和方法调用信息的获取

4.3.3定值和引用信息的获取

4.4方法调用图构造

4.5类内方法的别名信息处理

4.6方法内别名信息获取

4.6.1赋值语句的别名分析处理

4.6.2含初始化的指针别名声明语句的处理

4.6.3别名关系的消除与合并

4.6.4各种控制流语句的处理

4.6.5方法内别名信息的存储处理

4.7方法间的别名信息获取

4.7.1指针别名信息从调用点向被调用函数的传播

4.7.2方法调用点后指针别名信息的获取

4.8别名关系图构造

4.9基于需求的别名信息获取

4.10实验检验与分析

4.10.1实验代码选择

4.10.2实验结果与分析

4.11本章小结

第五章结束语

5.1本文工作总结

5.2进一步研究方向

致谢

参考文献

作者在读期间的研究成果

展开▼

摘要

在纠错性软件维护中,相当大一部分错误是由于程序对别名表达式指向的对象进行了误操作而引发的。因此,针对别名引发的软件错误,本文讨论了基于别名分析的错误诊断技术,以及基于别名分析的错误诊断工具的设计与实现。 别名分析是在程序运行过程中,提取可能指向同一内存地址的表达式集合的一种技术,对程序分析起着十分重要的作用。在实际软件维护支撑工具中,主要关心的问题是分析的时间复杂度和分析结果是否可以有效地重用。因此,根据软件维护的特殊要求,本文采用了分阶段、基于知识库与增量式的分析策略。以单个方法为模块构造其别名关系图、控制流图,当被分析程序的某个部分发生改变时,并不需要对整个程序重新进行一次分析,而只需对发生变化部分及其相关区域重新分析,将其分析后的结果对程序信息知识库中原有信息进行更新,其知识库信息采用XML文件进行描述存储。这种分析策略提高了分析结果的可重用性。整个分析策略通过两个具体分析阶段来实施,第一阶段主要进行类内别名分析,并将分析的结果作为程序信息的知识库,第二阶段基于程序信息知识库进行类间别名分析。在第一阶段分析中,主要分析类内每个方法的别名信息集,本文对传统的流敏感的跨方法别名分析方法进行适当的改造,应用于类内别名分析。另外,本文针对异常结构构造了包含异常结构的控制流图,这为含有异常结构程序的方法内别名分析提供了支持。第二阶段分析主要是类间别名分析。在此阶段中,根据软件运行中暴露出的具体错误,用户设置出相应的别名标准,然后基于知识库XML中存储的类内别名信息和程序的方法调用信息,使用本文设计的别名计算算法,计算出与别名标准相关的别名信息。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号