| 摘要 | 第1-4页 |
| Abstract | 第4-8页 |
| 第一章 绪论 | 第8-12页 |
| ·研究背景 | 第8-9页 |
| ·国内外研究现状 | 第9-10页 |
| ·研究问题 | 第10-11页 |
| ·论文工作及组织结构 | 第11-12页 |
| 第二章 基于别名分析的 Java 程序错误诊断技术 | 第12-21页 |
| ·软件维护 | 第12-14页 |
| ·软件维护的定义与分类 | 第12-13页 |
| ·程序维护中的纠错性维护 | 第13-14页 |
| ·别名分析技术 | 第14-20页 |
| ·Java中别名关系的表示 | 第14-16页 |
| ·别名分析方法 | 第16页 |
| ·别名分析中的数据结构 | 第16-20页 |
| ·控制流图 | 第17-18页 |
| ·方法调用图与方法依赖 | 第18-19页 |
| ·别名关系图和对象类型表 | 第19-20页 |
| ·本章小结 | 第20-21页 |
| 第三章 面向错误诊断的别名分析相关分析与设计 | 第21-39页 |
| ·面向对象程序中别名引起的问题 | 第21-23页 |
| ·面向对象程序 Java 中的别名分析问题 | 第23-24页 |
| ·别名分析步骤 | 第24-26页 |
| ·对象类型表 | 第26页 |
| ·类内别名分析方法 | 第26-35页 |
| ·带异常结构的控制流分析 | 第26-30页 |
| ·流敏感的别名分析 | 第30-33页 |
| ·别名信息传播规则分析 | 第30页 |
| ·方法内别名计算规则分析 | 第30-32页 |
| ·方法间别名计算规则与算法设计 | 第32-33页 |
| ·别名关系图分析 | 第33-35页 |
| ·基于需求的类间别名分析方法 | 第35-37页 |
| ·实例成员访问分析与计算 | 第35-36页 |
| ·类间别名计算分析 | 第36-37页 |
| ·本章小结 | 第37-39页 |
| 第四章 基于 Eclipse 的 Java 程序错误诊断工具实现 | 第39-62页 |
| ·别名分析工具简介 | 第39-40页 |
| ·抽象语法树 | 第40-41页 |
| ·程序静态信息的提取 | 第41-46页 |
| ·静态信息的数据结构 | 第42-43页 |
| ·变量和方法调用信息的获取 | 第43-45页 |
| ·定值和引用信息的获取 | 第45-46页 |
| ·方法调用图构造 | 第46-47页 |
| ·类内方法的别名信息处理 | 第47-48页 |
| ·方法内别名信息获取 | 第48-54页 |
| ·赋值语句的别名分析处理 | 第48-50页 |
| ·含初始化的指针别名声明语句的处理 | 第50页 |
| ·别名关系的消除与合并 | 第50-51页 |
| ·各种控制流语句的处理 | 第51-53页 |
| ·条件语句 | 第52页 |
| ·循环语句 | 第52页 |
| ·跳转语句 | 第52-53页 |
| ·异常处理结构 | 第53页 |
| ·方法内别名信息的存储处理 | 第53-54页 |
| ·方法间的别名信息获取 | 第54-56页 |
| ·指针别名信息从调用点向被调用函数的传播 | 第54-55页 |
| ·方法调用点后指针别名信息的获取 | 第55-56页 |
| ·别名关系图构造 | 第56-58页 |
| ·基于需求的别名信息获取 | 第58-59页 |
| ·实验检验与分析 | 第59-61页 |
| ·实验代码选择 | 第59-60页 |
| ·实验结果与分析 | 第60-61页 |
| ·本章小结 | 第61-62页 |
| 第五章 结束语 | 第62-64页 |
| ·本文工作总结 | 第62-63页 |
| ·进一步研究方向 | 第63-64页 |
| 致谢 | 第64-65页 |
| 参考文献 | 第65-68页 |
| 作者在读期间的研究成果 | 第68-69页 |