skip to main content
10.1145/1052898.1052909acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
Article

Deriving refactorings for AspectJ

Published:14 March 2005Publication History

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.

References

  1. 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 ScholarGoogle Scholar
  2. G. Booch. Object-Oriented Analysis and Design with Applications. Benjamin/Cummings, second edition, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. P. Borba, A. Sampaio, A. L. Cavalcanti, and M. Cornelio. Algebraic reasoning for object-oriented programming. Science of Computer Programming, January 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle Scholar
  5. 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 ScholarGoogle Scholar
  6. T. Elrad, R. E. Filman, and A. Bader. Aspect-Oriented Programming. Communications of the ACM, 44(10):29--32, October 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. M. Fowler, K. Beck, J. Brant, W. Opdyke, and D. Roberts. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle Scholar
  10. 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 ScholarGoogle Scholar
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. J. Hannemann and G. Kiczales. Design pattern implementation in java and AspectJ. In OOPSLA '2002, pages 161--173, Seattle, Washington, USA, Nov. 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. M. Iwamoto and J. Zhao. Refactoring aspect-oriented programs. In The 4th AOSD Modeling With UML Workshop, 2003.Google ScholarGoogle Scholar
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. R. Laddad. Aspect-Oriented Refactoring Series. TheServerSide.com, Dec. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle Scholar
  20. B. Meyer. Object-Oriented Software Construction. Prentice-Hall, second edition, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. W. Opdyke. Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois at Urbana-Champaign, IL, USA, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. D. Roberts. Practical Analysis for Refactoring. PhD thesis, University of Illinois at Urbana-Champaign, IL, USA, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Deriving refactorings for AspectJ

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Other conferences
      AOSD '05: Proceedings of the 4th international conference on Aspect-oriented software development
      March 2005
      210 pages
      ISBN:1595930426
      DOI:10.1145/1052898
      • General Chair:
      • Mira Mezini,
      • Program Chair:
      • Peri Tarr

      Copyright © 2005 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 14 March 2005

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • Article

      Acceptance Rates

      Overall Acceptance Rate41of139submissions,29%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader