Skip to main content
Log in

The Impact of Refactoring to Patterns on Software Quality Attributes

  • Research Article – Computer Engineering and Computer Science
  • Published:
Arabian Journal for Science and Engineering Aims and scope Submit manuscript

Abstract

The search for techniques to improve software quality and achieve robust, reliable, and maintainable software is ongoing. Refactoring, an approach that improves the internal structure of software without affecting its external behavior, is one method that aims to achieve better quality. Refactoring to patterns is another. The goal of this paper is to investigate whether refactoring to patterns improves software quality. This is done empirically by examining the metric values of external quality attributes for different software systems before and after refactoring to patterns is applied. We found no consistent improvement trends in the software quality attributes. This is because each refactoring to patterns technique has a particular purpose and effect, and hence affects software quality attributes differently.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Opdyke, W.: Refactoring: A Program Restructuring Aid in Designing Object-Oriented Application Frameworks. PhD Thesis, Univ. of Illinois at Urbana-Champaign (1992)

  2. Wake W.: Refactoring Workbook. Addison-Wesley, Reading (2003)

    Google Scholar 

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

    Google Scholar 

  4. Gamma E., Helm R., Johnson R., Vlissides J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, Reading (1994)

    Google Scholar 

  5. Kerievsky, J.: Refactoring to patterns. In: Addison-Wesley Signature Series. Addison-Wesley, Reading (2004)

  6. Standard 1061-1992 for a Software Quality Metrics Methodology (1992)

  7. ISO/IEC9126, 9126 Standard, Information technology—Software product evaluation—Quality characteristics and Guidelines for Their Use (1991)

  8. Pressman R.: Software Engineering: A Practitioner’s Approach, 6th edn. McGraw-Hill, NY (2005)

    Google Scholar 

  9. Alshayeb, M.; Li, W.; Graves, S.: An Empirical Study of Refactoring, New Design, and Error-fix efforts in extreme programming. In: Proceedings of the 5th World Multiconference on Systemics, Cybernetics and Informatics (SCI 2001), Orlando, FL (2001)

  10. Mens T., Tourwe T.: A Survey of Software Refactoring. IEEE Trans. Softw. Eng. 30, 126–139 (2004)

    Article  Google Scholar 

  11. Coad P.: Object-oriented patterns. Commun. ACM 35, 152–159 (1992)

    Article  Google Scholar 

  12. Coad P., North D., Mayfield M.: Object Models: Patterns, Strategies, and Applications. Prentice-Hall, Englewood Cliffs (1995)

    Google Scholar 

  13. Schmid H.: Creating applications from components: a manufacturing framework design. IEEE Softw. 13, 67–75 (1996)

    Article  Google Scholar 

  14. Pree, W.: Meta patterns: a means for capturing the essentials of reusable object-oriented design. In: Proceedings of the European Conference of Object Oriented Programming, ECOOP’94, Bologna, Italy, pp. 150–162 July, 1994

  15. Pree W.: Design Patterns for Object-Oriented Software Development. Addison-Wesley, Reading (1995)

    MATH  Google Scholar 

  16. Pree, W.: Framework Patterns: SIGS Books & Multimedia (1996)

  17. Buschmann F., Meunier R., Rohnert H., Sommerlad P., Stal M.: Pattern-Oriented Software Architecture: A Pattern System. Addison-Wesley, Reading (1996)

    Google Scholar 

  18. Muraki, T.; Saeki, M.: Metrics for applying GOF design patterns in refactoring processes. In: Proceedings of the 4th International Workshop on Principles of Software Evolution, Sept. 2001

  19. Cinneide, M.: Automated refactoring to introduce design patterns. In: Proceedings of the International Conference on Software Engineering, June 2000

  20. Usha, K.; Poonguzhali, N.; Kavitha, E.: A quantitative approach for evaluating the effectiveness of refactoring in software development process. In: International Conference on Methods and Models in Computer Science, pp. 1–7 (2009)

  21. Tsantalis, N.; Chatzigeorgiou, A.: Identification of extract method refactoring opportunities. In: European Conference on Software Maintenance and Reengineering, pp. 119–128 (2009)

  22. Tsantalis N., Chatzigeorgiou A.: Identification of Move Method Refactoring Opportunities. IEEE Trans. Softw. Eng. 36, 347–367 (2009)

    Article  Google Scholar 

  23. Geppert, B.; Mockus, A.; Robler, F.: Refactoring for changeability: a way to go. In: Proceedings of 11th IEEE International Software Metrics Symposium (METRICS’05) (2005)

  24. Wilking D., Khan U., Kowalewski S.: An empirical evaluation of refactoring. e. Inf. Softw. Eng. J. 1, 27–42 (2007)

    Google Scholar 

  25. Bois, B.; Demeyer, S.; Verelst, J.: Does the “Refactor to Understand” Reverse Engineering Pattern Improve Program Comprehension? In: Proceedings of the 9th European Conference on Software Maintenance and Reengineering (CSMR’05), pp. 334–343 (2005)

  26. Alshayeb M.: Empirical Investigation of Refactoring Effect on Software Quality. Inf. Softw. Technol. J. 51, 1319–1326 (2009)

    Article  Google Scholar 

  27. Bois, B.D.; Mens, T.: Describing the impact of refactoring on internal program quality. In: International Workshop on Evolution of Large-Scale Industrial Software Applications (ELISA), Sept. 2003

  28. Kataoka, Y.; Imai, T.; Andou, H.; Fukaya, T.: A quantitative evaluation of maintainability enhancement by refactoring. In: Proceedings of the IEEE International Conference on Software Maintenance (2002)

  29. Stroggylos, K.; Spinellis, D.: Refactoring—does it improve software quality? In: Proceedings of the 5th International Workshop on Software Quality (WoSQ’07: ICSE Workshops), pp. 10–16 (2007)

  30. Moser, R.; Sillitti, A.; Abrahamsson, P.; Succi, G.: Does refactoring improve reusability? In: 9th International Conference on Software Reuse (ICSR’06), pp. 287–297 (2006)

  31. Reddy, K.N.; Rao, A.A.: A quantitative evaluation of software quality enhancement by refactoring using dependency oriented complexity metrics. In: Proceedings of the Second International Conference on Emerging Trends in Engineering and Technology, pp. 1011–1018 (2009)

  32. Higo, Y.; Matsumoto, Y.; Kusumoto, S.; Inoue, K.: Refactoring effect estimation based on complexity metrics. In: 19th Australian Conference on Software Engineering, pp. 219–228 (2008)

  33. Masuda, G.; Sakamoto, N.; Ushijima, K.: Redesigning of an Existing Software using Design Patterns. In: Proceedings of the International Symposium on Principles of Software Evolution, pp. 165–169, Nov. 2000

  34. Bois, B.; Demeyer, S.; Verelst, J.: Refactoring—improving coupling and cohesion of existing code. In: Proceedings of the 11th Working Conference on Reverse Engineering (WCRE’04), pp. 144–151 (2004)

  35. Dandashi, F.: A Method for Assessing the Reusability of Object-Oriented Code Using a Validated Set of Automated Measurements. In: Proceedings of the ACM Symposium on Applied Computing, pp. 997–1003 (2002)

  36. Bruntink M., Deursen A.: An empirical study into class testability. J. Syst. Softw. 79, 1219–1232 (2006)

    Article  Google Scholar 

  37. IEEE, Std. 610.12—IEEE Standard Glossary of Software Engineering Terminology: The Institute of Electrical and Electronics Engineers (1991)

  38. Metamata. Metamata Metrics Tool. http://www.metamata.com

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Mohammad Alshayeb.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Alshayeb, M. The Impact of Refactoring to Patterns on Software Quality Attributes. Arab J Sci Eng 36, 1241–1251 (2011). https://doi.org/10.1007/s13369-011-0111-3

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s13369-011-0111-3

Keywords

Navigation