Empirical taxonomy of refactoring methods for aspect‐oriented programming

Refactoring improves software quality by improving the design of existing code through changing its internal structure while preserving its behavior. Improving one quality attribute may impair other quality attributes. A number of refactoring methods were proposed specifically for aspect‐oriented systems. However, there are no guidelines to help aspect‐oriented software designer decide which refactoring methods to apply to optimize a software system with regard to certain design goals. In this paper, we propose a taxonomy/classification of refactoring methods for aspect‐oriented programming based on their measurable effect on software quality attributes using six open‐source aspect‐oriented software systems. Copyright © 2011 John Wiley & Sons, Ltd.

[1]  T. Longstaff,et al.  Quality Attributes , 1995 .

[2]  Lech Madeyski,et al.  Impact of aspect-oriented programming on software development efficiency and design quality: an empirical study , 2007, IET Softw..

[3]  Arie van Deursen,et al.  Aspect Mining and Refactoring , 2003 .

[4]  Pornsiri Muenchaisri,et al.  Bad-Smell Metrics for Aspect-Oriented Software , 2007, 6th IEEE/ACIS International Conference on Computer and Information Science (ICIS 2007).

[5]  João M. Fernandes,et al.  Towards a catalog of aspect-oriented refactorings , 2005, AOSD '05.

[6]  Mark Harman,et al.  Automated refactoring of object oriented code into aspects , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[7]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[8]  A. Ghafoor,et al.  Impact of aspect-orientation on the reliability of decentralized multi-agent system , 2008, 2008 4th International Conference on Emerging Technologies.

[9]  Gregor Kiczales,et al.  Role-based refactoring of crosscutting concerns , 2005, AOSD '05.

[10]  Mohammad Alshayeb,et al.  Empirical investigation of refactoring effect on software quality , 2009, Inf. Softw. Technol..

[11]  Siobhán Clarke,et al.  An evaluation of aspect-oriented programming for Java-based real-time systems development , 2004, Seventh IEEE International Symposium onObject-Oriented Real-Time Distributed Computing, 2004. Proceedings..

[12]  Thomas Ledoux,et al.  Aspect-Oriented Software Development , 2003 .

[13]  Jan Wloka,et al.  Tool-supported refactoring of aspect-oriented programs , 2008, AOSD.

[14]  Shahid Nazir Bhatti,et al.  Why quality?: ISO 9126 software quality metrics (Functionality) support by UML suite , 2005, SOEN.

[15]  Mourad Badri,et al.  A Cohesion Measure for Aspects , 2006, J. Object Technol..

[16]  Paulo Borba,et al.  Deriving refactorings for AspectJ , 2005, AOSD '05.

[17]  Contents , 2008, Cortex.

[18]  Carlos José Pereira de Lucena,et al.  On the modularity assessment of aspect-oriented multiagent architectures: a quantitative study , 2008, Int. J. Agent Oriented Softw. Eng..

[19]  Zhao Jianjun,et al.  Towards A Metrics Suite for Aspect-Oriented Software (ソフトウェア工学 研究報告 テーマ:学生セッションおよび一般) , 2002 .

[20]  Mariano Ceccato,et al.  Refactoring the aspectizable interfaces: an empirical assessment , 2005, IEEE Transactions on Software Engineering.

[21]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.

[22]  João M. Fernandes,et al.  Towards a Catalogue of Refactorings and Code Smells for AspectJ , 2006, LNCS Trans. Aspect Oriented Softw. Dev..

[23]  Jianjun Zhao Measuring Coupling in Aspect-Oriented Systems , 2004 .

[24]  Zhao Jianjun,et al.  Refactoring Aspect - Oriented Programs , 2004 .

[25]  Mohammad Alshayeb,et al.  A Classification of Refactoring Methods Based on Software Quality Attributes , 2011 .

[26]  Pornsiri Muenchaisri,et al.  Defining and Detecting Bad Smells of Aspect-Oriented Software , 2007, 31st Annual International Computer Software and Applications Conference (COMPSAC 2007).

[27]  Cláudio Sant'Anna,et al.  Towards a unified coupling framework for measuring aspect-oriented programs , 2006, SOQUA '06.

[28]  Carlos José Pereira de Lucena,et al.  On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework , 2003, SBES.

[29]  João M. Fernandes,et al.  Refactoring a Java code base to AspectJ: an illustrative example , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[30]  Ramnivas Laddad Aspect Oriented Refactoring , 2008 .

[31]  Carlos José Pereira de Lucena,et al.  Quantifying the Effects of Aspect-Oriented Programming: A Maintenance Study , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[32]  Barbara Staudt Lerner,et al.  A Basis for AspectJ Refactoring , 2010 .

[33]  Chris F. Kemerer,et al.  Metrics for object-oriented software design , 1994 .

[34]  Jan Hannemann Aspect-Oriented Refactoring : Classification and Challenges , 2006 .

[35]  Shimon Rura Refactoring Aspect-Oriented Software , 2003 .

[36]  Tao Xie,et al.  Clamp: automated joinpoint clustering and pointcut mining in aspect-oriented refactoring , 2006, SOEN.

[37]  Miguel P. Monteiro,et al.  CATALOGUE OF REFACTORINGS FOR ASPECTJ , 2004 .

[38]  Reidar Conradi,et al.  A case study on building COTS-based system using aspect-oriented programming , 2005, SAC '05.

[39]  Stefan Hanenberg,et al.  Refactoring of Aspect-Oriented Software , 2003 .

[40]  Joshua Kerievsky,et al.  Refactoring to Patterns , 2004, XP/Agile Universe.

[41]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[42]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[43]  Mark Harman,et al.  Tool-Supported Refactoring of Existing Object-Oriented Code into Aspects , 2006, IEEE Transactions on Software Engineering.

[44]  Mariano Ceccato,et al.  Measuring the Effects of Software Aspectization , 2004 .

[45]  Miguel P. Monteiro,et al.  Refactorings to evolve object-oriented systems with aspect-oriented concepts , 2005 .

[46]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.