Thu 8 Nov 2018 11:37 - 12:00 at Studio 1 - Weak Memory and Refactoring Chair(s): Richard Jones

Identification of potential refactoring opportunities is an important step in the refactoring process. In large systems, manual identification of useful refactoring opportunities requires a lot of effort and time. Hence, there is a need for automatic identification of refactoring opportunities. However, this problem has not been addressed well for many non-trivial refactorings. In this paper, we present new approaches to identify refactoring opportunities for the popular “Replace Type Code with Subclass" (SC) and “Replace Type Code with State" (ST) refactorings.

Our proposed approach is based around the notion of control-fields. A control-field is a field of a class that exposes the different underlying behaviors of the class. Each control-field can lead to a possible SC/ST refactoring of the associated/interacting classes. We first present a formal definition of control-fields and then present algorithms to identify and prune them; each of these pruned control-fields represents a refactoring opportunity. Further, we present a novel ow- and context-sensitive analysis to classify each of these refactoring opportunities into one of the SC and ST opportunities. We have implemented our proposed approach in a tool called Auto-SCST, and demonstrated its effectiveness by evaluating it against eight open-source Java applications.

Thu 8 Nov

Displayed time zone: Guadalajara, Mexico City, Monterrey change

10:30 - 12:00
Weak Memory and RefactoringOOPSLA at Studio 1
Chair(s): Richard Jones University of Kent
10:30
22m
Talk
Optimal Stateless Model Checking under the Release-Acquire Semantics
OOPSLA
Parosh Aziz Abdulla Uppsala University, Sweden, Mohamed Faouzi Atig Uppsala University, Bengt Jonsson Uppsala University, Tuan Phong Ngo Uppsala University
10:52
22m
Talk
Towards Understanding the Costs of Avoiding Out-of-Thin-Air Results
OOPSLA
Peizhao Ou University of California, Irvine, Brian Demsky University of California, Irvine
11:15
22m
Talk
Persistence Semantics for Weak Memory
OOPSLA
Azalea Raad MPI-SWS, Germany, Viktor Vafeiadis MPI-SWS, Germany
11:37
22m
Talk
Identifying Refactoring Opportunities for Replacing Type Code with Subclass and State
OOPSLA
Jyothi Vedurada IIT Madras, V Krishna Nandivada IIT Madras