Skip to Main Content
Aspects avoid tangled solutions for crosscutting design concerns. Unfortunately there are various reasons why it may be hard to use an aspect language or aspect composition framework as a solution, even though developers are faced with crosscutting design concerns or tangled code structures. For instance, certain limitations of specific aspect composition frameworks might hinder the use of aspects. Or because of particular project requirements, such as constraints for the programming language or limitations of performance and memory, developers are not able to use an existing aspect composition framework. In such cases, developers would benefit from better understanding existing aspect composition frameworks. This would help developers to customise existing techniques or implement (simple) aspect composition frameworks from scratch. For these purposes, a pattern language is presented in the paper for tracing and manipulating software structures and dependencies, with an explanation of different, existing aspect composition frameworks as sequences through this pattern language. Alternative designs, common design tradeoffs, and design decisions for implementing aspect composition frameworks, are also evaluated.