Case study on software refactoring tactics

Case study on software refactoring tactics

For access to this article, please select a purchase option:

Buy article PDF
(plus tax if applicable)
Buy Knowledge Pack
10 articles for $120.00
(plus taxes if applicable)

IET members benefit from discounts to all IET publications and free access to E&T Magazine. If you are an IET member, log in to your account and the discounts will automatically be applied.

Learn more about IET membership 

Recommend Title Publication to library

You must fill out fields marked with: *

Librarian details
Your details
Why are you recommending this title?
Select reason:
IET Software — Recommend this title to your library

Thank you

Your recommendation has been sent to your librarian.

Refactorings might be done using two different tactics: root canal refactoring and floss refactoring. Root canal refactoring is to set aside an extended period specially for refactoring. Floss refactoring is to interleave refactorings with other programming tasks. However, no large-scale case study on refactoring tactics is available. To this end, the authors carry out a case study to investigate the following research questions. (i) How often are root canal refactoring and floss refactoring employed, respectively? (ii) Are some kinds of refactorings more likely than others to be applied as floss refactorings or root canal refactorings? (iii) Do engineers employing both tactics have obvious bias to or against either of the tactics? They analyse the usage data information collected by Eclipse usage data collector. Results suggest that about 14% of refactorings are root canal refactorings. These findings reconfirm the hypothesis that, in general, floss refactoring is more common than root canal refactoring. The relative popularity of root canal refactoring, however, is much higher than expected. They also find that some kinds of refactorings are more likely than others to be performed as root canal refactorings. Results also suggest that engineers who have explored both tactics obviously tended towards root canal refactoring.


    1. 1)
      • 1. Mens, T., Touwe, T.: ‘A survey of software refactoring’, IEEE Trans. Softw. Eng., 2004, 30, (2), pp. 126139 (doi: 10.1109/TSE.2004.1265817).
    2. 2)
      • 2. Opdyke, W.F.: ‘Refactoring object-oriented frameworks’. PhD thesis, University of Illinois at Urbana-Champaign, 1992.
    3. 3)
      • 3. Murphy-Hill, E., Parnin, C., Black, A.P.: ‘How we refactor, and how we know it’. Proc. 31st Int. Conf. Software Engineering, 2009, pp. 287297.
    4. 4)
      • 4. Murphy-Hill, E., Black, A.P.: ‘Refactoring tools: fitness for purpose’, IEEE Softw., 2008, 25, (5), pp. 3844 (doi: 10.1109/MS.2008.123).
    5. 5)
      • 5. Fowler, M., Beck, K., Brant, J., Opdyke, W., Roberts, D.: ‘Refactoring: improving the design of existing code’ (Addison Wesley Professional, 1999).
    6. 6)
      • 6. Wake, W.C.: ‘Refactoring workbook’ (Addison Wesley, 2003).
    7. 7)
      • 7. Kamiya, T., Kusumoto, S., Inoue, K.: ‘CC Finder: a multi-linguistic token based code clone detection system for large scale source code’, IEEE Trans. Softw. Eng., 2002, 28, (6), pp. 654670 (doi: 10.1109/TSE.2002.1019480).
    8. 8)
      • 8. Tsantalis, N., Chatzigeorgiou, A.: ‘Identification of move method refactoring opportunities’, IEEE Trans. Softw. Eng., 2009, 99, (RapidPosts), pp. 347367 (doi: 10.1109/TSE.2009.1).
    9. 9)
      • 9. Bavota, G., De Lucia, A., Oliveto, R.: ‘Identifying extract class refactoring opportunities using structural and semantic cohesion measures’, J. Syst. Softw., 2011, 84, (3), pp. 397414 (doi: 10.1016/j.jss.2010.11.918).
    10. 10)
      • 10. Bavota, G., Oliveto, R., De Lucia, A., Antoniol, G., Gueheneuc, Y.: ‘Playing with refactoring: Identifying extract class opportunities through game theory’. 2010 IEEE Int. Conf. Software Maintenance (ICSM)., September 2010, pp. 15.
    11. 11)
      • 11. Tsantalis, N., Chatzigeorgiou, A.: ‘Identification of refactoring opportunities introducing polymorphism’, J. Syst. Softw., 2010, 83, (3), pp. 391404 (doi: 10.1016/j.jss.2009.09.017).
    12. 12)
      • 12. Tourwe, T., Mens, T.: ‘Identifying refactoring opportunities using logic meta programming’. Proc. Seventh European Conf. Software Maintenance And Reengineering (CSMR'03), 2003, pp. 91100.
    13. 13)
      • 13. Van Rompaey, B., Du Bois, B., Demeyer, S., Rieger, M.: ‘On the detection of test smells: A metrics-based approach for general fixture and eager test’, IEEE Trans. Softw. Eng., 2007, 33, (12), pp. 800817 (doi: 10.1109/TSE.2007.70745).
    14. 14)
      • 14. Munro, M.J.: ‘Product metrics for automatic identification of ‘bad smell’ design problems in java source-code’. Proc. 11th IEEE Int. Symp. Software Metrics, 2005, September 2005, pp. 1515.
    15. 15)
      • 15. Liu, H., Ma, Z., Shao, W., Niu, Z.: ‘Schedule of bad smell detection and resolution: a new way to save effort’, IEEE Trans. Softw. Eng., 2012, 38, (1), pp. 220235 (doi: 10.1109/TSE.2011.9).
    16. 16)
      • 16. Liu, H., Li, G., Ma, Z., Shao, W.: ‘Conflict aware scheduling of software refactorings’, IET Softw., 2008, 2, (5), pp. 446460 (doi: 10.1049/iet-sen:20070033).
    17. 17)
      • 17. Liu, H., Li, G., Ma, Z., Shao, W.: ‘Scheduling of conflicting refactorings to promote quality improvement’. Proc. 22nd IEEE/ACM Int. Conf. Automated Software Engineering (ASE'07), 2007, pp. 489492.
    18. 18)
      • 18. Liu, H., Yang, L., Niu, Z., Ma, Z., Shao, W.: ‘Facilitating software refactoring with appropriate resolution order of bad smells’. Proc. Seventh Joint Meeting of the European Software Engineering Conf. (ESEC) and the ACM SIGSOFT Symp. Foundations of Software Engineering (ESEC/FSE'09), 2009, pp. 265268.
    19. 19)
      • 19. Bouktif, S., Antoniol, G., Merlo, E., Neteler, M.: ‘A novel approach to optimize clone refactoring activity’. in Mike, C., (ed.), Proc. Eighth Annual Conf. Genetic and Evolutionary Computation (GECCO'06), July 2006, pp. 18851892. ACM SIGEVO (formerly ISGEC), ACM Press.
    20. 20)
      • 20. Shore, J.: ‘Design debt’. Software Profitability Newsletter, 01 February 2004. Available at
    21. 21)
      • 21. Cusumano, M.A., Selby, R.W.: ‘Microsoft secrets’ (Free Press, 1995).
    22. 22)
      • 22. Stroulia, E., Kapoor, R.: ‘Metrics of refactoring-based development: An experience report’. Proc. Seventh Int. Conf. Object-Oriented Information System, 2001, pp. 113C122.
    23. 23)
      • 23. Weber, R., Helfenberger, T., Keller, R.K.: ‘Fit for change: Steps towards effective software maintenance’. Proc. 21st IEEE Int. Conf. Software Maintenance – Industrial and Tool volume, 2005, pp. 2633. Recipient of Best Industrial Paper Award.
    24. 24)
      • 24. Liu, H., Gao, Y., Niu, Z.: ‘An initial study on refactoring tactics’. IEEE 36th Int. Conf. Computer Software and Applications, 2012, pp. 213218.
    25. 25)
      • 25. Runeson, P., Höst, M.: ‘Guidelines for conducting and reporting case study research in software engineering’, Empir. Softw. Eng., 2009, 14, (2), pp. 131164 (doi: 10.1007/s10664-008-9102-8).
    26. 26)
      • 26. Murphy-Hill, E., Black, A.P., Danny, D., Parnin, C.: ‘Gathering refactoring data: a comparison of four methods’. Proc. Second Workshop on Refactoring Tools (WRT'08), 2008, pp. 7:17:5.
    27. 27)
      • 27. Dig, D., Comertoglu, C., Marinov, D., Johnson, R.: ‘Automated detection of refactorings in evolving components’. Proc. 20th European Conf. Object-Oriented Programming (ECOOP'06), Nantes, France, 3–7 July 2006, (LNCS vol. 4067), pp. 40442. Springer Berlin/Heidelberg.
    28. 28)
      • 28. Peter, W., Diehl, S.: ‘Are refactorings less error-prone than other changes?’. Proc. 2006 Int. Workshop on Mining software repositories (MSR'06), 2006, pp. 112118.
    29. 29)
      • 29. Parnin, C., Görg, C.: ‘Improving change descriptions with change contexts’. Proc. 2008 Int. Working Conf. Mining Software Repositories (MSR'08), 2008, pp. 5160.
    30. 30)
      • 30. Murphy, G.C., Kersten, M., Findlater, L.: ‘How are java software developers using the eclipse ide?’, IEEE Softw., 2006, 23, pp. 7683 (doi: 10.1109/MS.2006.105).
    31. 31)
      • 31. Xing, Z., Stroulia, E.: ‘Refactoring practice: How it is and how it should be supported – an eclipse case study’. IEEE Int. Conf. Software Maintenance, 2006, pp. 458468.
    32. 32)
      • 32. Xing, Z., Stroulia, E.: ‘Umldiff: an algorithm for object-oriented design differencing’. Proc. 20th IEEE/ACM Int. Conf. Automated Software Engineering, 2005, pp. 5465. Xing, Zhenchang and Stroulia, Eleni.

Related content

This is a required field
Please enter a valid email address