Fourth Workshop on Refactoring Tools (WRT'11)

in conjunction with
ICSE 2011
May 21-27, 2011
Honolulu, Hawaii


- Registration handled through ICSE registration web page
- Workshop date: Sun, May 22, 2011.
- Workshop location: Sea Pearl 3&4, on 6th floor of Mid-Pacific Conference Center (see resort map).

Invited Talks

We are excited to announce two invited talks: one about the past and one about the future.
Bill Griswold

William Griswold
University of California, San Diego

The Birth of Refactoring - a Personal Perspective

Abstract Software Refactoring was invented in the late 1980's at two institutions -- the University of Illinois by Bill Opdyke and Ralph Johnson, and the University of Washington by myself and David Notkin. In this talk I revisit the surprising events at the birth of refactoring -- what we called meaning-preserving restructuring -- at the University of Washington. I'll talk about how the ideas came about, and the research agenda and results that emerged. In the course of the presentation, I'll highlight several lessons for researchers seeking high impact in their work.

Bio William Griswold is a Professor of Computer Science and Engineering at the University of California, San Diego. He received his Ph.D. in Computer Science from the University of Washington in 1991, and his BA in Mathematics from the University of Arizona in 1985. His research interests include software evolution and design, aspect-oriented software development, and ubiquitous computing. Griswold is a pioneer in the area of software refactoring; he also built ActiveCampus, one of the early mobile location-aware systems. He was Program Chair of SIGSOFT FSE in 2002 and Program co-Chair of ICSE in 2005. He is the recent past-Chair of ACM SIGSOFT.

Kathryn Stolee

Kathryn Stolee
University of Nebraska, Lincoln

End-user Refactoring

Abstract Refactoring was originally developed as a means to help programmers create more maintainable and dependable code by performing meaning-preserving transformations, and research in this area has produced many sophisticated tools and techniques that have been of great benefit to professional programmers. In recent years, a larger class of programmers has emerged, end user programmers, encompassing more than 55 million people. These programmers do not have formal training in software engineering, yet they create software that is meaningful to themselves, their jobs, and society. End user programmers use a variety of languages and environments, and like professional programmers, their code suffers from inefficiencies, bugs, and unnecessary complexity. In our recent work, we have defined and applied a set of refactorings to just one of these end user languages, and our preliminary analysis shows that end users prefer the simpler programs that result from the transformations. This talk will summarize our work on this area, present opportunities for future refactoring work in this new domain, and explore what refactoring means for end user programmers.

Bio Katie Stolee is a Ph.D. student in the Computer Science and Engineering Department at the University of Nebraska-Lincoln, where she also received her B.S. and M.S. in computer science and is advised by Sebastian Elbaum. Her research aims to bring the benefits of software engineering to the growing population of end users by developing tools and techniques that support end user programmers, most notably through refactoring. She is a recipient of an NSF graduate research fellowship award.


Refactoring is the process of applying behavior-preserving transformations to a program with the objective of improving the program's design. A specific refactoring is identified by a name (e.g., Extract Method), a set of preconditions, and a set of specific transformations that need to be performed.

Tool support for refactoring is highly desirable because checking the preconditions for a given refactoring often requires nontrivial program analysis, and applying the transformations may affect many locations throughout a program. In recent years, the emergence of light-weight programming methodologies such as Extreme Programming has generated a great amount of interest in refactoring, and refactoring support has become a required feature in modern-day IDEs.

Until recently, there has not been a suitable forum for discussions among researchers and developers of such tools. Our prior refactoring tools workshops (initially at ECOOP 2007, then at OOPSLA 2008, 2009) clearly met a need, and there was strong interest expressed in holding a follow-on workshop.

We invite developers and researchers in the field of refactoring to submit presentations and demonstration proposals about practical refactoring tools.


While there is a great deal of interest in developing tool support for refactoring, researchers and tool vendors rarely work together.

This forum will enable the transfer of ideas and expertise both ways:

By bringing together researchers and tool vendors:

This workshop is the next step in our ongoing effort to create such a community, building on our successful refactoring workshops at ECOOP 2007 and OOPSLA 2008-2009.

Potential topics are those related to refactoring tools including, but not restricted to:


All accepted papers will be published electronically and will be available from the ACM DL. The proceedings will also be available on the ICSE USB stick.

Preliminary schedule

Session 1 8.30
  • Opening, 1-minute introductions
  • Keynote: The Birth of Refactoring - A Personal Perspective [William Griswold]
  • A Visualization Method of Program Dependency Graph for Identifying Extract Method Opportunity [T. Kanemitsu, Y. Higo and S. Kusumoto]
  • Automated Acceptance Test Refactoring[R. Borgand, W. Kropp]
Break 10.00
  • Coffee Break
  • Discussion
Long Talks Session 10.30
  • A Refactoring Tool to Extract GPU Kernels[K. Damevski and M. Muralimanohar]
  • Understanding the Longevity of Code Smells - Preliminary Results of an Explanatory Survey [R. Arcoverde, A. Garcia and E. Figueiredo]
  • Code-Motion for API Migration: Fixing SQL Injection Vulnerabilities in Java[A. Abadi, Y.A. Feldman and M. Shomrat]
  • Code-Imp: A Tool for Automated Search-Based Refactoring [I.M. Moghadam and M. O Cinneide]
Lunch 12.00
Afternoon Session 1 13.30
  • Invited Talk: End-user refactoring [Kathryn Stolee]
  • Impact of refactoring on quality code evaluation [F.A. Fontana and S. Spinelli]
  • A Security-Aware Refactoring Tool for Java Programs[K. Maruyama and T. Omori]
Break 15.00
  • Coffee Break
  • Choose Breakout Discussion Topics
Focus Group Discussions 15.30
  • Breakout Session
  • Breakout Session Results
  • Workshop Retrospective and Concluding


Participation is open to anybody interested in the topic of refactoring. To register for the workshop, use the ICSE registration page.

Based on submissions, the schedule will include a mix of system demonstrations, short presentations, panel discussions and informal discussions. Proceedings will appear in the ACM Digital Library.