Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1368088.1368146acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Breaking the barriers to successful refactoring: observations and tools for extract method

Published: 10 May 2008 Publication History

Abstract

Refactoring is the process of changing the structure of code without changing its behavior. Refactoring can be semi-automated with tools, which should make it easier for programmers to refactor quickly and correctly. However, we have observed that many tools do a poor job of communicating errors triggered by the refactoring process and that programmers using them sometimes refactor slowly, conservatively, and incorrectly. In this paper we characterize problems with current refactoring tools, demonstrate three new tools to assist in refactoring, and report on a user study that compares these new tools against existing tools. The results of the study show that speed, accuracy, and user satisfaction can be significantly increased. From the new tools we induce a set of usability recommendations that we hope will help inspire a new generation of programmer-friendly refactoring tools.

References

[1]
Adobe Systems Incorporated. 2007. Adobe GoLive. http://www.adobe.com/products/golive.
[2]
Andersen, T.R. 2005. "Extract Method: Error Message Should Indicate Offending Variables." https://bugs.eclipse.org/bugs/show_bug.cgi?id=89942.
[3]
Azureus Incorporated. 2005. Azureus. http://azureus.sourceforge.net.
[4]
The Eclipse Foundation. 2007. Eclipse. http://eclipse.org.
[5]
Ernst, M. D. 1994. Practical Fine-grained Static Slicing of Optimized Code. Technical Report. MSR-TR-94-14, Microsoft Research.
[6]
Findler, R., Clements, J., Flatt, M., Krishnamurthi, S., Steckler, P., and Felleisen, M. 2002. "DrScheme: A Programming Environment for Scheme." Journal of Functional Programming, vol. 12, pp. 159--182.
[7]
Fowler, M. 2001. Crossing Refactoring's Rubicon," http://martinfowler.com/articles/refactoringRubicon.html.
[8]
Fowler, M. 1999. Refactoring: Improving the Design of Existing Code. Addison-Wesley Longman Publishing Co., Inc.
[9]
Griswold, W. G. 1991. Program Restructuring as an Aid to Software Maintenance. Doctoral Thesis. UMI Order No. GAX92-03258., University of Washington.
[10]
Hendrix, T. D., Cross, J. H., Maghsoodloo, S., and McKinney, M. L. 2000. Do visualizations improve program comprehensibility? Experiments with control structure diagrams for Java. In Proceedings of the Thirty-First SIGCSE Technical Symposium on Computer Science Education. (Austin, Texas, United States, March 07 - 12, 2000). ACM Press, New York, NY, 382--386.
[11]
Hugunin, J. and Warsaw, B. 2005. Jython, http://www.jython.org.
[12]
JasperSoft Corporation. 2005. JasperReports, http://jasperreports.sourceforge.net.
[13]
Joy, W. and Horton, M. 1984. "An Introduction to Display Editing with Vi.
[14]
Mealy, E., Carrington, D., Strooper, P., and Wyeth, P. 2007. Improving Usability of Software Refactoring Tools. In Proceedings of the 2007 Australian Software Engineering Conference (April 10 - 13, 2007). ASWEC. IEEE Computer Society, Washington, DC, 307--318.
[15]
Murphy-Hill, E. 2006. Improving Refactoring with Alternate Program Views. Research Proficiency Exam, TR-06-086, Portland State University, http://multiview.cs.pdx.edu/publications/rpe.pdf, Portland, OR.
[16]
Murphy-Hill, E. 2006. Improving usability of refactoring tools. In Companion to the 21st ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (Portland, Oregon, USA, October 22 - 26, 2006). OOPSLA '06. ACM, New York, NY, 746--747.
[17]
Murphy-Hill, E. and Black, A. 2007. Why don't people use refactoring tools? In Proceedings of the 1st Workshop on Refactoring Tools. ECOOP '07. TU Berlin, ISSN 1436--9915.
[18]
Murphy-Hill, E. and Black, A. 2007. High velocity refactorings in Eclipse. In Proceedings of the 2007 OOPSLA Workshop on Eclipse Technology Exchange (Montreal, Quebec, Canada, October 21 - 21, 2007). ETX '07. ACM, New York, NY, 1--5.
[19]
Omnicore Software. 2007. CodeGuide. http://www.omnicore.com.
[20]
Opdyke, W. F. 1992. Refactoring Object-Oriented Frameworks. Doctoral Thesis. UMI Order Number: GAX93-05645., University of Illinois at Urbana-Champaign.
[21]
O'Connor, A., Shonle, M., and Griswold, W. 2005. Star diagram with automated refactorings for Eclipse. In Proceedings of the 2005 OOPSLA Workshop on Eclipse Technology Exchange (San Diego, California, October 16 - 17, 2005). ETX '05. ACM Press, New York, NY, 16--20.
[22]
Roberts, D. B. 1999. Practical Analysis for Refactoring. Doctoral Thesis. UMI Order Number: AAI9944985., University of Illinois at Urbana-Champaign.
[23]
Roberts, D. B., Brant, J., and Johnson, R. 1997. A refactoring tool for Smalltalk. Theory and Practice of Object Systems 3, 4 (October 1997), 253--263.
[24]
Sun Microsystems Incorporated. 2005. Java 1.4.2 Standard Libraries, http://java.sun.com/j2se/1.4.2/.
[25]
Thomas, A. and Bareshev, D. 2005. GanttProject, http://ganttproject.sourceforge.net.
[26]
Xref-Tech. 2005. Xrefactory, http://www.xref-tech.com.

Cited By

View all
  • (2024)Behind the Intent of Extract Method Refactoring: A Systematic Literature ReviewIEEE Transactions on Software Engineering10.1109/TSE.2023.334580050:4(668-694)Online publication date: 4-Jan-2024
  • (2024)Revealing MOVE METHOD: Machine Learning-driven Real-time Refactoring Identification for Enhanced Software Quality2024 International Conference on Emerging Systems and Intelligent Computing (ESIC)10.1109/ESIC60604.2024.10481609(572-578)Online publication date: 9-Feb-2024
  • (2023)Adventure of a Lifetime: Extract Method Refactoring for RustProceedings of the ACM on Programming Languages10.1145/36228217:OOPSLA2(658-685)Online publication date: 16-Oct-2023
  • Show More Cited By

Index Terms

  1. Breaking the barriers to successful refactoring: observations and tools for extract method

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ICSE '08: Proceedings of the 30th international conference on Software engineering
    May 2008
    558 pages
    ISBN:9781605580791
    DOI:10.1145/1368088
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 10 May 2008

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. environments
    2. refactoring
    3. tools
    4. usability

    Qualifiers

    • Research-article

    Conference

    ICSE '08
    Sponsor:

    Acceptance Rates

    ICSE '08 Paper Acceptance Rate 56 of 370 submissions, 15%;
    Overall Acceptance Rate 276 of 1,856 submissions, 15%

    Upcoming Conference

    ICSE 2025

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)26
    • Downloads (Last 6 weeks)5
    Reflects downloads up to 19 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Behind the Intent of Extract Method Refactoring: A Systematic Literature ReviewIEEE Transactions on Software Engineering10.1109/TSE.2023.334580050:4(668-694)Online publication date: 4-Jan-2024
    • (2024)Revealing MOVE METHOD: Machine Learning-driven Real-time Refactoring Identification for Enhanced Software Quality2024 International Conference on Emerging Systems and Intelligent Computing (ESIC)10.1109/ESIC60604.2024.10481609(572-578)Online publication date: 9-Feb-2024
    • (2023)Adventure of a Lifetime: Extract Method Refactoring for RustProceedings of the ACM on Programming Languages10.1145/36228217:OOPSLA2(658-685)Online publication date: 16-Oct-2023
    • (2023)Just-in-time code duplicates extractionInformation and Software Technology10.1016/j.infsof.2023.107169158(107169)Online publication date: Jun-2023
    • (2023)A metrics-based approach for selecting among various refactoring candidatesEmpirical Software Engineering10.1007/s10664-023-10412-w29:1Online publication date: 16-Dec-2023
    • (2023)Rubbing salt in the wound? A large-scale investigation into the effects of refactoring on securityEmpirical Software Engineering10.1007/s10664-023-10287-x28:4Online publication date: 24-May-2023
    • (2022)Language Support for Refactorability Decay PreventionProceedings of the 21st ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3564719.3568688(122-134)Online publication date: 29-Nov-2022
    • (2022)What improves developer productivity at google? code qualityProceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3540250.3558940(1302-1313)Online publication date: 7-Nov-2022
    • (2022)Toward Understanding the Impact of Refactoring on Program Comprehension2022 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER53432.2022.00090(731-742)Online publication date: Mar-2022
    • (2022)Iteration Causes, Impact, and Timing in Software Development Lifecycle: An SLRIEEE Access10.1109/ACCESS.2022.318270310(65355-65375)Online publication date: 2022
    • Show More Cited By

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media