Aspect interactions: a requirements engineering perspective

Tun, Thein; Yu, Yijun; Jackson, Michael; Laney, Robin and Nuseibeh, Bashar (2013). Aspect interactions: a requirements engineering perspective. In: Moreira, Ana; Chitchyan, Ruzanna; Araujo, João and Rashid, Awais eds. Aspect-Oriented Requirements Engineering. Heidelberg: Springer, pp. 271–286.



The principle of Separation of Concerns encourages developers to divide complex problems into simpler ones and solve them individually. Aspect-Oriented Programming (AOP) languages provide mechanisms to modularize concerns that affect several software components, by means of joinpoints, advice and aspect weaving. In a software system with multiple aspects, a joinpoint can often be matched with advice from several aspects, thus giving rise to emergent behaviours that may be unwanted. This issue is often known as the aspect interaction problem. AOP languages provide various composition operators: the precedence operator of AspectJ, for instance, instructs the aspect weaver about the ordering of aspects when advice from several of them match one joinpoint. This ordering of conflicting aspects is usually done at compile-time. This chapter discusses a type of problem where conflicting aspects need to be ordered according to runtime conditions. Extending previous work on Composition Frames, this chapter illustrates an AOP technique to compose aspects in a non-intrusive way so that precedence can be decided at runtime.

Viewing alternatives

Item Actions