ABSTRACT
In this paper we propose an extension to JAsCo for supporting Adaptive Programming in a Component-Based Software Development context. JAsCo is an aspect-oriented programming language targeted at Component-Based Software Development and allows encapsulating crosscutting concerns using highly reusable aspect beans. Adaptive Programming on the other hand, allows capturing crosscutting concerns by structure-shy adaptive visitors. We propose to implement an adaptive visitor as a regular JAsCo aspect bean. Hence, the reusability of an adaptive visitor is improved because the same visitor can be reused within different component contexts. We introduce JAsCo traversal connectors to deploy adaptive visitors, implemented as JAsCo aspect beans, upon a concrete component traversal. In addition, these traversal connectors allow to explicitly specify how the behavior of several adaptive visitors, instantiated onto the same component traversal, needs to be combined by making use of the JAsCo precedence and combination strategies. A prototype implementation of the JAsCo Adaptive Programming extension, which employs the DJ library, is available. As a proof of concept, we present an extended case study in the context of the Web Service Management Layer (WSML) project. In this case study, a set of visitors implemented in JAsCo is reused to accomplish multiple tasks.
- Chappell, D. and Jewell, T. Using Java in Service-Oriented Architectures: Java Web Services. O'Reilly, 2002.Google Scholar
- Elrad, T., Filman, R. and Bader, A. (Eds). Aspect-Oriented Programming. Communications of the ACM, 44(10):28--97, 2001. Google ScholarDigital Library
- Gamma, E., Helm, R., Johnson, R. and Vlisside, J. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995. Google ScholarDigital Library
- JAsCo including JAsCoAP extension available at: http://ssel.vub.ac.be/jascoGoogle Scholar
- Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J. and Griswold, W., G. An overview of AspectJ. In Proceedings of ECOOP'2000, SpringerVerlag, 2000. Google ScholarDigital Library
- Kuipers, T. and Visser, J. Object-oriented tree traversal with JJForester. In ENTCS, volume 44, Elsevier Science, 2001.Google Scholar
- Lämmel, R. Typed Generic Traversal With Term Rewriting Strategies. Journal of Logic and Algebraic Programming, 54:1.64, September 2002.Google ScholarCross Ref
- Lämmel, R., Visser, E. and Visser, J. Strategic Programming Meets Adaptive Programming. In Proceedings of the second International Conference on Aspect-Oriented Software Development. Boston, USA, March 2003. Google ScholarDigital Library
- Lämmel, R. and Visser, J. Typed Combinators for Generic Traversal. In Proc. of Practical Aspects of Declarative Programming (PADL), LNCS 2257, January 2002. Google ScholarDigital Library
- Lieberherr, K. Controlling the Complexity of Software Designs. In proceedings of ICSE 2004 (keynote paper), Edinburgh, UK, May 2004 Google ScholarDigital Library
- Lieberherr, K. and Holland, I. Assuring Good Style for Object-Oriented Programs. IEEE Software, pages 38--48., September 1989. Google ScholarDigital Library
- Lieberherr, K. and Lorenz, D. Coupling Aspect-Oriented and Adaptive Programming. In Aspect-Oriented Software Development, Filman et al, Addison Wesley, 2004.Google Scholar
- Lieberherr, K and Orleans, D. Preventive Program Maintenance in Demeter/Java. In Proceedings of International Conference of Software Engineering (ICSE), pp. 604--605, 1997. Google ScholarDigital Library
- Lieberherr, K., Orleans, D. and Ovlinger, J. Aspect-Oriented Programming with Adaptive Methods. Communications of the ACM, Vol. 44, No. 10, October 2001. Google ScholarDigital Library
- Meyer, B. Onto components. In IEEE Computer, Volume 32, January 1999. Google ScholarDigital Library
- Mezini, M. and Lieberherr. Adaptive Plug-and-Play Components for Evolutionary Software Development. In Proceedings of OOPSLA'98, Vancouver, Canada, October 1998. Google ScholarDigital Library
- Mezini, M. and Ostermann, K. Conquering Aspects with Caesar. In Proceedings of the second international conference on Aspect-Oriented Software Development. Boston, USA, March 2003. Google ScholarDigital Library
- Orleans, D. and Lieberherr, K. DJ: Dynamic Adaptive Programming in Java. In Proceedings of Reflection 2001: Meta-level Architectures and Separation of Crosscutting Concerns, Kyoto, Japan, September 2001. Google ScholarDigital Library
- Pulvermüller, E., Speck, A., Coplien, J.O., D'Hondt, M. and De Meuter, W. Proceedings of Workshop on "feature interaction in composed systems" at ECOOP 2001. Available at: http://www.info.uni-karlsruhe.de/~pulvermu/workshops/ecoop2001/ Google ScholarDigital Library
- Shonle, M., Lieberherr, K. and Shah, A. XAspects: An Extensible System for Domain Specific Aspect Languages. In Proceedings of OOPSLA international conference, Special Track on Domain-Driven Development, ACM Press, Anaheim, USA, October 2003. Google ScholarDigital Library
- Sun, JavaBeans(TM) Specification 1.01. Available at: http://java.sun.com/products/javabeans/docs/spec.htmlGoogle Scholar
- Sung J. and Lieberherr, K. DAJ: A Case Study of Extending AspectJ. Northeastern University Technical Report NU-CCS-02-16, 2002. Available at: http://www.ccs.neu.edu/research/demeter/biblio/DAJ1.htmlGoogle Scholar
- Suvée, D., Vanderperren, W. and Jonckers, V. JAsCo: an Aspect-Oriented approach tailored for Component Based Software Development. In Proceedings of AOSD 2003, ACM Press, Boston, USA, March 2003. Google ScholarDigital Library
- Szyperski, C. Component Software - Beyond Object-Oriented Programming. Addison-Wesley / ACM Press. Google ScholarDigital Library
- Szyperski, C. Components and Web Services. Beyond Objects column, Software Development, Vol. 9, No. 8, August 2001.Google Scholar
- Verheecke, B., Cibran, M. A. and Jonckers, V. AOP for Dynamic Configuration and Management of Web services in Client-Applications. In Proceedings of 2003 ICWS. Erfurt, Germany, September 2003.Google Scholar
- Verheecke, B., Cibran, M. A. and Jonckers, V. WSML. available at: http://ssel.vub.ac.be/wsmlGoogle Scholar
- Visser, E., Benaissa, Z.-e.-A. and Tolmach, A. Building program optimizers with rewriting strategies. In Proceedings of the 3rd International Conference on Functional Programming. Baltimore, USA, September 1998. Google ScholarDigital Library
- Visser, J. Visitor combination and traversal control. In Proceedings of the OOPSLA 2001 International Conference. Tampa Bay, USA, November 2001. Google ScholarDigital Library
- Wu, P., Krishnamurthi, S. and Lieberherr, K. Traversing Recursive Object Structures: The Functional Visitor in Demeter. In Proc. of SPLAT Workshop of AOSD'03, Boston, USA, March 2003.Google Scholar
Recommendations
JAsCo: an aspect-oriented approach tailored for component based software development
AOSD '03: Proceedings of the 2nd international conference on Aspect-oriented software developmentIn this paper we introduce a novel aspect oriented implementation language, called JAsCo. JAsCo is tailored for component based development and the Java Beans component model in particular. The JAsCo language introduces two concepts: aspect beans and ...
Supporting JAsCo AOP By Means of Eclipse
In this tool demonstration paper, we present a plugin for the Eclipse tool platform which provides support for JAsCo. JAsCo is a dynamic AOP language focused at component-based software engineering. The JAsCo Eclipse plugin provides a visual integrated ...
There are no Aspects
In this paper, we claim that a specialized aspect module is not required. Instead, we propose an expressive aspect-oriented composition mechanism which can be applied upon existing modules. At the design level, the CoCompose modeling framework is ...
Comments