Skip to Main Content
One of the issues in software evolution is debugging. Debugging large and complex software systems evolved requires a lot of effort since it is very difficult to localize and identify faults. Therefore, reducing the effort of debugging process is an important step towards efficient software evolution. Program slicing, especially dynamic slicing, has been proposed to efficiently localize faults in a procedural program and an object-oriented program. Although several tools have been developed for Java programs, these are difficult to maintain because of the frequent revision of Java languages. Aspect-oriented programming (AOP) is a new technology for the separation of concerns in program development. Using AOP, modularizing crosscutting aspects of a system is possible. One useful application of AOP is for modularizing the collecting program's dynamic information for program analysis. Since the collection of dynamic information affects the over-all target program, this functionality is a typical crosscutting concern. We apply AOP to develop a program debugging tool using program slicing. First, we examine the application of AOP for collecting dynamic information from program execution and for calculating program slices. Next, we develop a program slicing system using AspectJ. Finally, we describe the benefits, usability, and cost effectiveness of a module of dynamic analysis based on AOP.