Font Size: a A A

The Research And Application On Dynamic Slicing Based On Fault Location Of Java Program

Posted on:2012-09-18Degree:MasterType:Thesis
Country:ChinaCandidate:X LiuFull Text:PDF
GTID:2248330395985308Subject:Software engineering
Abstract/Summary:PDF Full Text Request
Java is a simple, object-oriented, distributed, the interpretation of (Executive), robust, secure, platform-independent, portable, scalable, high-performance, multi-threading and dynamic programming language. So Java has abroad application in many areas. At the time, with the development of software and the software system size enlagrge gradually, how to test, understand, debug and maintain the large-scale Java software system receive researchers’attention widespreadly.Program slicing is a kind of program analysis technology, it has many applications in software engineering such as program understanding, debugging, maintenance, testing and reverseengineering. Slicing techniques are divided into categories:static and dynamic. Dynamic slicing need trace the program execution, and part information of Java program which can not be determine at complie time but can determine at runtime, so the dynamic slice is more precise then static one. However, dynamic one requires a lager mount of CPU time and memory space to obtain it, especially, in the process of computing the lager-scale software system dynamic slice.The research of dynamic slicing is lesser at present. This paper presents a Java program dynamic slicing based-on method execution trace which aim at the lager overhead of dynamic slicing. This approach traces program method execution, and builds dynamic system dependence graph by combining the dynamic execution information and program static information. And compute slice by two-pass graph reachability algorithm on the dynamic dependence graph. Then, this paper evaluates the slice precision and overhead of our dynamic slicing approach from theory and experiment, and our dynamic slicing approach enhance the efficiency of dynamic slice. Finally, we design a prototype system (J_Dslice) for our dynamic slicing approach. The prototype system uses AspectJ which is one of AOP (aspect-oriented programming) concrete applications to instrumentation the Java bytecode, and to collect method execution information; It uses JavaCC and JTB tools to create abstract syntax tree (AST) and to traverse AST and then performs the static information abstract from Java source programs. It also designs and defines a series of functional modules which used to create dynamic system dependence graph, to compute dynamic slicing and to fault location.
Keywords/Search Tags:Java Program, Dynamic Slicng, Method Execution Information, SystemDependence Graph, Program Instrumentation, Fault Location
PDF Full Text Request
Related items