Subject-oriented programming: a critique of pure objects
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Object-oriented metrics that predict maintainability
Journal of Systems and Software - Special issue on object-oriented software
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Software reuse: metrics and models
ACM Computing Surveys (CSUR)
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
Separating features in source code: an exploratory study
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Fundamentals of Software Engineering
Fundamentals of Software Engineering
Design pattern implementation in Java and aspectJ
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 2nd international conference on Aspect-oriented software development
Proceedings of the 2nd international conference on Aspect-oriented software development
AspectJ in Action: Practical Aspect-Oriented Programming
AspectJ in Action: Practical Aspect-Oriented Programming
Theme: An Approach for Aspect-Oriented Analysis and Design
Proceedings of the 26th International Conference on Software Engineering
Summarization of dynamic content in web collections
PKDD '04 Proceedings of the 8th European Conference on Principles and Practice of Knowledge Discovery in Databases
Towards a catalog of aspect-oriented refactorings
Proceedings of the 4th international conference on Aspect-oriented software development
Aspect-oriented programming and modular reasoning
Proceedings of the 27th international conference on Software engineering
Using Pointcut Delta Analysis to Support Evolution of Aspect-Oriented Software
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
AspectJ Cookbook
Implementing a modular access control service to support application-specific policies in CaesarJ
AOMD '05 Proceedings of the 1st workshop on Aspect oriented middleware development
Modular Software Design with Crosscutting Interfaces
IEEE Software
Reusable aspect-oriented implementations of concurrency patterns and mechanisms
Proceedings of the 5th international conference on Aspect-oriented software development
AO challenge - implementing the ACID properties for transactional objects
Proceedings of the 5th international conference on Aspect-oriented software development
The paradoxical success of aspect-oriented programming
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
The elementary pointcut pattern
Proceedings of the 2nd workshop on Best practices in applying aspect-oriented software development
Bridging Java and AspectJ through explicit join points
Proceedings of the 5th international symposium on Principles and practice of programming in Java
A Case Study Implementing Features Using AspectJ
SPLC '07 Proceedings of the 11th International Software Product Line Conference
Edicts: implementing features with flexible binding times
Proceedings of the 7th international conference on Aspect-oriented software development
Towards reusable components with aspects: an empirical study on modularity and obliviousness
Proceedings of the 30th international conference on Software engineering
Ptolemy: A Language with Quantified, Typed Events
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
A domain-specific middleware layer using AOSD: next-generation digital news publishing
Proceedings of the ACM/IFIP/USENIX Middleware '08 Conference Companion
Domain-driven discovery of stable abstractions for pointcut interfaces
Proceedings of the 8th ACM international conference on Aspect-oriented software development
Semantic vs. syntactic compositions in aspect-oriented requirements engineering: an empirical study
Proceedings of the 8th ACM international conference on Aspect-oriented software development
AspectOptima: A Case Study on Aspect Dependencies and Interactions
Transactions on Aspect-Oriented Software Development V
Open modules: modular reasoning about advice
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Separation of concerns with procedures, annotations, advice and pointcuts
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Transactions on Aspect-Oriented Software Development I
Towards a catalogue of refactorings and code smells for aspectj
Transactions on Aspect-Oriented Software Development I
Managing the evolution of aspect-oriented software with model-based pointcuts
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Improving extensibility of object-oriented frameworks with aspect-oriented programming
ICSR'06 Proceedings of the 9th international conference on Reuse of Off-the-Shelf Components
On the impact of aspectual decompositions on design stability: an empirical study
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
MAO: ownership and effects for more effective reasoning about aspects
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
A sequence of patterns for reusable aspect libraries with easy configuration
SC'11 Proceedings of the 10th international conference on Software composition
Hi-index | 0.00 |
A key direction for achieving mainstream adoption of aspect-oriented (AO) programming is the availability of reusable aspect libraries that can be easily applied across a wide range of applications. This paper presents a pattern system for AO design that provides solutions for recurring problems in the design of such reusable aspect libraries. We have focused on libraries using AspectJ. The requirements for setting up reusable aspect libraries are first sketched. Subsequently, an architectural pattern and four design patterns addressing key design problems are identified: managing aspect-awareness, enabling join point abstraction and adaptation, decomposition, and mediation. Each design pattern leads to a set of programming idioms to address the related design problem. The pattern system aggregates the four sets of idioms that include a specific section to guide selection of a specific idiom. The implementation of an aspect library for access control is discussed to illustrate how the system of patterns can be used and how the different patterns and idioms can be combined. The format of the pattern catalogs is based on pattern writing advice provided by the Hillside group. We have analyzed and integrated related work in design patterns for aspects. Furthermore, we present an initial validation of the patterns with respect to their stability, versatility, and ease-of-use. To the best of our knowledge, this is the first comprehensive system of AOP patterns that supports the construction of aspect libraries.