“…While many studies have explored the capabilities of aspect-oriented programming (AOP) [1] to improve the modularity, customization, and evolution of software [2,3,4,5,6,7,8], little is known on how AOP has been used. As AspectJ 1 is the most widely used AOP language, we want to know which AspectJ mechanisms are used, to what extent, and for what kinds of crosscutting concerns.…”