发明名称 一种Java异常传播的静态结构抽取方法
摘要 本发明公开了一种Java异常传播的静态结构抽取方法,该方法以异常类型层次关系为依据,以方法调用关系为基础,结合Java异常传播过程中存在的异常抛出和捕获关系,从而能够较为完整地对Java异常传播的静态结构进行抽取。为了克服复杂的层次结构对异常传播的结构抽取带来的困境,本方法将系统异常类型与用户自定义异常类型进行融合,构建相对完整的异常类型层次结构树;在方法调用依赖图的基础上,通过异常抛出和捕获关系与异常类型层次结构树相关联,构建软件扩展依赖图。通过以异常类型捕获点为异常传播结构搜索起始点,采用以深度优先搜索算法为基础、异常类型层次树为依据的抽取算法,完成对Java异常传播结构的抽取。
申请公布号 CN102521117A 申请公布日期 2012.06.27
申请号 CN201110334592.7 申请日期 2011.10.27
申请人 北京航空航天大学 发明人 张莉;邱翔;连小利
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 北京永创新实专利事务所 11121 代理人 李有浩
主权项 一种Java异常传播的静态结构抽取方法,其特征在于该方法通过如下三个阶段实现:第一阶段:利用开源分析软件DependceFinder和开源分析软件ASM对jar包进行预处理;首先对待分析的jar包进行预处理,抽取类中的方法元素及其之间的调用关系,构建软件依赖图;其次,依据jar包中的自定义异常层次结构和用户自定义异常层次结构对异常传播结构完整性和正确性的影响,构建异常层次结构树;第二阶段:扩充所述jar包中方法之间的调用依赖关系,通过异常传播相关的抛出关系和捕获关系与第一阶段中的异常层次结构树相关联,构建软件扩展依赖图;第三阶段:采用自顶向下分析法对所述jar包中的每个方法中的异常捕获点,即Java异常处理的catch块为搜索起点,按照捕获异常类型的传播途径,寻找异常抛出源点,从而完成异常传播结构的抽取。
地址 100191 北京市海淀区学院路37号