skip to main content
10.1145/2661694.2661700acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article

Improving responsiveness in mobile apps via refactoring for asynchrony (invited talk)

Published: 17 November 2014 Publication History

Abstract

One contemporary development task is refactoring long-running, blocking synchronous code (e.g., accessing the web, database, or file system) into non-blocking asynchronous code. Asynchronous programming is in demand today because responsiveness is especially important on mobile devices. While major programming languages make asynchronous programming possible, they do not make it easy. In this invited talk we present our growing refactoring toolset that enables Android and Windows Phone developers to retrofit asynchrony. There are several challenges that our toolset addresses: reasoning about a programming model which inverts the flow of control, determining non-interference of asynchronous operations with the main thread of execution, converting from legacy callback-based idioms to the newer style, etc. Our empirical evaluation shows that our toolset is (i) highly applicable, (ii) accurate, (iii) safer than manual refactoring, (iv) it saves development effort, (v) its results have been accepted by the open-source developers, thus it is useful.

References

[1]
July’14, http://phoneguitartab.codeplex.com/.
[2]
July’14, https://github.com/CH3COOH/Softbuild.Data.
[3]
G. Bierman, C. Russo, G. Mainland, E. Meijer, and M. Torgersen. Pause n Play: Formalizing Asynchronous CSharp. In ECOOP, pages 233–257, 2012.
[4]
July’14, http: //msdn.microsoft.com/en-us/library/dd30h2yb.aspx.
[5]
July’14, http: //msdn.microsoft.com/en-us/library/ms754130.aspx.
[6]
M. Fowler, K. Beck, J. Brant, W. Opdyke, and D. Roberts. Refactoring: Improving the Design of Existing Code. Adison-Wesley, 1999.
[7]
C.-H. Hsiao, J. Yu, S. Narayanasamy, Z. Kong, C. L. Pereira, G. A. Pokam, P. M. Chen, and J. Flinn. Race detection for event-driven mobile applications. In PLDI, pages 326–336, 2014.
[8]
July’14, http: //msdn.microsoft.com/en-us/magazine/jj991977.aspx.
[9]
July’14, http://docs.oracle.com/javase/7/docs/api/ java/awt/package-summary.html.
[10]
July’14, http://docs.oracle.com/javase/7/docs/ technotes/guides/swing/.
[11]
Y. Lin, C. Radoi, and D. Dig. Retrofitting Concurrency for Android Applications through Refactoring. In ESEC/FSE, pages To Appear, 2014.
[12]
P. Maiya, A. Kanade, and R. Majumdar. Race Detection for Android Applications. In PLDI, pages 316–325, 2014.
[13]
S. Okur, D. L. Hartveld, D. Dig, and A. van Deursen. A study and toolkit for asynchronous programming in C#. In ICSE, pages 1117–1127, 2014.
[14]
July’14, http: //msdn.microsoft.com/en-us/library/jj152938.aspx.
[15]
B. Petrov, M. Vechev, M. Sridharan, and J. Dolby. Race detection for web applications. In PLDI, pages 251–262, 2012.
[16]
V. Raychev, M. Vechev, and M. Sridharan. Effective race detection for event-driven programs. In OOPSLA, pages 151-166, 2013.

Cited By

View all
  • (2018)@PT: Unobtrusive parallel programming with Java annotationsConcurrency and Computation: Practice and Experience10.1002/cpe.483131:1Online publication date: 27-Jul-2018

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
DeMobile 2014: Proceedings of the 2nd International Workshop on Software Development Lifecycle for Mobile
November 2014
18 pages
ISBN:9781450332255
DOI:10.1145/2661694
Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 November 2014

Check for updates

Author Tags

  1. Android
  2. Asynchrony
  3. Windows Phone

Qualifiers

  • Article

Conference

SIGSOFT/FSE'14
Sponsor:

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 14 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2018)@PT: Unobtrusive parallel programming with Java annotationsConcurrency and Computation: Practice and Experience10.1002/cpe.483131:1Online publication date: 27-Jul-2018

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media