Towards Detection of Semantic Conflicts between Crosscutting Concerns

Aspect-oriented programming introduces new composition operators that offer enhanced capabilities for constructing well-modularized programs. One of its cornerstones is the introduction of 'reverse' dependency relations; instead of explicitly 'importing' composed behavior (as is e.g. the case with inheritance), the composed behavior is 'exported'. These reverse composition relations are more error-prone than conventional composition relations, in particular when multiple composition relations affect the same part of the program.