A Theory of Aspects for Aspect-Oriented Software Development
Aspect-Oriented Software Development (AOSD) is an emerging area with the goal of promoting advanced separation of concerns throughout the software development lifecycle. However, since there are many different approaches to Aspect-Oriented Programming (AOP), it is very difficult to identify the essential concepts and properties for supporting the design of aspect-oriented languages and tools, and effectively promote advances in the field of AOSD. In this context, this paper presents a theory of aspects – a conceptual framework for AOP that provides consistent terminology and basic semantics for thinking about a problem in terms of the core concepts and properties that characterize the aspect-oriented style as an emerging paradigm to software development. This theory has been used for evaluating existing aspect-oriented languages and tools and, in special, it has been used to characterize aSide, an aspect-oriented modeling language.
M. Aksit, K. Wakita, J. Bosch, L. Bergmans, and A. Yonezawa. Abstracting Object Interactions Using Composition Filters. In R. Guerraoui, O. Nierstrasz, and M. Riveill, editors, Workshop on Object-Based Distributed Programming at ECOOP'93, pages 152-184. Springer-Verlag, 1993.
AspectJ project, 2003. http://www.eclipse.org/aspectj/.
L. Bergmans and M. Aksit. Composing Crosscutting Concerns Using Composition Filters. Communications of the ACM, 44(10):51-57, October 2001.
G. Booch. Object-Oriented Design with Applications. Benjamin-Cummings, 1991.
C. Chavez and C. Lucena. A Metamodel for Aspect-Oriented Modeling. In Workshop on Aspect-Oriented Modeling with the UML at AOSD'02, April 2002.
P. Chen. The Entity Relationship Model Towards a Unified View of Data. ACM Transactions on Database Systems, 1(1):9-36, March 1976.
Y. Coady, G. Kiczales, M. Feeley, and G. Smolyn. Using AspectC to Improve the Modularity of Path-specific Customization in Operating System Code. In Joint European Software Engineering Conference (ESEC) and 9th ACM SIGSOFT Int. Symp. on the Foundations of Software Engineering (FSE-9), 2001.
T. Elrad, R. E. Filman, and A. Bader. Aspect-Oriented Programming. Communications of the ACM, 44(10):29-32, October 2001.
R. Filman. What Is Aspect-Oriented Programming, Revisited. In Workshop on Advanced Separation of Concerns at ECOOP'01, June 2001.
R. Filman and D. Friedman. Aspect-Oriented Programming is Quantification and Obliviousness. In Int'l Workshop on Advanced Separation of Concerns at OOPSLA'00, 2000.
W. Harrison and H. Ossher. Subject-Oriented Programming (A Critique of Pure Objects). In 7th Conf. on Object-Oriented Programming, Systems, Languages and Applications (OOP-SLA93), pages 411-428, 1993.
Hyper/J Web Page, 2001. [link].
G. Kiczales. Aspect-Oriented Programming. ACM Computing Surveys, 28(4es):154, 1996.
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. Getting started with AspectJ. Communications of the ACM, 44(10):59-65, 2001.
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. Loingtier, and J. Irwin. Aspect-Oriented Programming. In M. Aksit and S. Matsuoka, editors, 11th Eur. Conf. on Object-Oriented Programming, volume 1241 of LNCS, pages 220-242. Springer-Verlag, 1997.
J. Lamping. The Role of Base in Aspect-oriented Programming. In Int'l Workshop on Aspect-Oriented Programming at ECOOP'99, 1999.
K. Lieberherr. Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns. PWS Publishing Company, Boston, 1996. ISBN 0-534-94602-X.
K. Lieberherr, D. Orleans, and J. Ovlinger. Aspect-Oriented Programming with Adaptive Methods. Communications of the ACM, 44(10):39-41, October 2001.
C. Lopes and G. Kiczales. D: A Language Framework for Distributed Programming. Technical Report SPL-97-010, Palo Alto Research Center, 1997.
H. Masuhara and G. Kiczales. A Framework for Modeling Aspect-Oriented Mechanisms, 2003. Revised version to appear in ECOOP'03.
K. Mehner and A. Rashid. Towards a Standard Interface for Runtime Inspection in AOP Environments. In M. Chu-Carrol and G. Murphy, editors, Workshop on Tools for AspectOriented Software Development at OOPSLA'02, 2002.
K. Mehner and A. Rashid. GEMA: A Generic Model for AOP (Extended Abstract). In Belgian and Dutch Workshop on Aspect-Oriented Programming, 2003.
A. Mendhekar, G. Kiczales, and J. Lamping. RG: A Case-Study for Aspect-Oriented Programming. Technical Report SPL-97-009, Palo Alto Research Center, 1997.
I. Nagy, M. Aksit, and L. Bergmans. Composition Graphs: a Foundation for Reasoning about Aspect-Oriented Composition. In Workshop on Foundations of Aspect-oriented Languages (FOAL) at AOSD'2003, 2003.
H. Ossher and P. Tarr. Operation-Level Composition: A Case in (Join) Point. In Int'l Workshop on Aspect-Oriented Programming at ECOOP'98, 1998.
H. Ossher and P. Tarr. Using Multi-dimensional Separation of Concerns to (Re)Shape Evolving Software. Communications of the ACM, 44(10):43-50, October 2001.
K. Ostermann and G. Kniesel. Independent Extensibility - An Open Challange for AspectJ and Hyper/J. In Int'l Work. on Aspects and Dimensional Computing at ECOOP'00, 2000.
A. Ryman. The Theory-Model Paradigm in Software Design. Technical Report TR74.048, IBM Tech. Report, IBM Toronto, Ont., October 1989.
A. Taivalsaari. On the Notion of Inheritance. ACM Computing Surveys, 28(3):438-479, September 1996.
P. Tarr, H. Ossher, W. Harrison, and S. S. Jr. N Degrees of Separation: Multi-Dimensional Separation of Concerns. In 21st Int'l Conf. on Software Engineering (ICSE'99), pages 107-119, May 1999.
P. Wegner. Dimensions of Object-based Language Design. In 2nd Conf. on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'87), pages 168-182, October 1987.