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.
- Baniassad, E. Design Pattern Rationale Graphs: Linking Design to Source. PhD Dissertation, University of British Columbia, Canada, 2002. Google ScholarDigital Library
- 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 ScholarDigital Library
- Feature Exploration and Analysis Tool. Web site. www.cs.ubc.ca/labs/spl/projects/featGoogle Scholar
- 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 ScholarDigital Library
- Fowler, M. Refactoring - Improving the Design of Existing Code. Addison-Wesley, Boston, MA, 2000.Google Scholar
- Gamma, E., Helm, R., Johnson, R., and Vlissides, J. Design Patterns - Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994. Google ScholarDigital Library
- 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 ScholarDigital Library
- Hanenberg, S., Oberschulte, C., and Unland, R., Refactoring of Aspect-Oriented Software. NetObject Days. Erfurt, Germany, 2003.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Hannemann, J., Fritz, T., Murphy, G. Refactoring to Aspects - an Interactive Approach. Eclipse Technology eXchange (ETX) Workshop at OOPSLA 2003. Google ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- Iwamoto M. and Zhao, J. Refactoring Aspect-Oriented Programs, 4th AOSD Modeling With UML Workshop, at UML '03, San Francisco, CA, October 2003.Google Scholar
- JHotDraw open source project. Web site. www.jhotdraw.orgGoogle Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- Laddad, R. Aspect-Oriented Refactoring Series. Part 1 and 2. The Server Side, 2003. http://www.theserverside.com/ Google ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarCross Ref
- 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 Scholar
- Opdyke, W. F. Refactoring Object-Oriented Frameworks. PhD Dissertation, University of Illinois, IL, 1992. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- Tonella, P., and Ceccato, M. Aspect Mining though the Formal Concept Analysis of Execution Traces. IRST Technical Report, May 2004.Google Scholar
- 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 Scholar
Index Terms
- Role-based refactoring of crosscutting concerns
Recommendations
Refactoring of Crosscutting Concerns with Metaphor-Based Heuristics
It has been advocated that Aspect-Oriented Programming (AOP) is an effective technique to improve software maintainability through explicit support for modularising crosscutting concerns. However, in order to take the advantages of AOP, there is a need ...
Sort-based refactoring of crosscutting concerns to aspects
LATE '08: Proceedings of the 2008 AOSD workshop on Linking aspect technology and evolutionCrosscutting concerns in object-oriented programming hinder evolution because of their symptoms: tangling and scattering. To benefit from the modularisation capabilities for crosscutting concerns provided by aspect-oriented programming (which prevent ...
Comments