ABSTRACT
Crosscutting 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 tangling and scattering) aspect-introducing refactoring can be used. The first step in aspect-introducing refactoring is identifying and documenting crosscutting concerns in existing code. The second step is refactoring the identified concerns to aspects.
This paper describes a tool called SAIR that can perform the second step of the aspect-introducing refactoring. For the first step, documenting, SAIR uses crosscutting concern sorts. Of the various possible sorts, SAIR currently supports the two most commonly encountered ones: Role Superimposition and Consistent Behavior. The refactoring towards aspects of concerns of these sorts is illustrated on an open source application (JHotDraw).
- D. Binkley, M. Ceccato, M. Harman, F. Ricca, and P. Tonella. Automated refactoring of object oriented code into aspects. In ICSM '05: Proceedings of the 21st IEEE International Conference on Software Maintenance (ICSM'05), pages 27--36, Washington, DC, USA, 2005. IEEE Computer Society. Google ScholarDigital Library
- L. Cole and P. Borba. Deriving refactorings for aspectj. In AOSD '05: Proceedings of the 4th international conference on Aspect-oriented software development, pages 123--134, New York, NY, USA, 2005. ACM Press. Google ScholarDigital Library
- J. Hannemann, G. C. Murphy, and G. Kiczales. Role-based refactoring of crosscutting concerns. In AOSD '05: Proceedings of the 4th international conference on Aspect-oriented software development, pages 135--146, New York, NY, USA, 2005. ACM Press. Google ScholarDigital Library
- G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In Proceedings European Conference on Object-Oriented Programming, volume 1241, pages 220--242, Berlin, Heidelberg, and New York, 1997. Springer-Verlag.Google ScholarCross Ref
- M. Marin, A. v. Deursen, and L. Moonen. Identifying crosscutting concerns using fan-in analysis. ACM Transactions on Software Engineering and Methodology, 17(1):1--37, 2007. Google ScholarDigital Library
- M. Marin, L. Moonen, and A. van Deursen. An approach to aspect refactoring based on crosscutting concern types. In MACS '05: Proceedings of the 2005 workshop on Modeling and analysis of concerns in software, pages 1--5, New York, NY, USA, 2005. ACM. Google ScholarDigital Library
- M. Marin, L. Moonen, and A. van Deursen. An integrated crosscutting concern migration strategy and its application to JHotDraw. In Proceedings of the IEEE International Conference on Source Code Analysis and Manipulation (SCAM), pages 101--110. IEEE, 2007. Google ScholarDigital Library
- M. Marin, L. Moonen, and A. van Deursen. SoQueT: Query-based documentation of crosscutting concerns. In Proceedings of the 29th International Conference on Software Engineering (ICSE), pages 758--761, Washington, DC, USA, 2007. IEEE Computer Society. Google ScholarDigital Library
- M. P. Monteiro and J. M. Fernandes. Towards a catalog of aspect-oriented refactorings. In AOSD '05: Proceedings of the 4th international conference on Aspect-oriented software development, pages 111--122, New York, NY, USA, 2005. ACM Press. Google ScholarDigital Library
Index Terms
- Sort-based refactoring of crosscutting concerns to aspects
Recommendations
Toward automated refactoring of crosscutting concerns into aspects
Aspect-oriented programing (AOP) improves the separation of concerns by encapsulating crosscutting concerns into aspects. Thus, aspect-oriented programing aims to better support the evolution of systems. Along this line, we have defined a process that ...
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 ...
Comments