摘要 | 第5-6页 |
Abstract | 第6页 |
缩略表 | 第7-10页 |
第一章 引言 | 第10-14页 |
1.1 选题依据 | 第10页 |
1.2 国内外研究现状 | 第10-12页 |
1.3 研究内容 | 第12-13页 |
1.4 本文组织结构 | 第13-14页 |
第二章 基于Java Monitor的并发程序可达性测试 | 第14-24页 |
2.1 Java线程实现 | 第14-15页 |
2.2 Java Monitor | 第15页 |
2.3 并发错误与并发变体 | 第15-17页 |
2.4 可达性测试方法 | 第17-22页 |
2.4.1 Java并发程序模型 | 第17-19页 |
2.4.2 竞争分析及竞争变体计算 | 第19-21页 |
2.4.3 可达性测试过程 | 第21-22页 |
2.5 基于拆分策略的可达性测试 | 第22-24页 |
第三章 基于锁对象拆分策略的可达性测试 | 第24-34页 |
3.1 问题分析 | 第24-26页 |
3.2 锁对象选取 | 第26-28页 |
3.3 锁对象拆分策略 | 第28-31页 |
3.3.1 共享变量的识别 | 第28-30页 |
3.3.2 拆分策略 | 第30-31页 |
3.4 基于锁对象拆分策略的可达性测试算法 | 第31-34页 |
第四章 工具设计与实现 | 第34-42页 |
4.1 工具框架 | 第34页 |
4.2 工具实现 | 第34-40页 |
4.2.1 可达性测试模块 | 第35-37页 |
4.2.2 共享变量识别模块 | 第37页 |
4.2.3 问题方法识别模块 | 第37-38页 |
4.2.4 拆分点模块 | 第38-39页 |
4.2.5 控制器模块 | 第39-40页 |
4.3 工具执行 | 第40-42页 |
第五章 实验分析 | 第42-53页 |
5.1 研究问题 | 第42页 |
5.2 实验环境与实验对象 | 第42-43页 |
5.3 实验结果及分析 | 第43-48页 |
5.3.1 探测两种变体类同步错误(RQ1) | 第43-45页 |
5.3.2 运行时间及同步序列(RQ2) | 第45-46页 |
5.3.3 拆分方法数(RQ3) | 第46-47页 |
5.3.4 方法内拆分点排序(RQ4) | 第47-48页 |
5.4 POOL实例研究(RQ5) | 第48-51页 |
5.4.1 pool实例简介 | 第48-49页 |
5.4.2 pool同步方法描述及变体生成 | 第49-50页 |
5.4.3 实验结果及分析 | 第50-51页 |
5.5 相关工作 | 第51-53页 |
第六章 总结与展望 | 第53-55页 |
6.1 本文工作总结 | 第53页 |
6.2 未来工作展望 | 第53-55页 |
致谢 | 第55-56页 |
参考文献 | 第56-58页 |