The DOI matches its Crossref record; 32 of the 32 references it cites were found in a registry or an index.
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.
Overview
Integrity signals
Registry
Cites
Statistics
Verification
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?
In the citing paper
“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]
Citations
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
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
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
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
Refactoring object-oriented frameworks
Opdyke, W. F. (1992) · Cited by 1,014
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
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
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
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
The costs and benefits of pair programming
Cockburn, A., & Williams, L. A. (2001) · Cited by 403
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
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
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
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
An interactive ambient visualization for code smells
Murphy-Hill, E. R., & Black, A. P. (2010) · doi:10.1145/1879211.1879216 · Cited by 147
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
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
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
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
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
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
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 59
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
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
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
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 40
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
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
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
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
Self-citationA Model of Refactoring Tool Use
Murphy-Hill, E. R. (2009) · Cited by 12
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
Self-citation
Research works printed but not linked: 10
- 0, Eclipse Documentation on Refactoring Wizard
- 0, ReSharper
- 0, Eclipse Usage Data
- tsantalis, 2010, Evaluation and Improvement of Software Architecture Identification of Design Problems in Object- Oriented Systems and Resolution Through Refactorings
- beck, 2010, eXtreme Programming Explained
- 0, Xcode
- 0, Eclipse
- 10.1518/hfes.46.1.50.30392 · DOI · Paper page
- 0, IntelliJ IDEA
- 0, Netbeans
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
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
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
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
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
Metadata
- 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 › Software › 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