Open Access
Scripting Refactorings in Java to Introduce Design Patterns
Jongwook Kim,Don Batory,Danny Dig +2 more
- 01 Jan 2014
1
TL;DR: Reflective Refactoring (R 2) is presented, a Java package to automate the introduction of classical design patterns (Visitor, Abstract Factory, etc), their inverses and variants, and why refactoring speed and correctness are critical issues for scripting in next-generation refactororing engines.
read more
Abstract: Introducing design patterns into a program by hand is tedious and error-prone. Refactorings help but manual tasks still remain: you must understand available refactorings, determine a precise sequence of refactorings to invoke, and perform these tasks repetitively to a laborious degree. We present Reflective Refactoring (R 2 ), a Java package to automate the introduction of classical design patterns (Visitor, Abstract Factory, etc), their inverses and variants. We encoded 78% of classical design patterns asR 2 scripts. In one application,R 2 automatically created a visitor with 276 visit methods by invoking 554 Eclipse refactorings in a few minutes ‐ an achievement that could not be done manually. We demonstrate the generality and scalability ofR 2 , illustrate its productivity potential, and explain why refactoring speed and correctness are critical issues for scripting in next-generation refactoring engines.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Can undergraduates script their own refactorings
Jongwook Kim,Don Batory,Danny Dig +2 more
- 27 Oct 2013
TL;DR: A status report on a project to build a refactoring engine whose primary goal is to allow undergraduate students to write classical and neo-classical refactorings and design patterns as parameterizedRefactoring scripts in Java.
1
References
•Book
Design Patterns: Elements of Reusable Object-Oriented Software
Erich Gamma,Richard Helm,Ralph E. Johnson,John Vlissides +3 more
- 01 Jan 1994
TL;DR: The book is an introduction to the idea of design patterns in software engineering, and a catalog of twenty-three common patterns, which most experienced OOP designers will find out they've known about patterns all along.
24.8K
Stratego/XT 0.17. A language and toolset for program transformation
TL;DR: An overview ofStratego/XT 0.17 is given, including a description of the Stratego language and XT transformation tools; a discussion of the implementation techniques and software engineering process; and a descriptionof applications built with Strate go/XT.
346
DMS: program transformations for practical scalable software evolution
Ira D. Baxter
- 19 May 2002
TL;DR: DMS is described, a practical, commercial program analysis and transformation system, and sketches a variety of tasks to which it has been applied, from redocumenting to large-scale system migration.
A tutorial on feature oriented programming and the AHEAD tool suite
TL;DR: Feature oriented programming (FOP) is an emerging paradigm for application synthesis, analysis, and optimization for feature oriented programming.
Related Papers (5)
Xi Ge,Saurabh Sarkar,Jim Witschey,Emerson Murphy-Hill +3 more
- 01 Oct 2017
Nik Sultana
- 01 Apr 2008
Xi Ge,Emerson Murphy-Hill +1 more
- 31 May 2014