论文部分内容阅读
Java虚拟机是影响Java程序设计语言的有效实现和关键软件系统之一。由于其运行过程比较封闭和抽象,极大地影响了Java程序的调试效率和成本,使得Java程序员不能直观地动态观察和分析程序的运行流程以及对象之间的逻辑关系,所以产生了将其与可视化技术结合起来,研发Java可视虚拟机的需求。 本文在分析现有Java虚拟机实现方案与可视化技术发展现状的基础上,提出了研制一个Java可视虚拟机JVVM的设计方案,并作为一个关键部分集成在Java可视集成开发环境AnyviewJ中。JVVM利用Java语言本身的特点解决了Java API的调用、对象创建等技术难点。 JVVM能够将Javac编译器所生成的Java Class文件正确装载并运行。在程序运行过程中,JVVM能够对程序运行过程中的各线程状态进行可视化监控,并且对堆、线程内的方法栈和操作数栈等内存区域的变化情况直观地表示出来。与此同时,JVVM还提供了基本的可视化Debug功能,能够单步、断点和连续执行Java程序,使用户能够动态观察和分析程序的执行流程。 在JVVM基础上实现了程序的可视化白盒测试。在程序运行过程中,JVVM能够识别程序中使用到的各种变量,并能够监控程序的运行状态。在该模块中,首先进行受测程序的结构分析,并且使用“广义表”数据结构来表示。基于广义表能够将程序结构采用流程图的方式表示出来。生成程序的测试路径和测试用例后,该模块能够在流程图中同步演示测试路径的执行过程,比较执行结果,完成白盒测试的基本流程。 在JVVM基础上还实现了典型对象关系的可视化。对象关系的可视化能够帮助程序员直接观察数据之间的动态关系,提高调试效率。首先采用索引数组将对象按类别组织起来,然后匹配现有的对象关系模式或者根据用户指定的对象关系模式,采用图形绘制方式表达对象关系。在程序的执行过程中,还能够根据程序执行情况对对象关系进行同步更新显示,方便程序的调试。 本文的内容组织如下:第一章介绍可视化编程技术的背景与现状,以及现有的集成开发环境在程序调试方面的特点,并介绍了本课题的主要内容;第二章分析Java虚拟机的结构模型和关键技术,并且分析了实以一些现有的JVM的实现方案;第三章介绍AnyviewJ中最重要的执行引擎模块的设计与实现,具体