Abstract
Refactoring source code has many benefits (e.g. improving maintainability, robustness and source code quality), but it takes time away from other implementation tasks, resulting in developers neglecting refactoring steps during the development process. But what happens when they know that the quality of their source code needs to be improved and they can get the extra time and money to refactor the code? What will they do? What will they consider the most important for improving source code quality? What sort of issues will they address first or last and how will they solve them? In our paper, we look for answers to these questions in a case study of refactoring large-scale industrial systems where developers participated in a project to improve the quality of their software systems. We collected empirical data of over a thousand refactoring patches for 5 systems with over 5 million lines of code in total, and we found that developers really optimized the refactoring process to significantly improve the quality of these systems.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Alshayeb, M.: Empirical investigation of refactoring effect on software quality. Inf. Softw. Technol. 51(9), 1319–1326 (2009)
Arcelli Fontana, F., Braione, P., Zanoni, M.: Automatic detection of bad smells in code: An experimental assessment. Journal of Object Technology 11(2), 1–38 (2012)
Beck, K.: Extreme Programming Explained: Embrace Change, 1st edn. Addison-Wesley Professional (1999)
Choi, E., Yoshida, N., Ishio, T., Inoue, K., Sano, T.: Extracting code clones for refactoring using combinations of clone metrics. In: Proceedings of the 5th International Workshop on Software Clones, IWSC 2011, pp. 7–13. ACM (2011)
Demeyer, S., Ducasse, S., Nierstrasz, O.: Object-Oriented Reengineering Patterns. Morgan Kaufmann (2002)
Du Bois, B.: A Study of Quality Improvements by Refactoring. Ph.D. thesis (2006)
Du Bois, B., Gorp, P.V., Amsel, A., Eetvelde, N.V., Stenten, H., Demeyer, S.: A discussion of refactoring in research and practice. Tech. rep. (2004)
Ferenc, R., Beszédes, Á., Tarkiainen, M., Gyimóthy, T.: Columbus – Reverse Engineering Tool and Schema for C++. In: Proceedings of the 18th International Conference on Software Maintenance (ICSM 2002), pp. 172–181. IEEE Computer Society (October 2002)
Fontana, F.A., Spinelli, S.: Impact of refactoring on quality code evaluation. In: Proceedings of the 4th Workshop on Refactoring Tools, WRT 2011, pp. 37–40. ACM (2011)
Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley Longman Publishing Co., Inc. (1999)
Maiga, A.: Impacts and Detection of Design Smells. Ph.D. thesis (2012)
Mens, T., Tourwé, T.: A survey of software refactoring. IEEE Trans. Softw. Eng. 30(2), 126–139 (2004)
Moser, R., Abrahamsson, P., Pedrycz, W., Sillitti, A., Succi, G.: A Case Study on the Impact of Refactoring on Quality and Productivity in an Agile Team. In: Meyer, B., Nawrocki, J.R., Walter, B. (eds.) CEE-SET 2007. LNCS, vol. 5082, pp. 252–266. Springer, Heidelberg (2008)
Murphy-Hill, E., Black, A.P., Dig, D., Parnin, C.: Gathering refactoring data: A comparison of four methods. In: Proceedings of the 2nd Workshop on Refactoring Tools, WRT 2008, pp. 7:1–7:5. ACM (2008)
Opdyke, W.F.: Refactoring Object-oriented Frameworks. Ph.D. thesis (1992)
Pinto, G.H., Kamei, F.: What programmers say about refactoring tools?: An empirical investigation of Stack Overflow. In: Proceedings of the 2013 ACM Workshop on Workshop on Refactoring Tools, WRT 2013, pp. 33–36. ACM (2013)
Ratzinger, J., Fischer, M., Gall, H.: Improving evolvability through refactoring. SIGSOFT Softw. Eng. Notes 30(4), 1–5 (2005)
Stroggylos, K., Spinellis, D.: Refactoring–does it improve software quality? In: Proceedings of the 5th International Workshop on Software Quality, WoSQ 2007, p. 10. IEEE Computer Society (2007)
Tairas, R.: Clone detection and refactoring. In: Companion to the 21st ACM SIGPLAN Symposium on Object-oriented Programming Systems, Languages, and Applications, OOPSLA 2006, pp. 780–781. ACM (2006)
Zibran, M.F., Roy, C.K.: Towards flexible code clone detection, management, and refactoring in IDE. In: Proceedings of the 5th International Workshop on Software Clones, IWSC 2011, pp. 75–76. ACM (2011)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Szőke, G., Nagy, C., Ferenc, R., Gyimóthy, T. (2014). A Case Study of Refactoring Large-Scale Industrial Systems to Efficiently Improve Source Code Quality. In: Murgante, B., et al. Computational Science and Its Applications – ICCSA 2014. ICCSA 2014. Lecture Notes in Computer Science, vol 8583. Springer, Cham. https://doi.org/10.1007/978-3-319-09156-3_37
Download citation
DOI: https://doi.org/10.1007/978-3-319-09156-3_37
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-09155-6
Online ISBN: 978-3-319-09156-3
eBook Packages: Computer ScienceComputer Science (R0)