Abstract :
In recent years, Aspect Oriented Programming (AOP) has emerged as a promising model for modularizing large and complex programs, advancing towards wider acceptance for mainstream commercial development. The use of AOP techniques for developing commercial applications poses, however, a number of challenges - especially when such applications are composed of large numbers of binary components containing independently developed aspects. The interaction of such independently developed aspects with each other and with the rest of the system can lead to unexpected problems. First, aspects in binary distributions can be mistakenly treated as ordinary classes, thus ignoring their complex interaction with the rest of the system. Second, independently developed aspects might inadvertently make inappropriate assumptions about their application environment, thus creating unintended effects. This paper presents AspectJTamer, a tool for addressing these issues. First, AspectJTamer provides support for identifying aspects that are present in binary distributions and for documenting their specific interaction points, thus making explicit both their assumptions about, and their weaving scope within, an application. Second, AspectJTamer provides a mechanism to control the weaving scope of binary aspects in a flexible manner, thus offering supplemental constraints overriding the assumptions made by independently developed aspects.