On the Support and Application of Macro-Refactorings for Crosscutting Concerns

  • Bruno C. da Silva UFRGS
  • Eduardo Figueiredo Lancaster University
  • Alessandro Garcia PUC-Rio
  • Daltro J. Nunes UFRGS

Resumo


Crosscutting concerns hinder software stability and reuse and, hence, refactorings have been proposed to modularise them using aspect-oriented programming technology. However, refactoring of crosscutting concerns is challenging and time-consuming because it involves many inter-dependent micro-refactorings. It may also be a repetitive task as recent studies have pointed out that most crosscutting concerns share a limited number of recurring shape patterns. This paper presents a family of macro-refactorings for modularising crosscutting concerns which share similar forms and patterns. It also proposes a complementary set of change impact algorithms which support designers on the decision whether to apply concern refactoring. We evaluate our technique by measuring the impact of refactoring 22 crosscutting concerns in two applications from different domains.

Referências

Binkley, D. et al. (2006). Tool-Supported Refactoring of Existing Object-Oriented Code into Aspects. IEEE Transactions on SW. Eng., Los Alamitos, USA, v.32, p.698-717.

Eaddy, M. et al. (2008). Do Crosscutting Concerns Cause Defects? IEEE Transactions on Software Engineering, 34(4), pp. 497-515.

Figueiredo, E. et al. (2008). "Evolving Software Product Lines with Aspects: An Empirical Study on Design Stability". In: Proc. of the 30th ICSE, pp. 261-270. Leipzig, Germany, 10-18 May.

Figueiredo, E. et al.. (2009). "Crosscutting Patterns and Design Stability: an Exploratory Analysis". In: Proc. of the 17th ICPC, Vancouver, Canada.

Filho, F. et al. (2006). "Exceptions and Aspects: the Devil is in the Details". In: Proc. of the 14th FSE, New York, USA. ACM, p.152-162.

Fowler, M.; Beck, K.; Brant, J.; Opdyke, W. and Roberts, D. (1999). Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional.

Gamma, E. et al. (1995). Design Patterns: Elements of Reusable Object-Oriented Software. Boston, MA, USA: Addison-Wesley Longman Publishing.

Garcia, V. et al. (2004). "Manipulating crosscutting concerns". In: Latin American Conference on Patterns Languages of Programming (SugarLoafPlop'04).

Garcia, A. et al. (2005). "Modularizing Design Patterns with Aspects: A Quantitative Study". In: 4th AOSD, Chicago, USA, 14-18 March 2005.

Greenwood, P. et al. (2007). "On the Impact of Aspectual Decompositions on Design Stability: An Empirical Study". Proc. ECOOP. Berlin, Germany.

Hanenberg, S.; Oberschulte, C. and Unland, R. (2003). "Refactoring of Aspect-Oriented Software". In: Net.ObjectDays Conference (NODE'03).

Hannemann, J.; Murphy, G.; Kiczales, G. (2005). "Role-based refactoring of crosscutting concerns". In: 4th AOSD, New York, USA. ACM, p.135-146.

Iwamoto, M. and Zhao, J. (2003). "Refactoring Aspect-Oriented Programs". In: Int'l. Workshop on Aspect-Oriented Modeling at UML'03.

Kiczales, G. et al. (1997). "Aspect-Oriented Programming". Proc. of the European Conference on Object-Oriented Programming (ECOOP), pp. 220-242.

Marin, M.; Moonen, L. and Deursen, A. (2005). An Approach to Aspect Refactoring Based on Crosscutting Concern Types. Software Engineering Notes, v.30, n.4, p.1-5.

Mens, T.; Tourwé, T. (2004). A Survey of Software Refactoring. IEEE Transactions on Software Engineering, Piscataway, NJ, USA, v.30, n.2, p.126-139.

Monteiro, M. and Fernandes, J. (2006). Towards a Catalogue of Refactorings and Code Smells for Aspectj. Transactions on Aspect Oriented Software Development (TAOSD), Lecture Notes in Computer Science, n.3880, p.214-258.

Murphy-Hill, E.; Parnin, C. and Black, A. P. (2009). "How We Refactor, and How We Know It". In Proc. of the 14th Int'l Conf. on Software Engineering, New York, USA.

Robillard, M. and Murphy, G. (2007). Representing Concerns in Source Code. Transactions on Software Engineering and Methodology (TOSEM), v. 16.

Sant'anna, C.; Garcia, A.; Chavez, C.; Lucena, C. and Staa, A. (2003). "On the Reuse and Maintenance of Aspect-Oriented Software: an assessment framework". In: XVII Brazilian Symposium on Software Engineering.

Silva, B.; Figueiredo, E.; Garcia, A. and Nunes, D. (2009). Refactoring of Crosscutting Concerns with Metaphor-Based Heuristics. Electronic Notes on Theoretical Computer Science, v.233, p.105-125.

Silva, B.; Figueiredo, E.; Garcia, A. and Nunes, D. (2009). Macro-Refactorings: Evaluation. Jun/2009. [link]
Publicado
09/09/2009
SILVA, Bruno C. da; FIGUEIREDO, Eduardo; GARCIA, Alessandro; NUNES, Daltro J.. On the Support and Application of Macro-Refactorings for Crosscutting Concerns. In: SIMPÓSIO BRASILEIRO DE COMPONENTES, ARQUITETURAS E REUTILIZAÇÃO DE SOFTWARE (SBCARS), 3. , 2009, Natal/RN. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2009 . p. 95-108. DOI: https://doi.org/10.5753/sbcars.2009.24104.