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

Resumo


Uma abordagem para extensão de frameworks baseada em um novo conceito, denominado Extension Join Points (EJPs), tem sido proposta anteriormente. EJPs possibilitam a extensão sistemática de frameworks, através do uso de aspectos de variabilidade e integração. Neste artigo, nós mostramos como os EJPs podem ser implementados usando os mecanismos da linguagem AspectJ. Para avaliar a utilidade dos EJPs no processo de extensão de frameworks, nós os utilizamos no desenvolvimento de 3 frameworks OO de diferentes domínios. Como um resultado de nossos estudos de caso, nós apresentamos: (i) uma categorização inicial de diferentes tipos de contratos entre frameworks, EJPs e aspectos, os quais podem ser implementados em AspectJ; e (ii) um conjunto de lições aprendidas quando especificando os EJPs.

Referências

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.
Publicado
16/10/2006
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: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 20. , 2006, Florianópolis. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2006 . p. 177-192. DOI: https://doi.org/10.5753/sbes.2006.21212.