Implementing Framework Crosscutting Extensions with EJPs and AspectJ

  • Uirá Kulesza PUC-Rio
  • Roberta Coelho PUC-Rio
  • Vander Alves UFPE
  • Alberto Costa Neto UFPE
  • Alessandro Garcia Lancaster University
  • Carlos Lucena PUC-Rio
  • Arndt von Staa PUC-Rio
  • Paulo Borba UFPE

Abstract


In a previous work, we proposed a framework extension approach based on the use of a new concept, called Extension Join Points (EJPs). EJPs enable the framework systematic extension by means of variability and integration aspects. In this paper, we show how EJPs can be implemented using the mechanisms of the AspectJ language. To evaluate the usefulness of the EJPs in the framework extension process, we have used them in the development of three OO frameworks from different domains. As a result of our case studies, we present: (i) an initial categorization of different kinds of contracts between frameworks, EJPs and aspects which can be implemented in AspectJ; and (ii) a set of lessons learned when specifying the EJPs.

References

J. Aldrich, “Open Modules: Modular Reasoning about Advice,” Proceedings of ECOOP’05, LNCS 3586, Springer 2005, pp. 144–168.

V. Alves, P. Matos, L. Cole, P. Borba, G. Ramalho. “Extracting and Evolving Mobile Games Product Lines”. Proceedings of SPLC'05, LNCS 3714, pp. 70-81, September 2005.

AspectJ Team. The AspectJ Programming Guide. http://eclipse.org/aspectj/.

C. Baldwin, K. Clark. Design Rules: The Power of Modularity. MIT Press, Cambridge, MA, 2000.

D. Batory, R. Cardone, and Y. Smaragdakis, Object-Oriented Frameworks and Product-Lines. 1st Software Product-Line Conference (SPLC), pp. 227-248, Denver, August 1999.

N. Cacho, et al. Composing Design Patterns: A Scalability Study of Aspect-Oriented Programming. Proceedings of AOSD'06, Bonn, Germany,2006.

C. Chavez, A. Garcia, U. Kulesza, C. Sant’Anna, C. Lucena. Taming Heterogeneous Aspects with Crosscutting Interfaces. Journal of the Brazilian Computer Society, 2006 (to appear).

W. Codenie, et al. “From Custom Applications to Domain-Specific Frameworks”, Communications of the ACM, 40(10),October1997.

A. Colyer, et al. Eclipse AspectJ: Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development Tools, Addison-Wesley, 2004.

K. Czarnecki, U. Eisenecker. Generative Programming: Methods, Tools, and Applications, AddisonWesley,2000.

M. Fayad, D. Schmidt, R. Johnson. Building Application Frameworks: Object-Oriented Foundations of Framework Design. John Wiley & Sons, September 1999.

R. Filman, T. Elrad, S. Clarke, M. Aksit. Aspect-Oriented Software Development. Addison-Wesley, 2005.

R. Filman, D. Friedman. Aspect-oriented programming is Quantification and Obliviousness. In [12], pp. 21– 35. Addison-Wesley, 2005.

E. Gamma, et al. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.

A. Garcia, C. Sant’Anna, E. Figueiredo, U. Kulesza, C. Lucena, A. Staa. Modularizing Design Patterns with Aspects: A Quantitative Study. Proc. 4th Intl. Conference on Aspect-Oriented Software Development, Chicago USA, March 2005.

W. Griswold, et al, "Modular Software Design with Crosscutting Interfaces", IEEE Software, Special Issue on Aspect-Oriented Programming, January 2006.

G. Kiczales, et al. Aspect-Oriented Programming. Proc. of`ECOOP’97, Finland, 1997.

U. Kulesza, et al. “Implementing Framework Crosscutting Extensions with EJPs and AspectJ”, Technical Report, PUC-Rio, Brazil, August 2006.

U. Kulesza, V. Alves, A. Garcia, C. Lucena, P. Borba. Improving Extensibility of Object-Oriented Frameworks with Aspect-Oriented Programming, Proceedings of ICSR'2006, Springer Verlag, LNCS 4038, pp. 231-245, Torino, Italy, June 2006.

U. Kulesza, A. Garcia, C. Lucena. “Composing Object-Oriented Frameworks with Aspect-Oriented Programming”, Technical Report, PUC-Rio, Brazil, April 2006.

U. Kulesza, A. Garcia, C. Lucena, A. von Staa. “Integrating Generative and Aspect-Oriented Technologies”, Proceedings of SBES’2004, pp. 130-146, Brasilia, Brazil, October 2006.

D. Larochelle, et al., “Join Point Encapsulation,” Proc. Workshop Software Eng. Properties of Languages for Aspect Technologies (SPLAT), 2003.

M. Mattson, J. Bosch, M. Fayad. Framework Integration: Problems, Causes, Solutions. Communications of the ACM, 42(10):80–87, October 1999.

M. Mattsson, J. Bosch. Framework Composition: Problems, Causes, and Solutions. In [7], 1999, pp. 467487.

M. Mezini, K. Ostermann: “Variability Management with Feature-Oriented Programming and Aspects”. Proceedings of FSE’2004, pp.127-136, 2004.

M. Mezini, K. Ostermann. “Conquering Aspects with Caesar”. Proc. of AOSD’2003, pp. 90-99, March 1721, 2003, Boston, Massachusetts, USA.

M. Mortensen, S. Ghosh. Using Aspects with Object-Oriented Frameworks, Proceedings of AOSD’2006, Industry Track, Bonn, Germany, March 20-24, 2006.

D. Riehle, T. Gross. “Role Model Based Framework Design and Integration”. Proceedings of OOPSLA’1998, pp. 117-133, Vancouver, BC, Canada, October 18-22, 1998.

Y. Smaragdakis, D. Batory. Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs, ACM TOSEM, 11(2): 215-255 (2002).

K. Sullivan, et al. Information Hiding Interfaces for Aspect-Oriented Design, Proceedings of ESEC/FSEí2005, pp.166-175, Lisbon, Portugal, September 5-9, 2005.

C. Zhang, H. Jacobsen. “Resolving Feature Convolution in Middleware Systems”. Proceedings of OOPSLA’2004, pp.188-205, October 24-28, 2004, Vancouver, BC, Canada.
Published
2006-10-16
KULESZA, Uirá; COELHO, Roberta; ALVES, Vander; COSTA NETO, Alberto; GARCIA, Alessandro; LUCENA, Carlos; VON STAA, Arndt; BORBA, Paulo. Implementing Framework Crosscutting Extensions with EJPs and AspectJ. In: BRAZILIAN SYMPOSIUM ON SOFTWARE ENGINEERING (SBES), 20. , 2006, Florianópolis. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2006 . p. 177-192. ISSN 2833-0633. DOI: https://doi.org/10.5753/sbes.2006.21212.