Empirical Evaluation of a Live Environment for Code Refactoring
Complex software can be hard to read, adapt, and maintain. Refactoring it can create cleaner and self-explanatory code. Refactoring tools try to guide developers towards better code, with more quality. However, most of them take too long to provide feedback, support, and guidance on how developers should improve their software. To reduce this problem, we explored the concept of Live Refactoring, focusing on visually suggesting and applying refactorings, in real-time. With this in mind, we developed a Live Refactoring Environment that visually identifies, recommends, and applies Extract Method refactorings. To validate it, we conducted an empirical experiment. Early results showed that our approach improved several code quality metrics. Besides, we also concluded that our results were significantly different and better than the ones from refactoring the code manually without further help.
Rename Chains: An Exploratory Study on the Occurrence and Characteristics of Identifiers Undergoing Multiple Renamings
Identifier names play a significant role in program comprehension activities, with high-quality names improving developer productivity and system quality. To correct poor-quality names, developers rename identifiers to reflect their intended purpose better. However, renames do not always result in high-quality, long-lasting names; in many cases, developers perform multiple rename operations on the same identifier throughout the system’s lifetime. In this paper, we report on a large-scale empirical study that examines the occurrence of identifiers undergoing multiple renames (i.e., rename chains). Our findings show the presence of rename chains in almost every project, with methods typically having more rename chains than other identifier types. Furthermore, it is usually the same developer responsible for creating all renames within a chain, with most names maintaining the same grammatical structure. Understanding rename chains can help us provide stronger advice, and targeted research, on how to craft high-quality, long-lasting identifiers.
Refactoring is an increasingly well studied practice at small scales, with most tool support and research focusing on floss refactoring. However, industry engages in refactoring at many scales and the implications for practices, tools, and needed research are less well understood. This talk will describe ways in which large-scale refactoring differs from more local refactoring efforts, industry examples of larger problems, results from an industry survey on large-scale refactoring, and a few automation needs that would help industry scale refactoring activities.
Dr. Marouane Kessentini is currently a full professor, chair of the Department of Computer Science and Engineering at Oakland University in Michigan and director of the NSF IUCRC center on Pervasive AI; Michigan Site. He received his Ph.D. from the University of Montreal in Canada in 2012. Dr. Kessentini is a recipient of the prestigious 2018 President of Tunisia distinguished research award, the University distinguished teaching award, the University distinguished digital education award, the College of Engineering and Computer Science distinguished research award, 4 best paper awards including an IEEE 10 Year Most Influential Paper award in Program Comprehension (2011-2021), and his AI-based software refactoring invention, licensed and deployed by Fortune 500 companies, and selected as one of the Top 8 inventions at the University of Michigan for 2018 among over 500 inventions, by the UM Technology Transfer Office. He received various grants from both industry and federal agencies and published over 160 papers in top journals and conferences. Dr. Kessentini has extensive collaborations with the industry on different areas related to refactoring, software engineering intelligence, search-based software engineering, Edge AI, AI/MLOps, AI and cyber-physical systems, intelligent software bots, etc. He is the co-founder of many workshops, General Chair of SSBSE16 and ASE22, and PC chair of MODELS19, SANER 2021, GECCO, etc. He served as a keynote speaker at various venues including ICSR, SSBSE, GECCO, WCCI, etc. He graduated 15+ Ph.D. students and served as associate editor in 7 journals and PC member of over 150 conferences.
The coffee break is an intentional allocation of time toward low-fidelity activities like chatting and brain storming. The idea is to help break the flow of the conference in a way that helps restore energy and create engagement.