  Aspect Oriented Modeling separates crosscutting concerns by defining Aspects
and composition mechanisms at the model level. Composition of multiple Aspects
will most likely result in more than one Aspect matching the same join points.
Consequently, Aspects do not always interact in a predictable manner when woven
together. Intended interaction among aspects is designed by the system
designer. Unintended interaction (or interference) must be automatically
managed. When the woven aspect demonstrates a behavior that is different than
its autonomous behavior, then this is a potential interference. Interference
has been recently reported in Aspect Oriented Software Development (AOSD) by
the industry. Leaving this problem unsolved may result in erratic software
behavior and will hinder the adaptation of AOSD by the industry. This
identified problem is similar to a phenomenon that exists in graph
transformation systems where multiple Graph Transformation rules share some
conflicting elements, it is referred to as Critical Pair Analysis and it
provides an algebraic-based mechanism to detect and analyze the interaction of
the rules. In this paper we propose a framework to detect unintended Aspect
interaction at the model level. The proposed framework transforms Aspects
modeled in UML State Diagram to Graph Transformation Rules, and then it applies
Critical Pair Analysis to detect unintended interactions among aspects. This
will enable developers to specify only the order of precedence for intended
interaction among aspects without the need to manually investigate unintended
interactions for the combinations of every Aspect to every other Aspect in the
system. The proposed interaction detection solution is automated, modular, and
independent of the base model; which adds the advantage of not having to
re-evaluate the interaction each time the base model changes.
