Mathematical logic for computer science
Mathematical logic for computer science
Arranging language features for more robust pattern-based crosscuts
Proceedings of the 2nd international conference on Aspect-oriented software development
Quantifying aspects in middleware platforms
Proceedings of the 2nd international conference on Aspect-oriented software development
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
AspectJ in Action: Practical Aspect-Oriented Programming
AspectJ in Action: Practical Aspect-Oriented Programming
Using Pointcut Delta Analysis to Support Evolution of Aspect-Oriented Software
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
APTE: automated pointcut testing for AspectJ programs
Proceedings of the 2nd workshop on Testing aspect-oriented programs
Efficient Mutant Generation for Mutation Testing of Pointcuts in Aspect-Oriented Programs
MUTATION '06 Proceedings of the Second Workshop on Mutation Analysis
Test-based pointcuts: a robust pointcut mechanism based on unit test cases for software evolution
Proceedings of the 3rd workshop on Linking aspect technology and evolution
Eclipse aspectj: aspect-oriented programming with aspectj and the eclipse aspectj development tools
Eclipse aspectj: aspect-oriented programming with aspectj and the eclipse aspectj development tools
A compilation and optimization model for aspect-oriented programs
CC'03 Proceedings of the 12th international conference on Compiler construction
Expressive pointcuts for increased modularity
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
A pointcut-based coverage analysis approach for aspect-oriented programs
Information Sciences: an International Journal
Aspect recommendation for evolving software
Proceedings of the 33rd International Conference on Software Engineering
Inference rules for generic code migration of aspect-oriented programs
Science of Computer Programming
Hi-index | 0.02 |
In this paper, we present algorithms that compute two kinds of information that can help AspectJ developers diagnose and fix potential problems with their pointcuts. First, we present an algorithm to compute almost matched joinpoints. Second, we present algorithms to compute explanations of why a pointcut does not match (or does match) a specific joinpoint. We implemented two tools using these algorithms. The first is an offline tool that analyzes a code base and produces a comprehensive report about the pointcuts in the code. Using this tool, we were able to find several real problems in existing, medium-sized AspectJ code bases. The second tool is an Eclipse plug-in called PointcutDoctor. PointcutDoctor is a natural extension of AJDT that provides developers easy access to the same information from within their already familiar development environment.