Author_Institution :
Oregon State Univ., Corvallis, OR, USA
Abstract :
To improve responsiveness, developers often use asynchronous programming. In the post-PC era, asynchronous programming is even more in demand because mobile and wearable devices have limited resources and access the network excessively. One current development task is refactoring long-running, blocking synchronous code (for example, accessing the Web, a cloud, a database, or a file system) into nonblocking asynchronous code. This article describes the refactorings that improve responsiveness, along with the obstacles of using asynchrony. It also discusses the challenges of retrofitting asynchrony and presents program analyses and transformations and a growing, practical toolset and resources for retrofitting asynchrony. This article is part of a special issue on Refactoring.
Keywords :
mobile computing; wearable computers; Web access; asynchronous execution refactoring; asynchronous programming; mobile devices; nonblocking asynchronous code; post-PC era; program analyses; retrofitting asynchrony; synchronous code blocking; wearable devices; Androids; Code refractoring; Graphical user interfaces; Humanoid robots; Mobile communication; Programming profession; Reactive power; AsyncDroid; AsyncFixer; Asynchronizer; Asyncifier; asynchronous programming; program analysis and transformation; refactoring; software development; software engineering;