Refactoring Tools for New Language Features

This project develops refactoring tools and techniques for transforming legacy programs into the ones using new language features. An example is the “default method” feature in Java 9. We investigate an automated refactoring tool that identify and transform classes where new features are applicable, and also study acceptance of those features through proactive user study.

This is a collaborative project with Raffi Khatchadourian at CUNY.