ABSTRACT
Evolution of software often decreases desired properties like readability and maintainability of the evolved code. The process of refactoring aims at increasing the same desired properties by restructuring the code. New paradigms like AOP allow aspect-oriented refactorings as counterparts of object-oriented refactoring with the same aim. However, it is not obvious to the user, when to use which paradigm for achieving certain goals. In this paper we present an approach of code clone classification, which advises the developer when to use a respective refactoring technique or concept.
- S. Apel, T. Leich, and G. Saake. Aspectual Feature Modules. In IEEE Transactions on Software Engineering (TSE), 2008. Google ScholarDigital Library
- Brenda S. Baker. On Finding Duplication and Near-Duplication in Large Software Systems. In Proceedings of the Working Conference on Reverse Engineering (WCRE), 1995. Google ScholarDigital Library
- I. D. Baxter et al. Clone Detection Using Abstract Syntax Trees. In Proceedings of the International Conference on Software Maintenance (ICSM), 1998. Google ScholarDigital Library
- M. Bruntink, A.v. Deursen, R.v. Engelen, and T. Tourwé. On the Use of Clone Detection for Identifying Crosscutting Concern Code. In IEEE Transactions on Software Engineering (TSE), 2005. Google ScholarDigital Library
- E. Duala-Ekoko and M. P. Robillard. Tracking Code Clones in Evolving Software. In Proceedings of the International Conference on Software Engineering (ICSE), 2007. Google ScholarDigital Library
- S. Ducasse, M. Rieger, and S. Demeyer. A Language Independent Approach for Detecting Duplicated Code. In Proceedings of the International Conference on Software Maintenance (ICSM), 1999. Google ScholarDigital Library
- Martin Fowler et al. Refactoring - Improving the Design of Existing Code. Addison Wesley, 2000.Google Scholar
- R. Johnson and B. Foote. Designing Reusable Classes. Journal of Object-Oriented Programming, 1(2), 1988.Google Scholar
- T. Kamiya, S. Kusumoto, and K. Inoue. CCFinder: A Multilinguistic Token-Based Code Clone Detection System for Large Scale Source Code. In IEEE Transactions on Software Engineering (TSE), 2002. Google ScholarDigital Library
- Joshua Kerievsky. Refactoring to Patterns. Addison-Wesley, 2004. Google ScholarDigital Library
- M. P. Monteiro and J. M. Fernandes. Towards a Catalog of Aspect-Oriented Refactorings. In Proceedings of the International Conference on Aspect-Oriented Software Development (AOSD), 2005. Google ScholarDigital Library
- C. K. Roy and J. Cordy. A Survey on Software Clone Detection Research. Technical Report 2007-451, School of Computing, Queen's University at Kingston, 2007.Google Scholar
- L. Tokuda and D. Batory. Evolving Object-Oriented Designs with Refactorings. In Proc. of the Int'l Conf. on Automated Software Engineering, 2001. Google ScholarDigital Library
- Peter Wegner. Concepts and Paradigms of Object-Oriented Programming. ACM Special Interest's Group of Programming Languages (SIGPLAN), 1990. Google ScholarDigital Library
Index Terms
- Towards a refactoring guideline using code clone classification
Recommendations
Aspect-Oriented Refactoring of Legacy Applications: An Evaluation
The primary claimed benefits of aspect-oriented programming (AOP) are that it improves the understandability and maintainability of software applications by modularizing crosscutting concerns. Before there is widespread adoption of AOP, developers need ...
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 ...
Towards a catalog of aspect-oriented refactorings
AOSD '05: Proceedings of the 4th international conference on Aspect-oriented software developmentIn this paper, we present a collection of aspect-oriented refactorings covering both the extraction of aspects from object-oriented legacy code and the subsequent tidying up of the resulting aspects. In some cases, this tidying up entails the ...
Comments