CS 6704: Software Refactoring Spring 2016 Eli Tilevich Software refactoring--—a semantics preserving program transformation—--has been firmly embraced by the real-world software development community. Indeed, automated refactoring support has become part and parcel of every major integrated development environment (IDE). Nevertheless, refactoring remains one of the most active research areas in software engineering research, with new, exciting results appearing regularly in major research publications. Refactoring has been successfully applied not only to program source code, but also to metadata, user interfaces, and binary representations. In this seminar class, we will read and discuss classic software refactoring papers as well as recent research results in the area. For their term projects, students will be expected to develop and evaluate refactoring approaches, techniques, and tools pertaining to their own research.