ABSTRACT
Aspect-oriented programming (AOP) promises to benefit software engineering by providing a layer of abstraction that can modularize system-level concerns. AOP is still a very young area of research and has yet to receive mainstream acceptance in industry. As a result, the industry as a whole lacks experience and knowledge concerning long term maintenance issues with AOP in deployed commercial applications. Fault models that result from software maintenance in aspect-oriented software development (AOSD) are not nearly as well understood as they are for object-oriented software development (OOSD). This paper will explore some of the long-term maintenance issues that can occur with AspectJ, which is an implementation of AOP for the Java programming language. More specifically, the ability of AspectJ (as of version 1.2) to weave into existing bytecode that already contains woven aspects can create unexpected and potentially unsolvable problems. This will hopefully lead to further discussion in the research community that will result in a better understanding of the long-term maintenance issues inherent in AOSD.
- AspectJ Project, http://eclipse.org/aspectj/. accessed May 9th, 2004.Google Scholar
- Bussard, L., Carver, L., Ernst, E., Jung, M., Robillard, M., Speck, A., Safe Aspect Composition. Workshop on Aspects and Dimensions of Concern at ECOOP'2000, Cannes, France, June 2000Google Scholar
- Costanza, P., Austermann, M., Kniesel, G. Independent Extensibility for Aspect-Oriented Systems. Workshop on Advanced Separation of Concerns at ECOOP 2001, Budapest, Hungary, 18-22 June 2001.Google Scholar
- Gybels, K., Brichau, J. Arranging Language Features for More Robust Pattern-based Crosscuts. Proceedings of the 2nd international conference on Aspect-oriented software development 2003, Boston, Massachusetts Google ScholarDigital Library
- Hanenberg, S., Unland, R. Parametric Introductions. Proceedings of the 2nd international conference on Aspect-oriented software development 2003, Boston, Massachusetts Google ScholarDigital Library
- Hanenberg, S., Unland, R. Using and Reusing Aspects in AspectJ, Workshop on Advanced Separation of Concerns, OOPSLA, 2001.Google Scholar
- Kniesel, G., Costanza, P., Austermann, M., JMangler - A Framework for Load-Time Transformation of Java Class Files, 1st IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2001), p. 100-110, IEEE Computer Society Press, 2001, ISBN 0-7695-1387-5Google Scholar
- Laddad, R. AspectJ in Action. Manning Publications, Inc., 2003.Google Scholar
- Mikhajlov, L., Sekerinski, E. A Study of The Fragile Base Class Problem. In European Conference on Object-Oriented Programming, 1998. Google ScholarDigital Library
- Ostermann, K., Kniesel, G. Independent Extensibility an open challenge for AspectJ and Hyper/J. Aspects and Dimensions of Concern workshop at ECOOP 2000, Cannes, France. March 31, 2000Google Scholar
- Störzer, M. Analysis of AspectJ Programs. Proceedings of 3rd German Workshop on Aspect-Oriented Software Development. February 8, 2003Google Scholar
- Szyperski, C., Independently Extensible Systems Software Engineering Potential and Challenges, Proceedings of the 19th Australian Computer Science Conference. 1996Google Scholar
- Threads, How to Use, http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html. accessed September 28th, 2004Google Scholar
- Tourwé, T., Brichau, J., Gybels, K. On the Existence of the AOSD-Evolution Paradox. Workshop on Software-engineering Properties of Languages for Aspect Technologies 2003, Boston, Massachusetts.Google Scholar
Index Terms
- Distributing classes with woven concerns: an exploration of potential fault scenarios
Recommendations
Using aspect-orientation to simplify concurrent programming
AOSD '11: Proceedings of the tenth international conference on Aspect-oriented software development companionThe Java programming language offers several basic constructs for concurrent programming. Despite covering everything needed from a functional point of view, the constructs are difficult to use since they require a lot of infrastructural statements ...
Advice weaving in AspectJ
AOSD '04: Proceedings of the 3rd international conference on Aspect-oriented software developmentThis paper describes the implementation of advice weaving in AspectJ. The AspectJ language picks out dynamic join points in a program's execution with pointcuts and uses advice to change the behavior at those join points. The core task of AspectJ's ...
Using AspectJ for component integration in middleware
OOPSLA '03: Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsThis report discusses experiences applying AspectJ [1] to modularize crosscutting concerns in a middleware product line at IBM®. Aspect oriented programming techniques were used to cleanly separate platform specific facilities for aspects such as error ...
Comments