基于JPF的软件模型检测分析与应用
摘要 | 第1-4页 |
ABSTRACT | 第4-9页 |
第1章 引言 | 第9-13页 |
·课题背景 | 第9-10页 |
·相关技术简介 | 第10-12页 |
·形式化验证方法 | 第10页 |
·JPF | 第10-12页 |
·本文的主要内容 | 第12-13页 |
第2章 基本理论 | 第13-25页 |
·模型检测 | 第13-16页 |
·模型检测过程 | 第13-14页 |
·模型表示 | 第14-15页 |
·性质描述和 LTL逻辑 | 第15页 |
·模型检测算法 | 第15-16页 |
·软件模型检测 | 第16-21页 |
·谓词抽象 | 第16-18页 |
·反例引导的抽象求精 | 第18-19页 |
·面向源代码的软件模型检测 | 第19-21页 |
·软件模型检测工具 | 第21页 |
·Java模型检测 | 第21-24页 |
·Java程序特点 | 第22-23页 |
·状态爆炸可行性解决方案 | 第23-24页 |
·小结 | 第24-25页 |
第3章 基于 JPF的Java程序验证 | 第25-35页 |
·JPF工作原理 | 第25-27页 |
·JPF体系结构 | 第27-29页 |
·JPF的关键技术 | 第29-34页 |
·显式状态与回溯 | 第29页 |
·减少状态数目策略 | 第29-30页 |
·偏序规约与对称规约 | 第30-32页 |
·内核扩展、状态匹配与运行路径配置 | 第32-33页 |
·符号执行 | 第33-34页 |
·小结 | 第34-35页 |
第4章 软件模型检测工具设计策略 | 第35-51页 |
·通用内核组成 | 第35-40页 |
·状态管理 | 第35-38页 |
·搜索策略 | 第38页 |
·环境模拟 | 第38-40页 |
·系统子功能 | 第40-47页 |
·对象工厂 | 第40-42页 |
·程序模型接口 | 第42-43页 |
·监听器 | 第43-46页 |
·报告系统 | 第46-47页 |
·系统交互 | 第47-50页 |
·代码标注 | 第48页 |
·开放验证 API | 第48-50页 |
·小结 | 第50-51页 |
第5章 Java程序模型检测平台开发 | 第51-62页 |
·JPF功能扩展方式 | 第51-52页 |
·静态配置 | 第51-52页 |
·动态配置 | 第52页 |
·平台设计与实现 | 第52-60页 |
·OSGI | 第53-54页 |
·Eclipse插件开发 | 第54-56页 |
·基于JPF的 Eclipse模型检测平台实现 | 第56-60页 |
·自定义轻量级错误轨迹监听器 | 第60-61页 |
·小结 | 第61-62页 |
第6章 平台应用实例 | 第62-70页 |
·并行相关 | 第62-65页 |
·死锁 | 第62-63页 |
·数据竞争 | 第63-65页 |
·未处理异常 | 第65-66页 |
·其他 | 第66-69页 |
·随机数问题 | 第66-68页 |
·哲学家进餐问题 | 第68-69页 |
·小结 | 第69-70页 |
第7章 结论与展望 | 第70-73页 |
·结论 | 第70-72页 |
·进一步工作的方向 | 第72-73页 |
致谢 | 第73-74页 |
参考文献 | 第74-77页 |
附录 A 程序配置文件 | 第77-79页 |
攻读学位期间的研究成果 | 第79页 |