University of Twente Student Theses


Negomancer : Improvise. Adapt. Overcome. Transform.

Bui, Nhat (2021) Negomancer : Improvise. Adapt. Overcome. Transform.

[img] PDF
Abstract:On average, 70% of any codebase is identifiers [1]. Hence, one of the most used techniques of code refactoring is renaming [2, 3]. Renaming is the process of globally and systematically changing the name of an identifier within the code to better represent its purpose. For its popularity, symbol renaming is widely supported in most code editors and IDEs. However, most, if not all, of the current renaming flows of a symbol are basic and linear, or with a low level of negotiation (only offering basic one-way suggestions based on its type and/or some naming conventions). Negotiate is the act of trying to achieving a compromise between the transformation engine (the "computing unit") and its user (the side requesting the transformation), giving the user more flexibility and the engine more adaptability. In this project, we introduce proper negotiation into this renaming flow. The main goals of this research are to first examine and find out what can be useful strategies for negotiating with the refactoring engine. Then leveraging that knowledge to create a domain-specific language (DSL) expressing how the user can actually negotiate. Finally, we explore to what extend negotiation can be integrated into a code editor or an IDE. --- References --- [1] Florian Deissenboeck and Markus Pizka. “Concise and consistent naming [software system identifier naming]”. In: 13th International Workshop on Program Comprehension (IWPC’05). June 2005, pp. 97–106. doi: 10.1109/WPC.2005.14 [2] Anthony Peruma, Mohamed Wiem Mkaouerand, Michael John Decker, and Christian D. Newman. “An Empirical Investigation of How and Why Developers Rename Identifiers”. In: Proceedings of the 2nd International Workshop on Refactoring. IWoR 2018. Montpellier, France: Association for Computing Machinery, 2018, pp. 26–33. doi: 10.1145/3242163.3242169 [3] Hui Liu, Qiurong Liu, Yang Liu, and Zhouding Wang. “Identifying Renaming Opportunities by Expanding Conducted Rename Refactorings”. In: IEEE Transactions on Software Engineering 41.9 (2015), pp. 887–900. doi: 10.1109/TSE.2015.2427831
Item Type:Essay (Master)
Faculty:EEMCS: Electrical Engineering, Mathematics and Computer Science
Subject:54 computer science
Programme:Computer Science MSc (60300)
Link to this item:
Export this item as:BibTeX
HTML Citation
Reference Manager


Repository Staff Only: item control page