摘要 | 第4-6页 |
Abstract | 第6-7页 |
1 绪论 | 第15-25页 |
1.1 软件无处不在 | 第16-17页 |
1.2 动态软件更新技术 | 第17-19页 |
1.3 研究现状概述 | 第19-21页 |
1.4 本文工作和贡献 | 第21-22页 |
1.5 论文组织 | 第22-25页 |
2 相关工作 | 第25-41页 |
2.1 动态软件更新 | 第26-34页 |
2.1.1 程序动态更新 | 第26-28页 |
2.1.2 Java程序动态更新 | 第28-30页 |
2.1.3 其他动态软件更新 | 第30-32页 |
2.1.4 自动对象状态转换 | 第32-33页 |
2.1.5 动态软件更新系统在工业界的应用现状 | 第33-34页 |
2.2 程序分析和理解 | 第34-37页 |
2.2.1 执行索引 | 第34页 |
2.2.2 堆区对象分析 | 第34-35页 |
2.2.3 程序切片 | 第35页 |
2.2.4 程序合并 | 第35-36页 |
2.2.5 程序合成 | 第36页 |
2.2.6 执行合成 | 第36-37页 |
2.2.7 逆向执行 | 第37页 |
2.3 自动错误恢复 | 第37-39页 |
2.3.1 错误和异常处理 | 第37-38页 |
2.3.2 自动错误恢复 | 第38-39页 |
2.3.3 自动程序修复 | 第39页 |
2.4 小结 | 第39-41页 |
3 基于Java虚拟机的动态软件更新技术需求与系统框架 | 第41-55页 |
3.1 技术难点 | 第42-43页 |
3.2 技术需求 | 第43-51页 |
3.2.1 安全性 | 第45-46页 |
3.2.2 灵活性和及时性 | 第46-47页 |
3.2.3 运行时额外开销 | 第47-48页 |
3.2.4 中断时间 | 第48-49页 |
3.2.5 易用性 | 第49-50页 |
3.2.6 可靠性 | 第50页 |
3.2.7 适用性 | 第50-51页 |
3.3 既有工作不足 | 第51-52页 |
3.4 思路和进展 | 第52-53页 |
3.5 小结 | 第53-55页 |
4 基于类型分析的高效延时程序动态更新 | 第55-81页 |
4.1 问题描述和解决思路 | 第56-59页 |
4.2 动态更新和类型安全 | 第59-66页 |
4.2.1 Java程序设计语言的类型安全 | 第59-61页 |
4.2.2 更新程序样例 | 第61-63页 |
4.2.3 动态软件更新中的类型不安全 | 第63-65页 |
4.2.4 类型安全的即时更新 | 第65-66页 |
4.2.5 类型安全的延时更新 | 第66页 |
4.3 高效的延时更新检查 | 第66-73页 |
4.3.1 多版本类型层次分析 | 第66-69页 |
4.3.2 消除不必要的显式类型检查 | 第69-71页 |
4.3.3 实现隐式类型检查 | 第71-73页 |
4.4 高效的间接访问 | 第73-80页 |
4.4.1 间接访问 | 第73-75页 |
4.4.2 Java虚拟机中的对象模型 | 第75-76页 |
4.4.3 混合对象模型 | 第76-77页 |
4.4.4 合并混合对象 | 第77-80页 |
4.5 小结 | 第80-81页 |
5 基于程序和执行合成的自动对象状态转换 | 第81-109页 |
5.1 问题描述和解决思路 | 第82-89页 |
5.1.1 对象及对象状态 | 第82-84页 |
5.1.2 既有工作的不足 | 第84-85页 |
5.1.3 对象状态和方法执行历史 | 第85-89页 |
5.2 技术概况 | 第89-93页 |
5.3 符号执行 | 第93-101页 |
5.3.1 概况 | 第93-96页 |
5.3.2 语义定义 | 第96-101页 |
5.3.3 符号值图 | 第101页 |
5.4 逆方法合成 | 第101-105页 |
5.5 方法历史合成 | 第105-107页 |
5.5.1 逆方法执行模型 | 第105页 |
5.5.2 搜索策略 | 第105-106页 |
5.5.3 循环和递归 | 第106-107页 |
5.6 自动对象 | 第107页 |
5.7 小结 | 第107-109页 |
6 基于错误处理器合成的自动错误恢复 | 第109-125页 |
6.1 问题描述和解决思路 | 第110-112页 |
6.2 Java程序的错误处理 | 第112-116页 |
6.2.1 Java程序设计语言的异常处理机制 | 第112-113页 |
6.2.2 Java虚拟机的异常机制实现 | 第113页 |
6.2.3 异常类型层级 | 第113-114页 |
6.2.4 基本异常处理器 | 第114-116页 |
6.3 错误处理器合成 | 第116-120页 |
6.3.1 识别需要恢复的错误 | 第116页 |
6.3.2 错误转换 | 第116-119页 |
6.3.3 提早返回 | 第119-120页 |
6.4 错误处理器测试 | 第120-124页 |
6.4.1 创建测试沙盒 | 第120-122页 |
6.4.2 测试错误处理器 | 第122-124页 |
6.5 小结 | 第124-125页 |
7 系统实现与实验评估 | 第125-147页 |
7.1 系统实现 | 第125-134页 |
7.1.1 系统实现框架 | 第125-127页 |
7.1.2 动态软件更新补丁 | 第127-129页 |
7.1.3 延时动态更新核心模块 | 第129-132页 |
7.1.4 自动对象状态转换模块 | 第132-133页 |
7.1.5 自动错误恢复模块 | 第133-134页 |
7.2 系统评估 | 第134-144页 |
7.2.1 更新时中断时间和运行时额外开销 | 第135-138页 |
7.2.2 自动对象状态转换 | 第138-141页 |
7.2.3 自动错误恢复 | 第141-144页 |
7.3 小结 | 第144-147页 |
8 总结和展望 | 第147-151页 |
8.1 工作总结 | 第147-148页 |
8.2 研究展望 | 第148-151页 |
参考文献 | 第151-167页 |
简历与科研成果 | 第167-169页 |
致谢 | 第169-171页 |