Table of Contents
Advances in Software Engineering
Volume 2010, Article ID 820103, 12 pages
http://dx.doi.org/10.1155/2010/820103
Research Article

Exploring the Eradication of Code Smells: An Empirical and Theoretical Perspective

1Department of IS and Computing, Brunel University, Uxbridge UB8 3PH, UK
2Department of Information and Software Systems, University of Westminster, Harrow Campus, London HA1 4TP, UK
3change-s.com, Westminster Borough, London, UK

Received 2 September 2010; Revised 31 December 2010; Accepted 31 December 2010

Academic Editor: Giulio Concas

Copyright © 2010 S. Counsell et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Linked References

  1. M. Fowler, Refactoring (Improving the Design of Existing Code), Addison Wesley, 1999.
  2. S. Counsell, Y. Hassoun, G. Loizou, and R. Najjar, “Common refactorings, a dependency graph and some code smells: an empirical study of java OSS,” in Proceedings of the 5th ACM-IEEE International Symposium on Empirical Software Engineering (ISESE '06), pp. 288–296, Rio de Janeiro, Brazil, September 2006. View at Publisher · View at Google Scholar
  3. S. Counsell, “Is the need to follow chains a possible deterrent to certain refactorings and an inducement to others?” in Proceedings of the 2nd International Conference on Research Challenges in Information Science (RCIS '08), pp. 111–122, Marrakech, Morocco, June 2008. View at Publisher · View at Google Scholar
  4. S. Demeyer, S. Ducasse, and O. Nierstrasz, “Finding refactorings via change metrics,” in Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '00), pp. 166–177, Minneapolis, Minn, USA, October 2000. View at Scopus
  5. J. Kerievsky, Refactoring to Patterns, Addison-Wesley, 2005.
  6. T. Mens and A. van Deursen, “Refactoring: emerging trends and open problems,” in Proceedings 1st International Workshop on REFactoring: Achievements, Challenges, and Effects (REFACE '03), Univ. of Waterloo, 2003.
  7. T. Mens and T. Tourwé, “A survey of software refactoring,” IEEE Transactions on Software Engineering, vol. 30, no. 2, pp. 126–139, 2004. View at Publisher · View at Google Scholar · View at Scopus
  8. R. Najjar, S. Counsell, G. Loizou, and K. Mannock, “The role of constructors in the context of refactoring object-oriented software,” in IEEE European Conference on Software Maintenance and Reengineering, pp. 111–120, Benevento, Italy, March 2003.
  9. W. Opdyke, Refactoring object-oriented frameworks, Ph.D. thesis, Univ. of Illinois, 1992.
  10. M. V. Mäntylä, J. Vanhanen, and C. Lassenius, “Bad smells—humans as code critics,” in Proceedings of the 20th IEEE International Conference on Software Maintenance (ICSM '04), pp. 399–408, Chicago, Ill, USA, September 2004. View at Scopus
  11. M. V. Mäntylä and C. Lassenius, “Subjective evaluation of software evolvability using code smells: an empirical study,” Empirical Software Engineering, vol. 11, no. 3, pp. 395–431, 2006. View at Publisher · View at Google Scholar · View at Scopus
  12. M. V. Mäntylä and C. Lassenius, “Drivers for software refactoring decisions,” in Proceedings of the 5th ACM-IEEE International Symposium on Empirical Software Engineering (ISCE '06), pp. 297–306, Rio de Janeiro, Brazil, September 2006. View at Publisher · View at Google Scholar · View at Scopus
  13. M. Mäntylä, Bad smells in software–a taxonomy and an empirical study, M.S. thesis, Helsinki University of Technology, Software Business and Engineering Institute, 2003.
  14. F. Khomh, S. Vaucher, Y.-G. Guéehéeneuc, and H. Sahraoui, “A bayesian approach for the detection of code and design smells,” in Proceedings 9th International Conference on Quality Software (QSIC '09), C. Byoung-ju, Ed., pp. 305–314, August 2009. View at Publisher · View at Google Scholar
  15. F. Khomh, M. Di Penta, and Y.-G. Guéhéneuc, “An exploratory study of the impact of code smells on software change-proneness,” in Proceedings 16th Working Conference on Reverse Engineering (WCRE '09), pp. 75–84, Antwerp, Belgium, October 2009. View at Publisher · View at Google Scholar
  16. S. Olbrich, D. S. Cruzes, V. Basili, and N. Zazworka, “The evolution and impact of code smells: a case study of two open source systems,” in Proceedings of the 3rd International Symposium on Empirical Software Engineering and Measurement (ESEM '09), pp. 390–400, Lake Buena Vista, Fla, USA, October 2009. View at Publisher · View at Google Scholar
  17. S. M. Olbrich, D. S. Cruzes, and D. I. K. Sjoberg, “Are all code smells harmful? A study of God Classes and Brain Classes in the evolution of three open source systems,” in Proceedings of IEEE International Conference on Software Maintenance (ICSM '10), Timisoara, Romania, September 2010. View at Publisher · View at Google Scholar
  18. W. Li and R. Shatnawi, “An empirical study of the bad smells and class error probability in the post-release object-oriented system evolution,” Journal of Systems and Software, vol. 80, no. 7, pp. 1120–1128, 2007. View at Publisher · View at Google Scholar · View at Scopus
  19. E. Van Emden and L. Moonen, “Java quality assurance by detecting code smells,” in Proceedings of the 9th Working Conference on Reverse Engineering (WCRE '02), Richmond, Va, USA, 2002.
  20. R. Marinescu, “Detection strategies: Metrics-based rules for detecting design flaws,” in Proceedings of the 20th IEEE International Conference on Software Maintenance (ICSM '04), pp. 350–359, Chicago, Ill, USA, September 2004. View at Scopus
  21. R. Marinescu, “Measurement and quality in object-oriented design,” in Proceedings of the 21st IEEE International Conference on Software Maintenance (ICSM '05), pp. 701–704, September 2005. View at Publisher · View at Google Scholar · View at Scopus
  22. H. Hamza, S. Counsell, G. Loizou, and T. Hall, “Code smell eradication and associated refactoring,” in Proceedings of the European Computing Conference (ECC '08), Malta, September 2008.
  23. S. Counsell and S. Swift, “Refactoring steps, java refactorings and empirical evidence,” in Proceedings of the 32nd Annual IEEE International Computer Software and Applications Conference, pp. 176–179, Turku, Finland, August 2008. View at Publisher · View at Google Scholar
  24. SourceMonitor Tool, http://www.campwoodsw.com/sourcemonitor.html.
  25. N. Fenton and S. Pfleeger, Software Metrics: A Rigorous and Practical Approach, International Thomson Press, London, UK, 2002.
  26. S. R. Chidamber and C. F. Kemerer, “Metrics suite for object oriented design,” IEEE Transactions on Software Engineering, vol. 20, no. 6, pp. 476–493, 1994. View at Publisher · View at Google Scholar · View at Scopus
  27. S. McConnell, Code Complete: A Practical Handbook of Software Construction, Microsoft Press, 2004.
  28. M. Fowler, Patterns of Enterprise Application Architecture, Addison Wesley, 2003.
  29. S. Counsell, S. Swift, and J. Crampton, “The interpretation and utility of three cohesion metrics for object-oriented design,” ACM Transactions on Software Engineering and Methodology, vol. 15, no. 2, pp. 123–149, 2006. View at Publisher · View at Google Scholar · View at Scopus
  30. R. Wheeldon and S. Counsell, “Power law distributions in class relationships,” in Proceedings of the 3rd IEEE International Workshop on Source Code Analysis and Manipulation, pp. 45–54, Amsterdam, The Netherlands, 2003.
  31. B. Pietrzak and B. Walter, “Leveraging code smell detection with inter-smell relations,” in Proceedings of the 7th International Conference on Extreme Programming and Agile Processes in Software Engineering (XP '06), vol. 4044 of Lecture Notes in Computer Science, pp. 75–84, Oulu, Finland, June 2006.
  32. C. F. Kemerer and S. Slaughter, “An empirical approach to studying software evolution,” IEEE Transactions on Software Engineering, vol. 25, no. 4, pp. 493–509, 1999. View at Google Scholar · View at Scopus
  33. T. T. Dinh-Trong and J. M. Bieman, “The FreeBSB project: a replication case study of open source development,” IEEE Transactions on Software Engineering, vol. 31, no. 6, pp. 481–494, 2005. View at Publisher · View at Google Scholar · View at Scopus