Thu 26 May 2022 14:10 - 14:30 at Room 304+305 - Demos 3 Chair(s): Wei Yang
Developers often change the types of program elements. Such a refactoring frequently involves updating not only the type of the element itself, but also the API of all type-dependent references in the code, thus it is tedious and time-consuming. Despite type changes being more frequent than renamings, just a few current IDE tools provide partially-automated support only for a small set of hard-coded types. Researchers have recently proposed a data-driven approach to inferring API rewrite rules for type change patterns in Java using code commits history. In this paper, we build upon these recent advances and introduce IntelliTC — a tool to perform Java type change refactoring. We implemented it as a plugin for IntelliJ IDEA, a popular Java IDE developed by JetBrains. We present 3 different ways of providing support for such a refactoring from the standpoint of the user experience: Classic mode, Suggested Refactoring, and Inspection mode. To evaluate these modalities of using IntelliTC, we surveyed 15 experienced software developers. They positively rated the usefulness of the tool.
The source code and distribution of the plugin are available on GitHub: https://github.com/JetBrains-Research/data-driven-type-migration. A demonstration video is on YouTube: https://youtu.be/pdcfvADA1PY.
Tue 10 MayDisplayed time zone: Eastern Time (US & Canada) change
03:00 - 04:00 | Tools and Environments 1DEMO - Demonstrations at ICSE Demo room 2 Chair(s): Junjie Wang Institute of Software at Chinese Academy of Sciences | ||
03:00 15mDemonstration | IntelliTC: Automating Type Changes in IntelliJ IDEA DEMO - Demonstrations Oleg Smirnov JetBrains Research, Saint Petersburg State University, Ameya Ketkar Oregon State University, USA, Timofey Bryksin JetBrains Research; HSE University, Nikolaos Tsantalis Concordia University, Danny Dig University of Colorado Boulder, USA Pre-print Media Attached | ||
03:15 15mDemonstration | Pynguin: Automated Unit Test Generation for Python DEMO - Demonstrations DOI Pre-print Media Attached | ||
03:30 15mDemonstration | TauPad: Test Data Augmentation of Point Clouds by Adversarial Mutation DEMO - Demonstrations Guandi Liu Nanjing University, Jiawei Liu Nanjing University, Quanjun Zhang Nanjing University, Chunrong Fang Nanjing University, Xufan Zhang Nanjing University |
Thu 26 MayDisplayed time zone: Eastern Time (US & Canada) change
13:30 - 15:00 | |||
13:30 20mDemonstration | UIPDroid: Unrooted Dynamic Monitor of Android App UIs for Fine-Grained Permission Control DEMO - Demonstrations Mulin Duan Singapore Management University, Lingxiao Jiang Singapore Management University, Lwin Khin Shar Singapore Management University, Debin Gao Singapore Management University Pre-print Media Attached | ||
13:50 20mDemonstration | CIDER: Concept-based Interactive Design Recovery DEMO - Demonstrations Hongzhou Fang Drexel University, Yuanfang Cai Drexel University, Rick Kazman University of Hawai‘i at Mānoa, Jason Lefever Drexel University | ||
14:10 20mDemonstration | IntelliTC: Automating Type Changes in IntelliJ IDEA DEMO - Demonstrations Oleg Smirnov JetBrains Research, Saint Petersburg State University, Ameya Ketkar Oregon State University, USA, Timofey Bryksin JetBrains Research; HSE University, Nikolaos Tsantalis Concordia University, Danny Dig University of Colorado Boulder, USA Pre-print Media Attached |