Tool support for understanding and diagnosing pointcut expressions
Lingdong Ye, Kris De Volder · 2008
Writing correct AspectJ pointcuts is hard. This is partly because of the complexity of the pointcut language and partly because it requires understanding how a pointcut matches across the entire code base. In this thesis, we present algorithms that compute two kinds of useful information that can help AspectJ developers diagnose and fix potential problems with their pointcuts. First, we present an algorithm to compute almost matched join points. Second we present algorithms to compute explanations of why a pointcut does not match (or does match) a specific join point. We implemented two tools using these algorithms. The first is an offline tool that analyzes a code base and produces a comprehensive report. Using this tool, we were able to find several real problems in existing, medium-sized AspectJ code bases. The second tool is an Eclipse plugin called PointcutDoctor. Pointcut-Doctor is a natural extension of AJDT, the mainstream IDE for AspectJ. It provides developers easy access to the same information from within their already familiar development environment. ii Table of Contents Abstract................................. ii