Reactive programming languages and libraries, such as ReactiveX, have been shown to significantly improve software design and have seen important industrial adoption over the last years. Asynchronous applications – which are notoriously error-prone to implement and to maintain – greatly benefit from reactive programming because they can be defined in a declarative style, which improves code clarity and extensibility.
In this paper, we tackle the problem of refactoring existing code bases that are designed using traditional abstractions for asynchronous programming. We propose 2Rx, a refactoring tool to automatically convert asynchronous code to reactive programming. Our evaluation on top-starred GitHub projects shows that 2Rx is effective with the most common asynchronous constructs, covering ~94.7% of the projects with asynchronous computations, and it can provide a refactoring for ~91.7% of their occurrences.
Thu 14 Nov
10:40 - 12:20: Papers - Refactoring and Software Production at Hillcrest Chair(s): Cyrille ArthoKTH Royal Institute of Technology, Sweden | ||||||||||||||||||||||||||||||||||||||||||
10:40 - 11:00 Talk | RefBot: Intelligent Software Refactoring Bot Vahid AlizadehUniversity of Michigan, Mohamed Amine OualiUniversity of Michigan, Marouane KessentiniUniversity of Michigan, Meriem ChaterUniversity of Michigan | |||||||||||||||||||||||||||||||||||||||||
11:00 - 11:20 Talk | Automated Refactoring to Reactive Programming | |||||||||||||||||||||||||||||||||||||||||
11:20 - 11:40 Talk | Trusted Software Supply Chain Kapil SingiAccenture, R.P. Jagadeesh Chandra BoseAccenture Labs, Sanjay PodderAccenture, Adam P. BurdenAccenture | |||||||||||||||||||||||||||||||||||||||||
11:40 - 12:00 Talk | A Journey Towards Providing Intelligence and Actionable Insights to Development Teams in Software Delivery Vibhu Saujanya SharmaAccenture Labs, Rohit MehraAccenture Labs, India, Sanjay PodderAccenture, Adam P. BurdenAccenture | |||||||||||||||||||||||||||||||||||||||||
12:00 - 12:10 Demonstration | Prema: A Tool for Precise Requirements Editing, Modeling and Analysis Yihao HuangEast China Normal University, Jincao FengEast China Normal University, Hanyue ZhengEast China Normal University, Jiayi ZhuEast China Normal University, Shang WangEast China Normal University, Siyuan JiangEastern Michigan University, Weikai MiaoShanghai Key Lab for Trustworthy Computing, School of Computer Science and Software Engineering, East China Normal University, Geguang PuEast China Normal University&Shanghai Trusted Industrial Control Platform Co., Ltd | |||||||||||||||||||||||||||||||||||||||||
12:10 - 12:20 Talk | Empirical Study of Programming to an Interface Benoît VerhaegheINRIA, Christopher FuhrmanÉcole de technologie supérieure, Nicolas AnquetilINRIA, Latifa GuerroujÉcole de Technologie Supérieure, Stéphane Ducasse INRIA Lille Pre-print Media Attached |