skip to main content
10.1145/3242163.3242170acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
research-article

A study on developer perception of transformation languages for refactoring

Published: 04 September 2018 Publication History

Abstract

Although there is much research advancing state-of-art of program transformation tools, their application in industry source code change problems has not yet been gauged. In this context, the purpose of this paper is to better understand developer familiarity and comfort with these languages by conducting a survey. It poses, and answers, four research questions to understand how frequently source code transformation languages are applied to refactoring tasks, how well-known these languages are in industry, what developers think are obstacles to adoption, and what developer refactoring habits tell us about their current use, or underuse, of transformation languages. The results show that while source code transformation languages can fill a needed niche in refactoring, research must motivate their application. We provide explanations and insights based on data, aimed at the program transformation and refactoring communities, with a goal to motivate future research and ultimately improve industry adoption of transformation languages for refactoring tasks.

References

[1]
M. Fowler, Refactoring: improving the design of existing code: Addison-Wesley Longman Publishing Co., Inc., 1999.
[2]
M. L. Collard, J. I. Maletic, and B. P. Robinson, "A lightweight transformational approach to support large scale adaptive changes," presented at the Proceedings of the 2010 IEEE International Conference on Software Maintenance, 2010.
[3]
S. Negara, N. Chen, M. Vakilian, R. E. Johnson, and D. Dig, "A comparative study of manual and automated refactorings," presented at the Proceedings of the 27th European conference on Object-Oriented Programming, Montpellier, France, 2013.
[4]
E. Murphy-Hill, C. Parnin, and A. P. Black, "How we refactor, and how we know it," presented at the Proceedings of the 31st International Conference on Software Engineering, 2009.
[5]
E. Murphy-Hill and A. P. Black, "Refactoring Tools: Fitness for Purpose," IEEE Softw., vol. 25, pp. 38-44, 2008.
[6]
P. Klint, T. v. d. Storm, and J. Vinju, "RASCAL: A Domain Specific Language for Source Code Analysis and Manipulation," presented at the Proceedings of the 2009 Ninth IEEE International Working Conference on Source Code Analysis and Manipulation, 2009.
[7]
J. R. Cordy, "The TXL source transformation language," Sci. Comput. Program., vol. 61, pp. 190-210, 2006.
[8]
C. D. Newman, "A SOURCE CODE TRANSFORMATION LANGUAGE TO SUPPORT SOFTWARE EVOLUTION," Kent State University, 2017.
[9]
M. D. Jong and E. Visser, "Implementing Refactorings in the Spoofax Language Workbench," SERG Technical Report, pp. 1-19, 2013.
[10]
M. Kim, T. Zimmermann, and N. Nagappan, "An Empirical Study of Refactoring Challenges and Benefits at Microsoft," IEEE Transactions on Software Engineering., vol. 40, pp. 633-649, 2014.
[11]
M. L. Collard, M. J. Decker, and J. I. Maletic, "srcML: An Infrastructure for the Exploration, Analysis, and Manipulation of Source Code: A Tool Demonstration," presented at the Proceedings of the 2013 IEEE International Conference on Software Maintenance, 2013.
[12]
H. Li and S. Thompson, "Let's make refactoring tools user-extensible!," presented at the Proceedings of the Fifth Workshop on Refactoring Tools, Rapperswil, Switzerland, 2012.
[13]
N. Meng, M. Kim, and K. S. McKinley, "LASE: locating and applying systematic edits by learning from examples," presented at the Proceedings of the 2013 International Conference on Software Engineering, San Francisco, CA, USA, 2013.
[14]
R. Rolim, G. Soares, L. D'Antoni, O. Polozov, S. Gulwani, R. Gheyi, et al., "Learning syntactic program transformations from examples," presented at the Proceedings of the 39th International Conference on Software Engineering, Buenos Aires, Argentina, 2017.
[15]
N. Meng, M. Kim, and K. S. McKinley, "Sydit: creating and applying a program transformation from an example," presented at the Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering, Szeged, Hungary, 2011.
[16]
M. W. Mkaouer, M. Kessentini, S. Bechikh, K. Deb, and M. Ó Cinnéide, "Recommendation system for software refactoring using innovization and interactive dynamic optimization," in Proceedings of the 29th ACM/IEEE international conference on Automated software engineering, 2014, pp. 331- 336.
[17]
T. Mens, S. Demeyer, and D. Janssens, "Formalising Behaviour Preserving Program Transformations," Berlin, Heidelberg, 2002, pp. 286-301.
[18]
M. Vakilian, N. Chen, S. Negara, B. A. Rajkumar, B. P. Bailey, and R. E. Johnson, "Use, disuse, and misuse of automated refactorings," presented at the Proceedings of the 34th International Conference on Software Engineering, Zurich, Switzerland, 2012.
[19]
G. Kniesel and H. Koch, "Static composition of refactorings," Sci. Comput. Program., vol. 52, pp. 9-51, 2004.
[20]
R. Moser, P. Abrahamsson, W. Pedrycz, A. Sillitti, and G. Succi, "A Case Study on the Impact of Refactoring on Quality and Productivity in an Agile Team," in Balancing Agility and Formalism in Software Engineering, M. Bertrand, R. N. Jerzy, and W. Bartosz, Eds., ed: Springer-Verlag, 2008, pp. 252-266.
[21]
F. Palomba, G. Bavota, M. D. Penta, R. Oliveto, and A. D. Lucia, "Do They Really Smell Bad? A Study on Developers' Perception of Bad Code Smells," presented at the Proceedings of the 2014 IEEE International Conference on Software Maintenance and Evolution, 2014.
[22]
A. F. Yamashita and L. Moonen, "Do developers care about code smells? An exploratory survey," 2013 20th Working Conference on Reverse Engineering (WCRE), pp. 242-251, 2013.
[23]
L. C. L. Kats and E. Visser, "The spoofax language workbench: rules for declarative specification of languages and IDEs," SIGPLAN Not., vol. 45, pp. 444-463, 2010.
[24]
J. Lawall, G. Muller, and R. Urunuela, Tarantula: Killing Driver Bugs Before They Hatch, 2005.
[25]
Y. Padioleau, J. L. Lawall, and G. Muller, "SmPL: A Domain-Specific Language for Specifying Collateral Evolutions in Linux Device Drivers," Electron. Notes Theor. Comput. Sci., vol. 166, pp. 47-62, 2007.
[26]
R. L. Akers, I. D. Baxter, and M. Mehlich, "Invited application paper: reengineering C++ components via automatic program transformation," presented at the Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation, Verona, Italy, 2004.
[27]
V. Augustine, "Automating adaptive maintenance changes with SrcML and LINQ," presented at the Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, Cary, North Carolina, 2012.

Cited By

View all
  • (2021)One thousand and one stories: a large-scale survey of software refactoringProceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3468264.3473924(1303-1313)Online publication date: 20-Aug-2021
  • (2021)Refactoring Practices in the Context of Modern Code Review: An Industrial Case Study at Xerox2021 IEEE/ACM 43rd International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP)10.1109/ICSE-SEIP52600.2021.00044(348-357)Online publication date: May-2021
  • (2021)Behind the scenes: On the relationship between developer experience and refactoringJournal of Software: Evolution and Process10.1002/smr.2395Online publication date: 28-Oct-2021
  • Show More Cited By

Index Terms

  1. A study on developer perception of transformation languages for refactoring

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    IWoR 2018: Proceedings of the 2nd International Workshop on Refactoring
    September 2018
    45 pages
    ISBN:9781450359740
    DOI:10.1145/3242163
    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: 04 September 2018

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Refactoring
    2. Software Evolution
    3. Software Maintenance
    4. Source Code Manipulation

    Qualifiers

    • Research-article

    Conference

    ASE '18
    Sponsor:

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)8
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 02 Mar 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2021)One thousand and one stories: a large-scale survey of software refactoringProceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3468264.3473924(1303-1313)Online publication date: 20-Aug-2021
    • (2021)Refactoring Practices in the Context of Modern Code Review: An Industrial Case Study at Xerox2021 IEEE/ACM 43rd International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP)10.1109/ICSE-SEIP52600.2021.00044(348-357)Online publication date: May-2021
    • (2021)Behind the scenes: On the relationship between developer experience and refactoringJournal of Software: Evolution and Process10.1002/smr.2395Online publication date: 28-Oct-2021
    • (2020)On the Relationship Between Developer Experience and RefactoringProceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops10.1145/3387940.3392193(342-349)Online publication date: 27-Jun-2020
    • (2020)Increasing the Trust In Refactoring Through VisualizationProceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops10.1145/3387940.3392190(334-341)Online publication date: 27-Jun-2020
    • (2020)Toward the automatic classification of Self-Affirmed RefactoringJournal of Systems and Software10.1016/j.jss.2020.110821(110821)Online publication date: Sep-2020

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media