This Article 
 Bibliographic References 
 Add to: 
Refactoring the Aspectizable Interfaces: An Empirical Assessment
October 2005 (vol. 31 no. 10)
pp. 819-832
Aspect Oriented Programming aims at addressing the problem of the crosscutting concerns, i.e., those functionalities that are scattered among several modules in a given system. Aspects can be defined to modularize such concerns. In this work, we focus on a specific kind of crosscutting concerns, the scattered implementation of methods declared by interfaces that do not belong to the principal decomposition. We call such interfaces aspectizable. All the aspectizable interfaces identified within a large number of classes from the Java Standard Library and from three Java applications have been automatically migrated to aspects. To assess the effects of the migration on the internal and external quality attributes of these systems, we collected a set of metrics and we conducted an empirical study, in which some maintenance tasks were executed on the two alternative versions (with and without aspects) of the same system. In this paper, we report the results of such a comparison.

[1] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin, “Aspect Oriented Programming,” Proc. 11th European Conf. Object Oriented Programming (ECOOP), 1997.
[2] P. Tonella and M. Ceccato, “Migrating Interface Implementation to Aspect Oriented Programming,” Proc. Int'l Conf. Software Maintenance (ICSM), pp. 220-229, Sept. 2004.
[3] B. Bruegge and A.H. Dutoit, Object-Oriented Software Engineering: Using UML, Patterns and Java, second ed. Prentice-Hall, 2003.
[4] S. Hanenberg and R. Unland, “Concerning AOP and Inheritance,” Proc. Workshop Aspect-Orientation, 2001.
[5] S. Hanenberg and R. Unland, “Roles and Aspects: Similarities, Differences, And Synergetic Potential,” Proc. Eighth Int'l Conf. Object-Oriented Information Systems, pp. 507-520, Sept. 2002.
[6] J. Hannemann, G.C. Murphy, and G. Kiczales, “Role-Based Refactoring of Crosscutting Concerns,” Proc. Fourth Int'l Conf. Aspect-Oriented Software Development (AOSD '05), pp. 135-146, 2005.
[7] I. Kiselev, Aspect-Oriented Programming with AspectJ. Indianapolis, In.: Sams Publishing, 2002.
[8] M. Fowler, Refactoring: Improving the Design Of Existing Code. Addison-Wesley, 1999.
[9] J. Cordy, T. Dean, A. Malton, and K. Schneider, “Source Transformation in Software Engineering Using the TXL Transformation System,” Information and Software Technology, vol. 44, no. 13, pp. 827-837, 2002.
[10] I.D. Baxter, A. Yahin, L. Moura, M. Sant'Anna, and L. Bier, “Clone Detection Using Abstract Syntax Trees,” Proc. Int'l Conf. Software Maintenance, pp. 368-377, Nov. 1998.
[11] A. Lakhotia, J. Li, A. Walenstein, and Y. Yang, “Towards a Clone Detection Benchmark Suite and Results Archive,” Proc. Int'l Workshop Program Comprehension (IWPC), pp. 285-287, May 2003.
[12] J. Mayrand, C. Leblanc, and E. Merlo, “Experiment on the Automatic Detection of Function Clones in a Software System Using Metrics,” Proc. Int'l Conf. Software Maintenance, pp. 244-253, Nov. 1996.
[13] V. Basili, G. Caldiera, and D.H. Rombach, The Goal Question Metric Paradigm, Encyclopedia of Software Engineering. John Wiley and Sons, 1994.
[14] L. Briand, J. Daly, and J. Wuest, “A Unified Framework for Cohesion Measurement in Object-Oriented Systems,” Empirical Software Eng., vol. 3, no. 1, pp. 65-117, 1998.
[15] L. Briand, J. Daly, and J. Wuest, “A Unified Framework for Coupling Measurement in Object-Oriented Systems,” IEEE Trans. Software Eng., vol. 25, no. 1, pp. 91-121, Jan./Feb. 1999.
[16] J. Hannemann and G. Kiczales, “Design Pattern Implementation in Java and AspectJ,” Proc. 17th Ann. ACM Conf. Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pp. 161-173, Nov. 2002.
[17] P.L. Tarr, H. Ossher, W.H. Harrison, and S.M. Sutton Jr., “N Degrees of Separation: Multi-Dimensional Separation of Concerns,” Proc. Int'l Conf. Software Eng. (ICSE), pp. 107-119, May 1999.
[18] E.L.A. Baniassad, G.C. Murphy, C. Schwanninger, and M. Kircher, “Managing Crosscutting Concerns during Software Evolution Tasks: An Inquisitive Study,” Proc. First Int'l Conf. Aspect-Oriented Software Development (AOSD), pp. 120-126, Apr. 2002.
[19] A. Rashid and R. Chitchyan, “Persistence as an Aspect,” Proc. Second Int'l Conf. Aspect-Oriented Software Development, pp. 120-129, 2003.
[20] S. Soares, E. Laureano, and P. Borba, “Implementing Distribution and Persistence Aspects with AspectJ,” Proc. 17th Ann. ACM Conf. Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), pp. 174-190, Nov. 2002.
[21] J. Hannemann and G. Kiczales, “Overcoming the Prevalent Decomposition of Legacy Code,” Proc. Workshop Advanced Separation of Concerns at the Int'l Conf. Software Eng. (ICSE), 2001.
[22] D. Janzen and K.D. Volder, “Navigating and Querying Code without Getting Lost,” Proc. Second Int'l Conf. Aspect-Oriented Software Development (AOSD), pp. 178-187, Mar. 2003.
[23] N. Loughran and A. Rashid, “Mining Aspects,” Proc. Workshop Early Aspects: Aspect-Oriented Requirements Eng. and Architecture Design (with AOSD), Apr. 2002.
[24] M.P. Robillard and G.C. Murphy, “Concern Graphs: Finding and Describing Concerns Using Structural Program Dependencies,” Proc. 24th Int'l Conf. Software Eng. (ICSE), pp. 406-416, May 2002.
[25] P. Borba and S. Soares, “Refactoring and Code Generation Tools for AspectJ,” Proc. Workshop Tools for Aspect-Oriented Software Development (with OOPSLA), Nov. 2002.
[26] A. van Deursen, M. Marin, and L. Moonen, “Aspect Mining and Refactoring,” Proc. First Int'l Workshop Refactoring: Achievements, Challenges, Effects (REFACE), Nov. 2003.
[27] W.G. Griswold, J.J. Yuan, and Y. Kato, “Exploiting the Map Metaphor in a Tool for Software Evolution,” Proc. 2001 Int'l Conf. Software Eng. (ICSE), pp. 265-274, Mar. 2001.
[28] S. Breu and J. Krinke, “Aspect Mining Using Event Traces,” Proc. Conf. Automated Software Eng. (ASE 2004), pp. 310-315, Sept. 2004.
[29] P. Tonella and M. Ceccato, “Aspect Mining through the Formal Concept Analysis of Execution Traces,” Proc. 11th Working Conf. Reverse Eng. (WCRE), pp. 112-121, Nov. 2004.
[30] T. Tourwe and K. Mens, “Mining Aspectual Views Using Formal Concept Analysis,” Proc. Fourth IEEE Int'l Workshop Source Code Analysis and Manipulation (SCAM 2004), pp. 97-106, Sept. 2004.
[31] M. Bruntink, A. van Deursen, T. Tourwé, and R. van Engelen, “An Evaluation of Clone Detection Techniques for Identifying Crosscutting Concerns,” Proc. Int'l Conf. Software Maintenance (ICSM), pp. 200-209, Sept. 2004.
[32] D. Shepherd, E. Gibson, and L. Pollock, “Design and Evaluation of an Automated Aspect Mining Tool,” Proc. Mid-Atlantic Student Workshop Programming Languages and Systems, Apr. 2004.
[33] M. Marin, A. van Deursen, and L. Moonen, “Identifying Aspects Using Fan-In Analysis,” Proc. 11th IEEE Working Conf. Reverse Eng. (WCRE 2004), Nov. 2004.
[34] M. Marin, “Refactoring Jhotdraw's Undo Concern to Aspectj,” Proc. First Workshop Aspect Reverse Eng. (WARE2004), Nov. 2004.
[35] S. Hanenberg, C. Oberschulte, and R. Unland, “Refactoring of Aspect-Oriented Software,” Proc. Fourth Ann. Int'l Conf. Object-Oriented and Internet-Based Technologies, Concepts, and Applications for a Networked World (Net. ObjectDays), pp. 19-35, Sept. 2003.
[36] K. Gybels and A. Kellens, “An Experiment in Using Inductive Logic Programming to Uncover Pointcuts,” Proc. First European Interactive Workshop Aspects in Software, 2004.
[37] T. Tourwé, A. Kellens, W. Vanderperren, and F. Vannieuwenhuyse, “Inductively Generated Pointcuts to Support Refactoring to Aspects,” Proc. Software Eng. Properties of Languages for Aspect Technology (SPLAT) Workshop at AOSD '04, 2004.
[38] D. Binkley, M. Ceccato, M. Harman, F. Ricca, and P. Tonella, “Automated Refactoring of Object Oriented Code into Aspects,” Proc. Int'l Conf. Software Maintenance (ICSM), pp. 27-36, Sept. 2005.

Index Terms:
Index Terms- Aspect oriented programming, refactoring, program transformations, empirical studies.
Paolo Tonella, Mariano Ceccato, "Refactoring the Aspectizable Interfaces: An Empirical Assessment," IEEE Transactions on Software Engineering, vol. 31, no. 10, pp. 819-832, Oct. 2005, doi:10.1109/TSE.2005.115
Usage of this product signifies your acceptance of the Terms of Use.