Abstract
A topical and relevant issue in the area of refactoring is the nature and characteristics of classes to which refactorings are applied. In particular, if we scrutinise the total set of refactorings applied to the classes of a system over different releases, which refactorings are applied to fault-prone classes and which to fault-free classes? In this paper, we explore that facet of refactoring. Refactorings applied between six releases of three Eclipse packages are used as a basis of the study and the Ref-Finder tool used to extract up to sixty-five different refactorings. Interestingly, results showed that refactorings applied to highly fault-prone classes differed significantly from those applied to fault-free classes, in particular related to the ‘rename method’ refactoring; a corresponding trend for the ‘move method’ and ‘move field’ refactoring was found in ‘fault-free’ classes over the period while the add and remove parameter refactorings tended to remain constant. The research offers an insight into refactoring behaviour in light of faults (or no faults).
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
Bavota, G., De Carluccio, B., De Lucia, A., Di Penta, M., Oliveto, R., Strollo, O.: When does a refactoring induce bugs? An Empirical Study. In: Proceedings of 12th IEEE International Working Conference on Source Code Analysis and Manipulation, Trento, Italy (2012)
Counsell, S., Hassoun, Y., Loizou, G., Najjar, R.: Common refactorings, a dependency graph and some code smells: An empirical study of Java OSS. In: International Symposium on Empirical Software Engineering (ISESE), Rio de Janeiro, pp. 288–296 (2006)
Demeyer, S., Ducasse, S., Nierstrasz, O.: Finding Refactorings via Change Metrics. In: Conference OO Programming Systems, Languages and Apps., pp. 166–177. ACM Press (2000)
Fenton, N.E., Pfleeger, S.L.: Software metrics - a practical and rigorous approach, 2nd edn. International Thomson (1996)
Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional (1999)
Mens, T., Tourwe, T.: A Survey of Software Refactoring. IEEE Transactions on Software Engineering 30(2), 126–139 (2004)
Murphy-Hill, E., Parnin, C., Black, A.: How we refactor, and how we know it. IEEE Transactions on Software Engineering 38(1), 5–18 (2012)
Opdyke, W.: Refactoring object-oriented frameworks, PhD Thesis, University of Illinois at Urbana-Champaign (1992)
Prete, K., Rachatasumrit, N., Sudan, N., Kim, M.: Template-based reconstruction of complex refactorings. In: Intl. Conference Software Maintenance, Timisoara, Romania, pp. 1–10 (2010)
Ratzinger, J., Sigmund, T., Gall, H.C.: On the relation of refactorings and software defect prediction. In: Proceedings of the 2008 International Working Conference on Mining Software Repositories, pp. 35–38. ACM Press, Leipzig (2008)
Weissgerber, P., Diehl, S.: Are refactorings less error-prone than other changes? In: Proceedings of Workshop on Mining Software Repositories (MSR 2006), pp. 112–118 (2006)
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
Counsell, S., Swift, S., Murgia, A., Tonelli, R., Marchesi, M., Concas, G. (2014). Are Some Refactorings Attached to Fault-Prone Classes and Others to Fault-Free Classes?. In: Dingsøyr, T., Moe, N.B., Tonelli, R., Counsell, S., Gencel, C., Petersen, K. (eds) Agile Methods. Large-Scale Development, Refactoring, Testing, and Estimation. XP 2014. Lecture Notes in Business Information Processing, vol 199. Springer, Cham. https://doi.org/10.1007/978-3-319-14358-3_12
Download citation
DOI: https://doi.org/10.1007/978-3-319-14358-3_12
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-14357-6
Online ISBN: 978-3-319-14358-3
eBook Packages: Computer ScienceComputer Science (R0)