Using Software Quality Attributes to Classify Refactoring to Patterns

Refactoring to patterns allows software designers to safely move their designs towards specific design patterns by applying multiple low-level refactorings. There are many different refactoring to pattern techniques, each with a particular purpose and a varying effect on software quality attributes. Thus far, software designers do not have a clear means to choose refactoring to pattern techniques to improve certain quality attributes. This paper takes the first step towards a classification of refactoring to pattern techniques based on their measurable effect on software quality attributes. This classification helps software designers in selecting the appropriate refactoring to pattern techniques that will improve the quality of their design based on their design objectives. It also enables them to predict the quality drift caused by using specific refactoring to pattern techniques.

[1]  Roger Pressman,et al.  Software Engineering: A Practitioner's Approach, 7Th Edition , 2009 .

[2]  Mei-Hwa Chen,et al.  An empirical study on object-oriented metrics , 1999, Proceedings Sixth International Software Metrics Symposium (Cat. No.PR00403).

[3]  Ayse Basar Bener,et al.  An expert system for determining candidate software classes for refactoring , 2009, Expert Syst. Appl..

[4]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[5]  Lionel C. Briand,et al.  A Unified Framework for Cohesion Measurement in Object-Oriented Systems , 2004, Empirical Software Engineering.

[6]  Iman Hemati Moghadam,et al.  Automated Refactoring for Testability , 2011, 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops.

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

[8]  Anastas Mishev,et al.  Correlation between Object-Oriented Metrics and Refactoring , 2010, ICT Innovations.

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

[10]  Richard H. Carver,et al.  An Evaluation of the MOOD Set of Object-Oriented Software Metrics , 1998, IEEE Trans. Software Eng..

[11]  Lionel C. Briand,et al.  A Precise Method-Method Interaction-Based Cohesion Metric for Object-Oriented Classes , 2012, TSEM.

[12]  Fernando Brito e Abreu,et al.  Strengthening Refactoring: Towards Software Evolution with Quantitative and Experimental Grounds , 2009, 2009 Fourth International Conference on Software Engineering Advances.

[13]  Alberto Sillitti,et al.  Does Refactoring Improve Reusability? , 2006, ICSR.

[14]  Mohammad Alshayeb,et al.  The Impact of Refactoring to Patterns on Software Quality Attributes , 2011 .

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

[16]  Standard Glossary of Software Engineering Terminology , 1990 .

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

[18]  Jan Verelst,et al.  Refactoring - improving coupling and cohesion of existing code , 2004, 11th Working Conference on Reverse Engineering.

[19]  Arie van Deursen,et al.  An empirical study into class testability , 2006, J. Syst. Softw..

[20]  Diomidis Spinellis,et al.  Refactoring--Does It Improve Software Quality? , 2007, Fifth International Workshop on Software Quality (WoSQ'07: ICSE Workshops 2007).

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

[22]  Tibor Gyimóthy,et al.  Empirical validation of object-oriented metrics on open source software for fault prediction , 2005, IEEE Transactions on Software Engineering.

[23]  Audris Mockus,et al.  Refactoring for changeability: a way to go? , 2005, 11th IEEE International Software Metrics Symposium (METRICS'05).

[24]  Sallie M. Henry,et al.  Object-oriented metrics that predict maintainability , 1993, J. Syst. Softw..

[25]  Jan Verelst,et al.  Does the "Refactor to Understand" reverse engineering pattern improve program comprehension? , 2005, Ninth European Conference on Software Maintenance and Reengineering.

[26]  Takeo Imai,et al.  A quantitative evaluation of maintainability enhancement by refactoring , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[27]  Victor R. Basili,et al.  A Validation of Object-Oriented Design Metrics as Quality Indicators , 1996, IEEE Trans. Software Eng..

[28]  Fatma Dandashi,et al.  A method for assessing the reusability of object-oriented code using a validated set of automated measurements , 2002, SAC '02.

[29]  Bart Du Bois,et al.  Describing the impact of refactoring on internal program quality , 2003 .

[30]  Lionel C. Briand,et al.  A Unified Framework for Coupling Measurement in Object-Oriented Systems , 1999, IEEE Trans. Software Eng..

[31]  Lionel C. Briand,et al.  Exploring the relationships between design measures and software quality in object-oriented systems , 2000, J. Syst. Softw..

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

[33]  Timothy Lethbridge,et al.  Object-oriented software engineering - practical software development using UML and Java , 2002 .