Use, disuse, and misuse of automated refactorings
Abstract
Though refactoring tools have been available for more than a decade, research has shown that programmers underutilize such tools. However, little is known about why programmers do not take advantage of these tools. We have conducted a field study on programmers in their natural settings working on their code. As a result, we collected a set of interaction data from about 1268 hours of programming using our minimally intrusive data collectors. Our quantitative data show that programmers prefer lightweight methods of invoking refactorings, usually perform small changes using the refactoring tool, proceed with an automated refactoring even when it may change the behavior of the program, and rarely preview the automated refactorings. We also interviewed nine of our participants to provide deeper insight about the patterns that we observed in the behavioral data. We found that programmers use predictable automated refactorings even if they have rare bugs or change the behavior of the program. This paper reports some of the factors that affect the use of automated refactorings such as invocation method, awareness, naming, trust, and predictability and the major mismatches between programmers' expectations and automated refactorings. The results of this work contribute to producing more effective tools for refactoring complex software.
Integrity signals
Registry
Cites
Statistics
Claims the paper makes
Claims other papers make about this one
Each is checked against this paper’s own text: does it say what the citing paper says it does?
Prior studies reported that software architects and developers primarily rely on manual efforts for large-scale refactoring activities, with minor support from disjoint tools.
“Prior studies also reported that software architects and developers primarily rely on manual efforts for large-scale refactoring activities, with minor support from disjoint tools [37, 71, 104].”
From Software Architecture in Practice: Challenges and Opportunities (2023) · cites this paper as [104]
Cites
Basics of Qualitative Research (3rd ed.): Techniques and Procedures for Developing Grounded Theory
Corbin, J., & Strauss, A. (2008) · SAGE · doi:10.4135/9781452230153 · Cited by 12,136 · see citing works
Trust in Automation: Designing for Appropriate Reliance
Lee, J. D., & See, K. A. (2004) · Human Factors: The Journal of the Human Factors and Ergonomics Society · doi:10.1518/hfes.46.1.50_30392 · Cited by 6,605 · see citing works
Humans and automation: Use, misuse, disuse, abuse
Parasuraman, R., & Riley, V. (1997) · Human Factors: The Journal of the Human Factors and Ergonomics Society · doi:10.1518/001872097778543886 · Cited by 4,554 · see citing works
Refactoring improving the design of existing code
Saca, M. A. (2017) · IEEE Central America and Panama Convention (CONCAPAN) · doi:10.1109/concapan.2017.8278488 · Cited by 2,077 · see citing works
Refactoring object-oriented frameworks
Opdyke, W. F. (1992) · Cited by 1,014 · see citing works
A few billion lines of code later
Bessey, A., Block, K., Chelf, B., Chou, A., Fulton, B., Hallem, S., Henri-Gros, C., Kamsky, A., McPeak, S., & Engler, D. (2010) · Communications of the ACM · doi:10.1145/1646353.1646374 · Cited by 634 · see citing works
Detection strategies: metrics-based rules for detecting design flaws
Marinescu, R. (2004) · Proceedings/Proceedings - Conference on Software Maintenance · doi:10.1109/icsm.2004.1357820 · Cited by 552 · see citing works
How We Refactor, and How We Know It
Murphy-Hill, E., Parnin, C., & Black, A. P. (2012) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2011.41 · Cited by 547 · see citing works
How are Java software developers using the Eclipse IDE?
Murphy, G. C., Kersten, M., & Findlater, L. (2006) · IEEE Software · doi:10.1109/ms.2006.105 · Cited by 413 · see citing works
The costs and benefits of pair programming
Cockburn, A., & Williams, L. A. (2001) · Cited by 403 · see citing works
A refactoring tool for smalltalk
Roberts, D., Brant, J., & Johnson, R. E. (1997) · Theory and Practice of Object Systems · doi:10.1002/(sici)1096-9942(1997)3:4 · Cited by 383 · see citing works
Self-citationAutomation failures on tasks easily performed by operators undermine trust in automated aids
Madhavan, P., Wiegmann, D. A., & Lacson, F. C. (2006) · Human Factors: The Journal of the Human Factors and Ergonomics Society · doi:10.1518/001872006777724408 · Cited by 268 · see citing works
Automated testing of refactoring engines
Daniel, B., Dig, D., Garcia, K., & Marinov, D. (2007) · ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE) · doi:10.1145/1287624.1287651 · Cited by 229 · see citing works
Refactoring sequential Java code for concurrency via concurrent libraries
Dig, D., Marrero, J. J., & Ernst, M. D. (2009) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1109/icse.2009.5070539 · Cited by 154 · see citing works
An interactive ambient visualization for code smells
Murphy-Hill, E. R., & Black, A. P. (2010) · doi:10.1145/1879211.1879216 · Cited by 147 · see citing works
Breaking the barriers to successful refactoring
Murphy-Hill, E. R., & Black, A. P. (2008) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1145/1368088.1368146 · Cited by 129 · see citing works
Refactoring Practice: How it is and How it Should be Supported - An Eclipse Case Study
Xing, Z., & Stroulia, E. (2006) · Proceedings/Proceedings - Conference on Software Maintenance · doi:10.1109/icsm.2006.52 · Cited by 106 · see citing works
Sound and extensible renaming for java
Schäfer, M., Ekman, T., & de Moor, O. (2008) · Conference on Object-Oriented Programming Systems, Languages, and Applications · doi:10.1145/1449764.1449787 · Cited by 83 · see citing works
Wloka, J., Sridharan, M., & Tip, F. (2009) · ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE) · doi:10.1145/1595696.1595723 · Cited by 71 · see citing works
From Public to Private to Absent: Refactoring Java Programs under Constrained Accessibility
Steimann, F., & Thies, A. (2009) · Lecture notes in computer science · doi:10.1007/978-3-642-03013-0_19 · Cited by 69 · see citing works
A catalogue of lightweight visualizations to support code smell inspection
Parnin, C., Görg, C., & Nnadi, O. (2008) · ACM Symposium on Software Visualization (SoftVis) · doi:10.1145/1409720.1409733 · Cited by 61 · see citing works
Peer interaction effectively, yet infrequently, enables programmers to discover new tools
Murphy-Hill, E. R., & Murphy, G. C. (2011) · ACM Conference on Computer Supported Cooperative Work (CSCW) · doi:10.1145/1958824.1958888 · Cited by 57 · see citing works
Refactoring Java programs for flexible locking
Schäfer, M., Sridharan, M., Dolby, J., & Tip, F. (2011) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1145/1985793.1985804 · Cited by 57 · see citing works
Improving Usability of Software Refactoring Tools
Mealy, E., Carrington, D., Strooper, P. A., & Wyeth, P. A. (2007) · Australasian Software Engineering Conference (ASWEC) · doi:10.1109/aswec.2007.24 · Cited by 45 · see citing works
Shami, N. S., Muller, M. J., & Millen, D. R. (2011) · ACM Conference on Computer Supported Cooperative Work (CSCW) · doi:10.1145/1958824.1958868 · Cited by 42 · see citing works
Inferring Method Effect Summaries for Nested Heap Regions
Vakilian, M., Dig, D., Bocchino, R. L., Overbey, J. L., Adve, V., & Johnson, R. E. (2009) · IEEE/ACM International Conference on Automated Software Engineering (ASE) · doi:10.1109/ase.2009.68 · Cited by 41 · see citing works
Self-citationTransformation for class immutability
Kjølstad, F., Dig, D., Acevedo, G., & Snir, M. (2011) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1145/1985793.1985803 · Cited by 29 · see citing works
Differential precondition checking: A lightweight, reusable analysis for refactoring tools
Overbey, J. L., & Johnson, R. E. (2011) · IEEE/ACM International Conference on Automated Software Engineering (ASE) · doi:10.1109/ase.2011.6100067 · Cited by 28 · see citing works
Self-citationRestructuring software with gestures
Murphy-Hill, E. R., Ayazifar, M., & Black, A. P. (2011) · IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) · doi:10.1109/vlhcc.2011.6070394 · Cited by 28 · see citing works
The need for richer refactoring usage data
Vakilian, M., Chen, N., Negara, S., Rajkumar, B. A., Moghaddam, R. Z., & Johnson, R. E. (2011) · doi:10.1145/2089155.2089164 · Cited by 20 · see citing works
Self-citationA Model of Refactoring Tool Use
Murphy-Hill, E. R. (2009) · Cited by 12 · see citing works
Use, Disuse, and Misuse of Automated Refactorings (Extended Version)
Vakilian, M., Chen, N., Negara, S., Rajkumar, B. A., Bailey, B. P., & Johnson, R. E. (2011) · Illinois Digital Environment for Access to Learning and Scholarship (University of Illinois at Urbana-Champaign) · Cited by 2 · see citing works
Self-citation
Flagged first, then by citations
Cited by
Sorted by citations
Code smells and refactoring: A tertiary systematic review of challenges and observations
Lacerda, G., Petrillo, F. D. S., Pimenta, M. S., & Guéhéneuc, Y. (2020) · Journal of Systems and Software · doi:10.1016/j.jss.2020.110610 · Cited by 250 · see citing works
An Empirical Study of RefactoringChallenges and Benefits at Microsoft
Kim, M., Zimmermann, T., & Nagappan, N. (2014) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2014.2318734 · Cited by 231 · see citing works
A Comparative Study of Manual and Automated Refactorings
Negara, S., Chen, N., Vakilian, M., Johnson, R. E., & Dig, D. (2013) · Lecture notes in computer science · doi:10.1007/978-3-642-39038-8_23 · Cited by 154 · see citing works
Self-citationIs It Dangerous to Use Version Control Histories to Study Source Code Evolution?
Negara, S., Vakilian, M., Chen, N., Johnson, R. E., & Dig, D. (2012) · Lecture notes in computer science · doi:10.1007/978-3-642-31057-7_5 · Cited by 100 · see citing works
Self-citationRatol, I. K., & Robillard, M. P. (2017) · IEEE/ACM International Conference on Automated Software Engineering (ASE) · doi:10.1109/ase.2017.8115624 · Cited by 75 · see citing works
Towards an Autonomous Bot for Automatic Source Code Refactoring
Wyrich, M., & Bogner, J. (2019) · IEEE/ACM International Workshop on Bots in Software Engineering (BotSE) · doi:10.1109/botse.2019.00015 · Cited by 71 · see citing works
Visualization of fine-grained code change history
Yoon, Y., Myers, B. A., & Koo, S. (2013) · IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) · doi:10.1109/vlhcc.2013.6645254 · Cited by 69 · see citing works
RefBot: Intelligent Software Refactoring Bot
Alizadeh, V., Ouali, M. A., Kessentini, M., & Chater, M. (2019) · IEEE/ACM International Conference on Automated Software Engineering (ASE) · doi:10.1109/ase.2019.00081 · Cited by 58 · see citing works
Scripting parametric refactorings in Java to retrofit design patterns
Kim, J.-W., Batory, D. S., & Dig, D. (2015) · IEEE International Conference on Software Maintenance (ICSM) · doi:10.1109/icsm.2015.7332467 · Cited by 56 · see citing works
The Design Space of Bug Fixes and How Developers Navigate It
Murphy-Hill, E. R., Zimmermann, T., Bird, C., & Nagappan, N. (2014) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2014.2357438 · Cited by 55 · see citing works
Program transformations to fix C integers
Coker, Z., & Hafiz, M. (2013) · doi:10.5555/2486788.2486892 · Cited by 52 · see citing works
Comparing approaches to analyze refactoring activity on software repositories
Soares, G., Gheyi, R., Murphy-Hill, E. R., & Johnson, B. (2012) · Journal of Systems and Software · doi:10.1016/j.jss.2012.10.040 · Cited by 50 · see citing works
Systematic Testing of Refactoring Engines on Real Software Projects
Gligoric, M., Behrang, F., Li, Y., Overbey, J. L., Hafiz, M., & Marinov, D. (2013) · Lecture notes in computer science · doi:10.1007/978-3-642-39038-8_26 · Cited by 47 · see citing works
One thousand and one stories: a large-scale survey of software refactoring
Golubev, Y., Kurbatova, Z., AlOmar, E. A., Bryksin, T., & Mkaouer, M. W. (2021) · ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE) · doi:10.1145/3468264.3473924 · Cited by 45 · see citing works
Program transformations to fix C integers
Coker, Z., & Hafiz, M. (2013) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1109/icse.2013.6606625 · Cited by 38 · see citing works
Razzaq, A., Buckley, J., Lai, Q., Yu, T., & Botterweck, G. (2025) · ACM Computing Surveys · doi:10.1145/3687299 · Cited by 36 · see citing works
Code Transformation Issues in Move-Instance-Method Refactorings
Kim, J.-W., Batory, D. S., & Gligoric, M. (2019) · IEEE/ACM International Workshop on Refactoring (IWoR) · doi:10.1109/iwor.2019.00011 · Cited by 35 · see citing works
Extracting and analyzing time-series HCI data from screen-captured task videos
Bao, L., Li, J., Xing, Z., Wang, X., Xia, X., & Zhou, B. (2016) · Empirical Software Engineering · doi:10.1007/s10664-015-9417-1 · Cited by 35 · see citing works
Revisiting the refactoring mechanics
Oliveira, J., Gheyi, R., Mongiovi, M., Soares, G., Ribeiro, M., & Garcia, A. (2019) · Information and Software Technology · doi:10.1016/j.infsof.2019.03.002 · Cited by 35 · see citing works
Drag-and-Drop Refactoring: Intuitive and Efficient Program Transformation
Lee, Y. Y., Chen, N., & Johnson, R. E. (2012) · Illinois Digital Environment for Access to Learning and Scholarship (University of Illinois at Urbana-Champaign) · Cited by 34 · see citing works
Self-citationA Compositional Paradigm of Automating Refactorings
Vakilian, M., Chen, N., Moghaddam, R. Z., Negara, S., & Johnson, R. E. (2013) · Lecture notes in computer science · doi:10.1007/978-3-642-39038-8_22 · Cited by 31 · see citing works
Self-citationSoftware Architecture in Practice: Challenges and Opportunities
Wan, Z., Zhang, Y., Xia, X., Jiang, Y., & Lo, D. (2023) · Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering · doi:10.1145/3611643.3616367 · Cited by 30 · see citing works
“The difficulty in such activities manifests itself in a variety of ways, e.g., increased cost, complex implementation, and highly scattered code changes.”
BackgroundAutomatically Fixing C Buffer Overflows Using Program Transformations
Shaw, A., Doggett, D. J., & Hafiz, M. (2014) · International Conference on Dependable Systems & Networks/Proceedings · doi:10.1109/dsn.2014.25 · Cited by 29 · see citing works
Tempero, E. D., Gorschek, T., & Angelis, L. (2017) · Communications of the ACM · doi:10.1145/3131873 · Cited by 27 · see citing works
Refactoring Inspection Support for Manual Refactoring Edits
Alves, E. L. G., Song, M., Massoni, T. L., Machado, P. D. L., & Kim, M. (2017) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2017.2679742 · Cited by 26 · see citing works
Inference of development activities from interaction with uninstrumented applications
Bao, L., Xing, Z., Xia, X., Lo, D., & Hassan, A. E. (2018) · Empirical Software Engineering · doi:10.1007/s10664-017-9547-8 · Cited by 25 · see citing works
Mining commit messages to enhance software refactorings recommendation: A machine learning approach
Nyamawe, A. S. (2022) · Machine Learning with Applications · doi:10.1016/j.mlwa.2022.100316 · Cited by 25 · see citing works
Identification, Impact, and Refactoring of Smells in Pipe-Like Web Mashups
Stolee, K. T., & Elbaum, S. G. (2013) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2013.42 · Cited by 25 · see citing works
Interactive Extraction of Examples from Existing Code
Head, A., Glassman, E. L., Hartmann, B., & Hearst, M. A. (2018) · CHI Conference on Human Factors in Computing Systems · doi:10.1145/3173574.3173659 · Cited by 25 · see citing works
Vaithilingam, P., Glassman, E. L., Groenwegen, P., Gulwani, S., Henley, A. Z., Malpani, R., Pugh, D., Radhakrishna, A., Soares, G., Wang, J., et al. (2023) · IEEE/ACM International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP) · doi:10.1109/icse-seip58684.2023.00022 · Cited by 25 · see citing works
Drag-and-drop refactoring: Intuitive and efficient program transformation
Lee, Y. Y., Chen, N., & Johnson, R. E. (2013) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1109/icse.2013.6606548 · Cited by 24 · see citing works
Self-citationSingh, N., & Singh, P. (2017) · Asia-Pacific Software Engineering Conference (APSEC) · doi:10.1109/apsec.2017.79 · Cited by 25 · see citing works
Behind the Intent of Extract Method Refactoring: A Systematic Literature Review
AlOmar, E. A., Mkaouer, M. W., & Ouni, A. (2024) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2023.3345800 · Cited by 21 · see citing works
Mayer, P., & Schroeder, A. (2014) · Lecture notes in computer science · doi:10.1007/978-3-662-44202-9_18 · Cited by 20 · see citing works
Heard it through the Gitvine: an empirical study of tool diffusion across the npm ecosystem
Lamba, H., Trockman, A., Armanios, D. E., Kästner, C., Miller, H., & Vasilescu, B. (2020) · ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE) · doi:10.1145/3368089.3409705 · Cited by 19 · see citing works
Prioritizing test cases for early detection of refactoring faults
Alves, E. L. G., Machado, P. D. L., Massoni, T. L., & Kim, M. (2016) · Software Testing Verification and Reliability · doi:10.1002/stvr.1603 · Cited by 19 · see citing works
Reverse engineering time-series interaction data from screen-captured videos
Bao, L., Li, J., Xing, Z., Wang, X., & Zhou, B. (2015) · IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER) · doi:10.1109/saner.2015.7081850 · Cited by 17 · see citing works
Feedback-driven semi-supervised synthesis of program transformations
Gao, X. Y., Barke, S., Radhakrishna, A., Soares, G., Gulwani, S., Leung, A., Nagappan, N., & Tiwari, A. (2020) · Proceedings of the ACM on Programming Languages · doi:10.1145/3428287 · Cited by 17 · see citing works
Assessing refactorings for usability in e-commerce applications
Grigera, J., Garrido, A., Panach, J. I., Distante, D., & Rossi, G. H. (2015) · Empirical Software Engineering · doi:10.1007/s10664-015-9384-6 · Cited by 17 · see citing works
Changes as First-Class Citizens
Soetens, Q. D., Robbes, R., & Demeyer, S. (2017) · ACM Computing Surveys · doi:10.1145/3038926 · Cited by 16 · see citing works
The Usability (or Not) of Refactoring Tools
Eilertsen, A. M., & Murphy, G. C. (2021) · IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER) · doi:10.1109/saner50967.2021.00030 · Cited by 16 · see citing works
Development History Granularity Transformations (N)
Muşlu, K., Swart, L., Brun, Y., & Ernst, M. D. (2015) · IEEE/ACM International Conference on Automated Software Engineering (ASE) · doi:10.1109/ase.2015.53 · Cited by 15 · see citing works
Lau, J., Sivaraman, A., Zhang, Q., Gulzar, M. A., Cong, J., & Kim, M. (2020) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1145/3377811.3380340 · Cited by 15 · see citing works
Soares, V., Oliveira, A., Pereira, J. A., Bibiano, A. C., Garcia, A., Farah, P. R., Vergílio, S. R., Schots, M., Silva, C., COUTINHO, D. J. B., et al. (2020) · Brazilian Symposium on Software Engineering · doi:10.1145/3422392.3422439 · Cited by 15 · see citing works
Overwatch: learning patterns in code edit sequences
Zhang, Y., Bajpai, Y., Gupta, P., Ketkar, A., Allamanis, M., Barik, T., Gulwani, S., Radhakrishna, A., Raza, M., Soares, G., et al. (2022) · Proceedings of the ACM on Programming Languages · doi:10.1145/3563302 · Cited by 15 · see citing works
Steimann, F. (2018) · ACM Transactions on Programming Languages and Systems · doi:10.1145/3156016 · Cited by 15 · see citing works
On the Customization of Batch Refactoring
Oliveira, D., Bibiano, A. C., & Garcia, A. (2019) · IEEE/ACM International Workshop on Refactoring (IWoR) · doi:10.1109/iwor.2019.00010 · Cited by 15 · see citing works
A Practical Guide to Analyzing IDE Usage Data
Snipes, W., Murphy-Hill, E., Fritz, T., Vakilian, M., Damevski, K., Nair, A. R., & Shepherd, D. (2015) · The Art and Science of Analyzing Software Data · doi:10.1016/b978-0-12-411519-4.00005-7 · Cited by 14 · see citing works
Self-citationGraph Based Mining of Code Change Patterns from Version Control Commits
Janke, M., & Mäder, P. (2020) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2020.3004892 · Cited by 14 · see citing works
Improving the success rate of applying the extract method refactoring
Alcocer, J. P. S., Antezana, A. S., Santos, G., & Bergel, A. (2020) · Science of Computer Programming · doi:10.1016/j.scico.2020.102475 · Cited by 14 · see citing works
Muslim, H., Leung, C. K., & Itoh, M. (2022) · Accident Analysis & Prevention · doi:10.1016/j.aap.2022.106719 · Cited by 13 · see citing works
The untold story of code refactoring customizations in practice
Oliveira, D., Assunção, W. K. G., Garcia, A., Bibiano, A. C., Ribeiro, M., Gheyi, R., & Fonseca, B. (2023) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1109/icse48619.2023.00021 · Cited by 13 · see citing works
Refactoring tools for functional languages
Thompson, S., & Li, H. (2013) · Journal of Functional Programming · doi:10.1017/s0956796813000117 · Cited by 13 · see citing works
Yestercode: Improving code-change support in visual dataflow programming environments
Henley, A. Z., & Fleming, S. D. (2016) · IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) · doi:10.1109/vlhcc.2016.7739672 · Cited by 12 · see citing works
Untangling the Knot: Enabling Architecture Evolution with Search-Based Refactoring
Ivers, J., Seifried, C., & Özkaya, İ. (2022) · IEEE International Conference on Software Architecture (ICSA) · doi:10.1109/icsa53651.2022.00018 · Cited by 12 · see citing works
Cascade: A Universal Programmer-Assisted Type Qualifier Inference Tool
Vakilian, M., Phaosawasdi, A., Ernst, M. D., & Johnson, R. E. (2015) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1109/icse.2015.44 · Cited by 11 · see citing works
Self-citationTool Support for Managing Clone Refactorings to Facilitate Code Review in Evolving Software
Chen, Z., Mohanavilasam, M. M., Kwon, Y., & Song, M. (2017) · IEEE Annual International Computer Software and Applications Conference (COMPSAC) · doi:10.1109/compsac.2017.242 · Cited by 10 · see citing works
Chen, Z., Kwon, Y., & Song, M. (2018) · Journal of Software Evolution and Process · doi:10.1002/smr.1951 · Cited by 9 · see citing works
Unveiling process insights from refactoring practices
Caldeira, J., Abreu, F. B. E., Cardoso, J., & dos Reis, J. P. (2021) · Computer Standards & Interfaces · doi:10.1016/j.csi.2021.103587 · Cited by 10 · see citing works
A study on developer perception of transformation languages for refactoring
Newman, C. D., Mkaouer, M. W., Collard, M. L., & Maletic, J. I. (2018) · doi:10.1145/3242163.3242170 · Cited by 8 · see citing works
On understanding how developers use the Spotter search tool
Kubelka, J., Bergel, A., Chiș, A., Gîrba, T., Reichhart, S., Robbes, R., & Syrel, A. (2015) · IEEE Working Conference on Software Visualization (VISSOFT) · doi:10.1109/vissoft.2015.7332426 · Cited by 8 · see citing works
Refactoring operations Grounded in manual code changes
Eilertsen, A. M. (2020) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1145/3377812.3381395 · Cited by 8 · see citing works
“To Clean Code or Not to Clean Code” A Survey Among Practitioners
Ljung, K., & González‐Huerta, J. (2022) · Lecture notes in computer science · doi:10.1007/978-3-031-21388-5_21 · Cited by 8 · see citing works
Revisiting Refactoring Mechanics from Tool Developers’ Perspective
Oliveira, J., Gheyi, R., Pontes, F., Mongiovi, M., Ribeiro, M., & Garcia, A. (2020) · Lecture notes in computer science · doi:10.1007/978-3-030-63882-5_3 · Cited by 8 · see citing works
Embedding programming context into source code
Breckel, A., & Tichy, M. (2016) · IEEE International Conference on Program Comprehension (ICPC) · doi:10.1109/icpc.2016.7503732 · Cited by 7 · see citing works
Improving regression test efficiency with an awareness of refactoring changes
Chen, Z., Guo, H.-F., & Song, M. (2018) · Information and Software Technology · doi:10.1016/j.infsof.2018.07.003 · Cited by 7 · see citing works
System-Wide Trust: The Impact of an Error in a Multi-component System
O’Hear, E. H., Atchley, A., Gholston, S. E., Weger, K., Mesmer, B. L., & Tenhundfeld, N. L. (2022) · Proceedings of the Human Factors and Ergonomics Society Annual Meeting · doi:10.1177/1071181322661119 · Cited by 6 · see citing works
Reordering Program Statements for Improving Readability
Sasaki, Y., Higo, Y., & Kusumoto, S. (2013) · Euromicro Conference on Software Maintenance and Reengineering (CSMR) · doi:10.1109/csmr.2013.50 · Cited by 6 · see citing works
RePOR: Mimicking humans on refactoring tasks. Are we there yet?
Morales, R., Khomh, F., & Antoniol, G. (2020) · Empirical Software Engineering · doi:10.1007/s10664-020-09826-7 · Cited by 6 · see citing works
A Tool Supporting Postponable Refactoring
Maruyama, K., & Hayashi, S. (2017) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1109/icse-c.2017.108 · Cited by 6 · see citing works
Hafiz, M., & Overbey, J. L. (2015) · IEEE Software · doi:10.1109/ms.2015.130 · Cited by 6 · see citing works
Metrics in Software Development and Evolution with Design Patterns
Derezińska, A. (2018) · Advances in intelligent systems and computing · doi:10.1007/978-3-319-91186-1_37 · Cited by 5 · see citing works
A Technique to Test Refactoring Detection Tools
Leandro, O., Gheyi, R., Teixeira, L., Ribeiro, M., & Garcia, A. (2022) · Brazilian Symposium on Software Engineering · doi:10.1145/3555228.3555246 · Cited by 5 · see citing works
Dig, D., Johnson, R. E., Marinov, D., Bailey, B. P., & Batory, D. S. (2016) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1145/2889160.2889208 · Cited by 5 · see citing works
Self-citationTowards Sustainable Cloud Software Systems through Energy-Aware Code Smell Refactoring
Imran, A., Kosar, T., Żola, J., & Bulut, M. F. (2024) · IEEE ... International Conference on Cloud Computing · doi:10.1109/cloud62652.2024.00034 · Cited by 4 · see citing works
Kim, M., Meng, N., & Zhang, T. (2019) · Springer eBooks · doi:10.1007/978-3-030-00262-6_6 · Cited by 4 · see citing works
Calico: Automated Knowledge Calibration and Diagnosis for Elevating AI Mastery in Code Tasks
Qiu, Y., Hu, J., Zhang, Q., & Yin, H. (2024) · ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA) · doi:10.1145/3650212.3680399 · Cited by 4 · see citing works
What Kinds of Refactorings are Co-Occurred? An Analysis of Eclipse Usage Datasets
Saika, T., Choi, E., Yoshida, N., Gotō, A., Haruna, S., & Inoue, K. (2014) · International Workshop on Empirical Software Engineering in Practice (IWESEP) · doi:10.1109/iwesep.2014.15 · Cited by 4 · see citing works
Refactoring Tools and Their Kin
Steimann, F. (2017) · Lecture notes in computer science · doi:10.1007/978-3-319-60074-1_8 · Cited by 4 · see citing works
Towards a better understanding of the mechanics of refactoring detection tools
Oliveira, J., Gheyi, R., Teixeira, L., Ribeiro, M., Leandro, O., & Fonseca, B. (2023) · Information and Software Technology · doi:10.1016/j.infsof.2023.107273 · Cited by 3 · see citing works
Software Complexity Reduction by Automated Refactoring Schema
Cao, S., Zhao, Y., & Shi, L. (2019) · International Symposium on Theoretical Aspects of Software Engineering (TASE) · doi:10.1109/tase.2019.00005 · Cited by 3 · see citing works
CodeDeviant: Helping Programmers Detect Edits That Accidentally Alter Program Behavior
Henley, A. Z., & Fleming, S. D. (2018) · IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) · doi:10.1109/vlhcc.2018.8506567 · Cited by 3 · see citing works
Preserving instance state during refactorings in live environments
Tesone, P., Polito, G., Fabresse, L., Bouraqadi, N., & Ducasse, S. (2020) · Future Generation Computer Systems · doi:10.1016/j.future.2020.04.010 · Cited by 3 · see citing works
Eilertsen, A. M., & Murphy, G. C. (2021) · IEEE International Conference on Software Maintenance (ICSM) · doi:10.1109/icsme52107.2021.00070 · Cited by 3 · see citing works
A new architecture reconciling refactorings and transformations
Šarenac, B., Anquetil, N., Ducasse, S., & Tesone, P. (2024) · Journal of Computer Languages · doi:10.1016/j.cola.2024.101273 · Cited by 2 · see citing works
A Flowchart for Rapid Technical Debt Management Decision Making
Zhang, C., & Wu, Y. (2015) · Journal of Software · doi:10.17706/jsw.11.2.212-219 · Cited by 2 · see citing works
A Structure-Driven Process of Automated Refactoring to Design Patterns
Derezińska, A. (2017) · Advances in intelligent systems and computing · doi:10.1007/978-3-319-67229-8_4 · Cited by 2 · see citing works
Frame-based behavior preservation in refactoring
Maruyama, K., Hayashi, S., Yoshida, N., & Choi, E. (2017) · IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER) · doi:10.1109/saner.2017.7884683 · Cited by 2 · see citing works
A study of refactorings during software change tasks
Eilertsen, A. M., & Murphy, G. C. (2021) · Journal of Software Evolution and Process · doi:10.1002/smr.2378 · Cited by 2 · see citing works
Tool Support for Finding Anomalies in Refactoring Edits for Improving Software Evolution
Nguyen, U., Zeng, X., Cho, S. S., & Song, M. (2020) · IEEE International Conference on Electro Information Technology · doi:10.1109/eit48999.2020.9248703 · Cited by 1 · see citing works
Flexible semi-automatic support for type migration of primitives for C/C++ programs
Szalay, R., & Porkoláb, Z. (2022) · IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER) · doi:10.1109/saner53432.2022.00106 · Cited by 1 · see citing works
PyTPU: Migration of Python Code for Heterogenous Acceleration with Automated Test Generation
Kundu, A., & Nguyen, U. T. (2023) · IEEE/ACIS International Conference on Big Data, Cloud Computing, and Data Science (BCD) · doi:10.1109/bcd57833.2023.10466329 · Cited by 1 · see citing works
An Experience Report on Assessing Software Engineer’s Outputs in Practice
Zhang, J., Zhang, H., Yang, L., Dong, L., & Li, Y. (2023) · International Conference on Software and System Process · doi:10.1109/icssp59042.2023.00012 · Cited by 1 · see citing works
Towards strengthening software library interfaces with granular and interactive type migrations
Szalay, R. (2023) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1109/icse-companion58688.2023.00063 · Cited by 1 · see citing works
Model‐based source code refactoring with interaction and visual cues
Moghadam, I. H., Cinnéide, M. Ó., Sardarian, A., & Zarepour, F. (2023) · Journal of Software Evolution and Process · doi:10.1002/smr.2596 · Cited by 1 · see citing works
Decision Making on Critical Component Using Combined Approach
Nagpal, R., Sehgal, R., & Mehrotra, D. (2020) · Services and business process reengineering · doi:10.1007/978-981-15-2455-4_8 · Cited by 1 · see citing works
Predictable, Flexible or Correct
Eilertsen, A. M. (2020) · doi:10.1145/3387940.3392185 · Cited by 1 · see citing works
Interaktionsdesign menschzentrierter Refactoring-Tools
Raab, F. (2012) · Information - Wissenschaft & Praxis · doi:10.1515/iwp-2012-0062
Using Naming Patterns for Identifying Architectural Technical Debt
del Carpio, P. M. (2017) · Advances in Science Technology and Engineering Systems Journal · doi:10.25046/aj020130
TOWARDS CUSTOMIZING SMELL DETECTION AND REFACTORINGS
OLIVEIRA, D. T. M. D. (2020) · doi:10.17771/pucrio.acad.56525
- Authors
- Vakilian, M., Chen, N., Negara, S., Rajkumar, B. A., Bailey, B. P., & Johnson, R. E.
- Affiliations
- University of Illinois Urbana-Champaign (US)
- Venue
- 2012 34th International Conference on Software Engineering (ICSE)
- Publisher
- IEEE
- Published
- 2012-06
- Pages
- 233-243
- ISSN
- 0270-5257 (ISSN-L)
- OpenAlex
- W3151395068
- Cited by
- 106
- References
- 32
- Citations by year
- 2025: 2 · 2024: 5 · 2023: 10 · 2022: 8 · 2021: 6 · 2020: 15 · 2019: 7 · 2018: 8 · 2017: 12 · 2016: 5 · 2015: 9 · 2014: 5 · 2013: 10 · 2012: 4
- FWCI
- 7.04
- Type
- conference paper
- Language
- en
- Open access
- closed
- Locations
- ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) (publishedVersion)
- Funders
- National Science Foundation
- Topics
- Physical Sciences › Computer Science › Information Systems › Software Engineering Research
- Physical Sciences › Computer Science › Information Systems › Software Engineering Techniques and Practices
- Physical Sciences › Computer Science › Artificial Intelligence › Logic, programming, and type systems
- Keywords
- automated refactoring, refactoring tools, programmer behavior, tool misuse, software maintenance
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review