Change impact analysis for object-oriented programs evolved to aspect-oriented programs
Chien‐Hung Liu, Shu‐Ling Chen, Wei-Lun Jhu · 2011
When object-oriented programs evolve to aspect-oriented programs (AOP), the behavior of the evolved programs can become complex and hard to understand because the aspects woven into object-oriented programs can change the original behavior of the programs in an unintended way. To ensure that no additional errors are introduced by the aspects, it is critical to retest the evolved aspect-oriented programs. The testing efforts can be significantly reduced if only the parts of the object-oriented program affected by the changes are retested. In this paper we propose a method to analyze the possible change impacts caused by woven aspects. The types of changes introduced by aspects are identified and specified. The likely impacts caused by the changes are described and computed based on various dependency relations in object-oriented programs. In particular, the influences of pointcut declarations on the locations of changes and ripple effects are addressed. An example is presented to illustrate the usefulness of the proposed method.