ABSTRACT
In this paper we present aspect-oriented programming laws that are useful for deriving refactorings for AspectJ. The laws help developers to verify if the transformations they define preserve behaviour. We illustrate that by deriving several AspectJ refactorings. We also show that our laws are useful for restructuring two Java applications with the aim of using aspects to modularize common crosscutting concerns.
- V. Alves and P. Borba. Distributed Adapters Pattern: A Design Pattern for Object-Oriented Distributed Applications. In 1st Latin American Conference on Pattern Languages Programming - Sugar LoafPLoP, Rio de Janeiro, Brazil, October 2001.Google Scholar
- G. Booch. Object-Oriented Analysis and Design with Applications. Benjamin/Cummings, second edition, 1994. Google ScholarDigital Library
- P. Borba, A. Sampaio, A. L. Cavalcanti, and M. Cornelio. Algebraic reasoning for object-oriented programming. Science of Computer Programming, January 2004. Google ScholarDigital Library
- L. Cole. Deriving refactorings for AspectJ. Master's thesis, Informatics Center, Federal University of Pernambuco, Recife-PE, Brazil, February 2005. Available at http://www.cin.ufpe.br/spg/GenteAreaThesis.Google Scholar
- M. d'Amorim, C. Nogueira, G. Santos, A. Souza, and P. Borba. Integrating Code Generation and Refactoring. In Workshop on Generative Programming, ECOOP02, Malaga, Spain, June 2002. Springer Verlag.Google Scholar
- T. Elrad, R. E. Filman, and A. Bader. Aspect-Oriented Programming. Communications of the ACM, 44(10):29--32, October 2001. Google ScholarDigital Library
- M. Fowler, K. Beck, J. Brant, W. Opdyke, and D. Roberts. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999. Google ScholarDigital Library
- E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994. Google ScholarDigital Library
- S. Hanenberg, C. Oberschulte, and R. Unland. Refactoring of aspect-oriented software. In 4th International Conf. on Object-Oriented and Internet-based Technologies, Concepts, and Applications for a Networked World (Net. ObjectDays), pages 19-35, Erfurt, Germany, Sept. 2003.Google Scholar
- S. Hanenberg and R. Unland. Using and reusing aspects in AspectJ. In Workshop on Advanced Separation of Concerns in Object-Oriented Systems, OOPSLA '2001, Oct. 2001.Google Scholar
- J. Hannemann, T. Fritz, and G. C. Murphy. Refactoring to aspects: an interactive approach. In Proceedings of the 2003 OOPSLA Workshop on Eclipse Technology eXchange, Anaheim, California, USA, Oct. 2003. Google ScholarDigital Library
- J. Hannemann and G. Kiczales. Design pattern implementation in java and AspectJ. In OOPSLA '2002, pages 161--173, Seattle, Washington, USA, Nov. 2002. Google ScholarDigital Library
- C. Hoare, I. Hayes, J. He, C. Morgan, A. Roscoe, J. Sanders, I. Sorensen, J. Spivey, and B. Sufrin. Laws of programming. Commun. ACM, 30(8):672--686, 1987. Google ScholarDigital Library
- M. Iwamoto and J. Zhao. Refactoring aspect-oriented programs. In The 4th AOSD Modeling With UML Workshop, 2003.Google Scholar
- G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. Getting Started with AspectJ. Communications of the ACM, 44(10):59--65, October 2001. Google ScholarDigital Library
- G. Kniesel and H. Koch. Static composition of refactorings. In R. Lämmel, editor, Science of Computer Programming, Special issue on "Program Transformation". Elsevier Science, 2004. Google ScholarDigital Library
- R. Laddad. Aspect-Oriented Refactoring Series. TheServerSide.com, Dec. 2003. Google ScholarDigital Library
- R. Lämmel. A Semantical Approach to Method-Call Interception. In G. Kiczales, editor, 1st International Conference on Aspect-Oriented Software Development (AOSD 2002), pages 41--55, Twente, The Netherlands, Apr. 2002. ACM Press. Google ScholarDigital Library
- T. Massoni, V. Alves, S. Soares, and P. Borba. PDC: Persistent Data Collections pattern. In 1st Latin American Conference on Pattern Languages Programming - SugarLoafPLoP, Rio de Janeiro, Brazil, October 2001.Google Scholar
- B. Meyer. Object-Oriented Software Construction. Prentice-Hall, second edition, 1997. Google ScholarDigital Library
- M. Monteiro and J. Fernandes. Towards a Catalog of Aspect-Oriented Refactorings. In 4th International Conference on Aspect-Oriented Software Development (AOSD 2005), Chicago, USA, Mar. 2005. ACM Press. Google ScholarDigital Library
- W. Opdyke. Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois at Urbana-Champaign, IL, USA, 1992. Google ScholarDigital Library
- D. Roberts. Practical Analysis for Refactoring. PhD thesis, University of Illinois at Urbana-Champaign, IL, USA, 1999. Google ScholarDigital Library
- S. Soares, E. Laureano, and P. Borba. Implementing distribution and persistence aspects with AspectJ. In Proceedings of the OOPSLA '02 conference on Object Oriented Programming Systems Languages and Applications, pages 174--190. ACM Press, November 2002. Google ScholarDigital Library
- C. Zhang and H.-A. Jacobsen. Resolving feature convolution in middleware systems. In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2004), pages 13-26, Vancouver, British Columbia, Canada, October 24-28, 2004. Google ScholarDigital Library
Index Terms
- Deriving refactorings for AspectJ
Recommendations
Deriving refactorings for aspectJ
OOPSLA '04: Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applicationsIn this paper we present aspect-oriented programming laws that are useful for deriving refactorings for AspectJ. The laws help developers to verify if the transformations they define preserve behavior. We illustrate that by deriving several AspectJ ...
Implementing distribution and persistence aspects with aspectJ
OOPSLA '02: Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsThis paper reports our experience using AspectJ, a general-purpose aspect-oriented extension to Java, to implement distribution and persistence aspects in a web-based information system. This system was originally implemented in Java and restructured ...
On bytecode slicing and aspectJ interferences
FOAL '07: Proceedings of the 6th workshop on Foundations of aspect-oriented languagesAspectJ aims at managing tangled concerns in Java systems. Crosscutting aspect definitions are woven into the Java bytecode at compile-time. Whether the better modularization introduced by aspects is real or just apparent remains unclear. While aspect ...
Comments