Projeto Baseado em Aspectos do Padrão Camada de Persistência

  • Valter Vieira de Camargo USP
  • Ricardo Argenton Ramos UFSCar / FGP
  • Rosângela Penteado UFSCar
  • Paulo Cesar Masiero USP

Resumo


Padrões de projeto são criados e documentados para apoiar o reuso e a evolução de software, porém pesquisas mais recentes mostram que embora o projeto desses padrões seja reusável, o mesmo não ocorre com sua implementação. Alguns autores têm mostrado que as técnicas de implementação orientadas a objetos não são adequadas para a implementação de padrões de projeto por não possuírem mecanismos adequados para tratamento de interesses ortogonais ao interesses principais dos padrões. Porém, técnicas de programação orientadas a aspectos fornecem construções de linguagem adequadas ao encapsulamento desse tipo de comportamento, fazendo com que os benefícios de reusabilidade e evolução também ocorram com o código. Este artigo apresenta uma proposta de projeto baseado em aspectos para o padrão de projeto Camada de Persistência e também algumas diretrizes que auxiliam na obtenção de um projeto baseado em aspectos para um sistema orientado a objetos que tenha sido desenvolvido reusando um determinado padrão de projeto.
Palavras-chave: Padrões de Projeto, Aspectos, Camada de Persistência, Persistência, Modularidade

Referências

Camargo, V.V. Reengenharia Orientada a Objetos de Sistemas COBOL com a utilização de Padrões de Projeto e Servlets. Dissertação de Mestrado, Departamento de Computação da Universidade Federal de São Carlos, 2001.

Camargo, V.V.; Prieto, A.G.; Penteado, R.A.D. Uma Experiência na Integração de UML, Padrão de Projeto e Servlet. In: Proceedings do CLEI 2000.

Cagnin, M.I. Avaliação das Vantagens quanto à Facilidade de Manutenção e Expansão de Sistemas Legados Sujeitos à Engenharia Reversa e Segmentação. Dissertação de Mestrado, DC-UFSCar, 1999.

Czarnecki, K., Eisenecker, U. W. Generative Programming. Addison Wesley, 2000.

Elrad, T, et al. Discussing Aspects of AOP. Communications of the ACM, vol. 44, No. 19, pp. 33-38, outubro de 2001.

Elrad, T, Filman R., Bader A. Aspect-Oriented Programming. Communications of the ACM, vol 44, No 10, pp. 29-32, 2001.

Elrad, T., Aksit, M., Kiczales, G., Lieberherr, K., Ossher, H. Discussing Aspects of AOP. Communications of the ACM, october 2001/Vol. 44 No.10.

Gama, E., Helm, R., Johnson, R., Vlissides, J. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.

Hannemann and Kiczales. Design Pattern Implementation in Java and AspectJ, Proceedings of the 17th Annual ACM conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 161-173, November 2002.

Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G. Getting Started with AspectJ. Communications of the ACM, 44(10):59-65, October 2001.

Noda, N. and Kishi, T. "Implementing Design Patterns Using Advanced Separation of Concerns", in Proceedings of OOPSLA 2001, Workshop on Advanced Separation of Concerns in Object-Oriented Systems, Tampa Bay, FL, October 2001.

Soares, S., Laureano, E., Borba, P. Implementing Distribution and Persistence Aspects with AspectJ. In Proceedings of OOSPLA 2002, November 4-8, Seattle, Washington, USA.

Soares, S., Borba, P. AspectJ - Programação orientada a aspectos em Java. Tutorial no SBLP 2002, 6º Simpósio Brasileiro de Linguagens de Programação. páginas 39-55. 5 a 7 de Junho 2002, PUC-Rio, Rio de Janeiro, Brasil.

Yoder, J. W.; Johnson, R. E.; Wilson, Q. D. Connecting Business Objects to Relational Databases. Conference on the Pattern Languages of Programs, 1998.

Rashid, A.; Chitchyan, R. Persistence as an Aspect. In Proceedins of 2nd International Conference on Aspect Oriented Software Development - AOSD 17 to 21 march of 2003. Boston - USA.
Publicado
08/10/2003
CAMARGO, Valter Vieira de; RAMOS, Ricardo Argenton; PENTEADO, Rosângela; MASIERO, Paulo Cesar. Projeto Baseado em Aspectos do Padrão Camada de Persistência. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 17. , 2003, Manaus/AM. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2003 . p. 110-125. DOI: https://doi.org/10.5753/sbes.2003.23856.