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

Role-based refactoring of crosscutting concerns

Published:14 March 2005Publication History

ABSTRACT

Improving the structure of code can help developers work with a software system more efficiently and more consistently. To aid developers in re-structuring the implementation of crosscutting concerns using aspect-oriented programming, we introduce a role-based refactoring approach and tool. Crosscutting concerns (CCCs) are described in terms of abstract roles, and instructions for refactoring crosscutting concerns are written in terms of those roles. To apply a refactoring, a developer maps a subset of the roles to concrete program elements; a tool can then help complete the mapping of roles to the existing program. Refactoring instructors are then applied to manipulate and modularize the concrete elements corresponding to the crosscutting concern. Evaluation of the prototype tool on a graphical editing framework suggests that the approach helps planning and executing complex CCC refactorings.

References

  1. Baniassad, E. Design Pattern Rationale Graphs: Linking Design to Source. PhD Dissertation, University of British Columbia, Canada, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. van Deursen, A., Marin, M., and Moonen L. Aspect Mining and Refactoring. First International Workshop on REFactoring: Achievements, Challenges, Effects (REFACE '03), at 10th Working Conference on Reverse Engineering (WCRE '03), Victoria, BC, Canada, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Feature Exploration and Analysis Tool. Web site. www.cs.ubc.ca/labs/spl/projects/featGoogle ScholarGoogle Scholar
  4. Ferrante, J., Ottenstein, K. J., and Warren, J. D. The Program Dependence Graph and its Uses in Optimization. In ACM Transactions on Programming Languages and Systems, 3(9): pp. 319--349, July 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Fowler, M. Refactoring - Improving the Design of Existing Code. Addison-Wesley, Boston, MA, 2000.Google ScholarGoogle Scholar
  6. Gamma, E., Helm, R., Johnson, R., and Vlissides, J. Design Patterns - Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Griswold, W. G. Program Restructuring as an Aid to Software Maintenance. Ph.D. Thesis and Technical Report 91-08-04, University of Washington, WA, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Hanenberg, S., Oberschulte, C., and Unland, R., Refactoring of Aspect-Oriented Software. NetObject Days. Erfurt, Germany, 2003.Google ScholarGoogle Scholar
  9. Hanenberg, S., Unland, R. Roles and Aspects: Similarities, Differences, and Synergetic Potential, In: Proceedings of the 8th International Conference on Object-Oriented Information Systems, pp. 507--520, LNCS Volume 2425/2002. Springer-Verlag, London, UK, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Hannemann, J. and Kiczales, G. Design Pattern Implementation in Java and AspectJ. In Proceedings of the 17th Annual ACM conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA '02), pp. 161--173. Seattle, WA, November 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Hannemann, J., Fritz, T., Murphy, G. Refactoring to Aspects - an Interactive Approach. Eclipse Technology eXchange (ETX) Workshop at OOPSLA 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Hannemann, J., Chitchyan, R., and Rashid, A. Report on the Workshop on Analysis of Aspect-Oriented Software. In: Object-Oriented Technology: ECOOP 2003 Workshop Reader, pp. 154--164. Buschmann, F., Buchmann, A. P., Cilia, M. A. (Editors). LNCS Volume 3013 / 2004. Springer-Verlag, Heidelberg, Germany, 2004.Google ScholarGoogle Scholar
  13. Hilsdale, E., Hugunin, J. Advice Weaving in AspectJ. In Proceedings of the 3rd International Conference on Aspect-Oriented Software Development (AOSD '04), pages 26--35. Lancaster, UK, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Iwamoto M. and Zhao, J. Refactoring Aspect-Oriented Programs, 4th AOSD Modeling With UML Workshop, at UML '03, San Francisco, CA, October 2003.Google ScholarGoogle Scholar
  15. JHotDraw open source project. Web site. www.jhotdraw.orgGoogle ScholarGoogle Scholar
  16. Kendall, E. A. Role Model Designs and Implementations with Aspect-oriented Programming. In Proceedings of the ACM conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA '99), pages 353--369. Denver, CO, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Kiczales, G., Lamping, J., Mendhekar, A., Maede, C., Lopes, C., Loingtier, J.-M., Irwin, J. Aspect-Oriented Programming. In Proceedings of the 11th European Conference on Object-Oriented Programming (ECOOP '97), pages 220--242. Jyväskylä, Finland, 1997.Google ScholarGoogle Scholar
  18. Kiczales, G., Hilsdale, E., Hugunin, J, Kersten, M, Griswold, W. G., An Overview of AspectJ. In Proceedings of the 15th European Conference on Object-Oriented Programming (ECOOP '01), LNCS Volume 2072 / 2001, pp. 327--353. Springer Verlag, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Laddad, R. Aspect-Oriented Refactoring Series. Part 1 and 2. The Server Side, 2003. http://www.theserverside.com/ Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Lieberherr, K., Lorenz, D. H., and Mezini, M. Programming with Aspectual Components. Technical report NU-CCS-99-01, College of Computer Science, Northeastern University, Boston, MA, 1999.Google ScholarGoogle Scholar
  21. Lieberherr, K., Lorenz, D. H., and Ovlinger, J. Aspectual Collaborations: Combining Modules and Aspects. In The Computer Journal, volume 46, issue 5: pp. 542--565, Oxford University Press, 2003.Google ScholarGoogle Scholar
  22. Masuhara, H. and Kiczales, G. Modeling Crosscutting in Aspect-Oriented Mechanisms. In Proceedings of the 17th European Conference on Object-Oriented Programming (ECOOP '03), pp. 2--28. Darmstadt, Germany, 2003.Google ScholarGoogle ScholarCross RefCross Ref
  23. Monteiro, M. P., Fernandes, J. M. Object-to-Aspect Refactorings for Feature Extraction. Industry track paper at the 3rd International Conference on Aspect-Oriented Software Development. Lancaster, UK, 2004.Google ScholarGoogle Scholar
  24. Opdyke, W. F. Refactoring Object-Oriented Frameworks. PhD Dissertation, University of Illinois, IL, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Robillard, M. P., and Murphy, G. C. Concern Graphs: Finding and Describing Concerns Using Structural Program Dependencies. In Proceedings of the 24th International Conference on Software Engineering (ICSE '02), pp. 406--416. Orlando, FL, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Shepherd, D., and Pollock, L. Ophir: A Framework for Automatic Mining and Refactoring of Aspects. Technical Report No. 2004-03. Dept. of Computer & Information Sciences, University of Delaware, Newark, DE, 2003.Google ScholarGoogle Scholar
  27. Tamai, T., Ubayashi, N. and Ichiyama, R. An Adaptive Object Model with Dynamic Role Binding. To appear in Proceedings of the International Conference on Software Engineering (ICSE '05), St. Louis, MO, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Tonella, P., and Ceccato, M. Aspect Mining though the Formal Concept Analysis of Execution Traces. IRST Technical Report, May 2004.Google ScholarGoogle Scholar
  29. Wloka, Jan. Refactoring in the Presence of Aspects. 13th Workshop for PhD Students in Object-Oriented Systems (PhDOOS), at ECOOP '03, Darmstadt, Germany, 2003.Google ScholarGoogle Scholar

Index Terms

  1. Role-based refactoring of crosscutting concerns

        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