Title:
|
A state-based join point model and language for AOP
|
To specify its intention clearly, a pointcut definition must specify the join point where to
adapt a crosscutting functionality and the applicability condition of the crosscutting
functionality (if any), and to realise modular abstraction of a crosscutting functionality an
advice must abstract only the crosscutting functionality. A state-dependent crosscutting
concern is an aspect whose applicability of its advice at a matched join point is statedependent,
and call graph-based AOP approaches are insufficient for a state-dependent
crosscutting concern because they do not allow specification of the state-dependent
applicability condition in the pointcut definition. Event-based AOP approaches expose
sequences of event executions as join points. Therefore, the state-dependent applicability
condition of an aspect's advice can be specified in a pointcut definition by stating the
sequence of event executions that brings the base program into the state when the advice
is applicable. However, this means the programmer must know the sequence of event
executions that brings the base program into the state. This thesis proposes a state-based
AOP approach that exposes state and state transition join points that allow a state-dependent
applicability condition to be clearly specified in the pointcut definition simply
by specifying the state or the state transition when the advice is applicable, as
implemented in the proof-of-concepts prototype language, TinyState.
|