Your browser does not support JavaScript!
http://iet.metastore.ingenta.com
1887

access icon free Case study on software refactoring tactics

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.

References

    1. 1)
      • 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).
    2. 2)
      • 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).
    3. 3)
      • 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.
    4. 4)
      • 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).
    5. 5)
      • 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.
    6. 6)
      • 20. Shore, J.: ‘Design debt’. Software Profitability Newsletter, 01 February 2004. Available at http://www.jamesshore.com/Articles.
    7. 7)
      • 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.
    8. 8)
      • 2. Opdyke, W.F.: ‘Refactoring object-oriented frameworks’. PhD thesis, University of Illinois at Urbana-Champaign, 1992.
    9. 9)
      • 21. Cusumano, M.A., Selby, R.W.: ‘Microsoft secrets’ (Free Press, 1995).
    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)
      • 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.
    12. 12)
      • 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).
    13. 13)
      • 22. Stroulia, E., Kapoor, R.: ‘Metrics of refactoring-based development: An experience report’. Proc. Seventh Int. Conf. Object-Oriented Information System, 2001, pp. 113C122.
    14. 14)
      • 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).
    15. 15)
      • 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.
    16. 16)
      • 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.
    17. 17)
      • 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).
    18. 18)
      • 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).
    19. 19)
      • 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.
    20. 20)
      • 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.
    21. 21)
      • 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.
    22. 22)
      • 24. Liu, H., Gao, Y., Niu, Z.: ‘An initial study on refactoring tactics’. IEEE 36th Int. Conf. Computer Software and Applications, 2012, pp. 213218.
    23. 23)
      • 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).
    24. 24)
      • 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.
    25. 25)
      • 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.
    26. 26)
      • 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.
    27. 27)
      • 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).
    28. 28)
      • 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).
    29. 29)
      • 6. Wake, W.C.: ‘Refactoring workbook’ (Addison Wesley, 2003).
    30. 30)
      • 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).
    31. 31)
      • 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.
    32. 32)
      • 5. Fowler, M., Beck, K., Brant, J., Opdyke, W., Roberts, D.: ‘Refactoring: improving the design of existing code’ (Addison Wesley Professional, 1999).
http://iet.metastore.ingenta.com/content/journals/10.1049/iet-sen.2012.0121
Loading

Related content

content/journals/10.1049/iet-sen.2012.0121
pub_keyword,iet_inspecKeyword,pub_concept
6
6
Loading
This is a required field
Please enter a valid email address