Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2593902.2593925acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Refactoring local to cloud data types for mobile apps

Published: 02 June 2014 Publication History

Abstract

Mobile cloud computing can greatly enrich the capabilities of today’s pervasive mobile devices. Storing data on the cloud can enable features such as automatic backup, seamless transition between multiple devices, and multiuser support for existing apps. However, the process of converting local into cloud data types requires high expertise, is difficult, and time-consuming. Refactoring techniques can greatly simplify this process. In this paper we present a formative study where we analyzed and successfully converted four real-world touchdevelop apps into cloud-enabled apps. Based on these lessons, we designed and implemented, CLOUDIFYER, a tool that automatically refactors local data types into cloud data types on the touchdevelop platform. Our empirical evaluation on a corpus of 123 mobile apps resulting in 2722 transformations shows (i) that the refactoring is widely applicable, (ii) CLOUDIFYER saves human effort, and (iii) CLOUDIFYER is accurate.

References

[1]
Refactoring to cloud data. March ’14, http://cope.eecs.oregonstate.edu/cloudifier/.
[2]
S. Badame and D. Dig. Refactoring meets spreadsheet formulas. In 28th IEEE International Conference on Software Maintenance (ICSM), pages 399–409, 2012.
[3]
I. Balaban, F. Tip, and R. M. Fuhrer. Refactoring support for class library migration. In ACM International Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA), pages 265–279, 2005.
[4]
E. A. Brewer. Towards robust distributed systems (abstract). In 19th ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing (PODC), pages 7–, 2000.
[5]
S. Burckhardt, M. Fähndrich, D. Leijen, and M. Sagiv. Eventually Consistent Transactions. In European Symposium on Programming (ESOP), (extended version available as Microsoft Tech Report MSR-TR-2011-117), LNCS, volume 7211, pages 64–83, 2012.
[6]
S. Burckhardt, M. Fähndrich, D. Leijen, and B. P. Wood. Cloud types for eventual consistency. In European Conference on Object-Oriented Programming (ECOOP), pages 283–307. 2012.
[7]
B.-G. Chun, S. Ihm, P. Maniatis, M. Naik, and A. Patti. Clonecloud: elastic execution between mobile device and cloud. In 6th conference on Computer systems (EuroSys), pages 301–314. ACM, 2011.
[8]
J. P. Cohn. Citizen science: Can volunteers do real research? BioScience, 58(3):192–197, 2008.
[9]
S. Cooper. The design of alice. ACM Transactions on Computing Education (TOCE), 10(4):15, 2010.
[10]
E. Cuervo, A. Balasubramanian, D.-k. Cho, A. Wolman, S. Saroiu, R. Chandra, and P. Bahl. Maui: making smartphones last longer with code offload. In 8th international conference on Mobile systems, applications, and services (MobiSys), pages 49–62. ACM, 2010.
[11]
D. Dig, J. Marrero, and M. D. Ernst. Refactoring sequential java code for concurrency via concurrent libraries. In 31st International Conference on Software Engineering (ICSE), pages 397–407. IEEE Computer Society, 2009.
[12]
J. Flinn, S. Park, and M. Satyanarayanan. Balancing performance, energy, and quality in pervasive computing. In 22nd International Conference on Distributed Computing Systems (ICDCS), pages 217–226. IEEE, 2002.
[13]
C. Forlines, A. Esenther, C. Shen, D. Wigdor, and K. Ryall. Multi-user, multi-display interaction with a single-user, single-display geospatial application. In 19th Annual ACM Symposium on User Interface Software and Technology (UIST), pages 273–276. ACM, 2006.
[14]
S. Gilbert and N. Lynch. Brewer’s conjecture and the feasibility of consistent, available, partition-tolerant web services. SIGACT News, 33:51–59, June 2002.
[15]
A. Gyori, L. Franklin, D. Dig, and J. Lahoda. Crossing the gap from imperative to functional programming through refactoring. In 9th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering (ESEC/FSE), pages 543–553, 2013.
[16]
A. Khan, M. Othman, S. Madani, and S. Khan. A survey of mobile cloud computing application models.
[17]
M. Kölling. The greenfoot programming environment. ACM Transactions on Computing Education (TOCE), 10(4):14, 2010.
[18]
Y.-W. Kwon and E. Tilevich. Energy-efficient and fault-tolerant distributed mobile execution. In IEEE 32nd International Conference on Distributed Computing Systems (ICDCS), pages 586–595. IEEE, 2012.
[19]
Y.-W. Kwon and E. Tilevich. Cloud refactoring: automated transitioning to cloud-based services. Automated Software Engineering, pages 1–28, 2013.
[20]
K. Leichtenstern and E. André. Studying multi-user settings for pervasive games. In 11th International Conference on Human-Computer Interaction with Mobile Devices and Services (MobileHCI), pages 25:1–25:10. ACM, 2009.
[21]
G. Lewis, D. Smith, L. Bass, and B. Myers. Report of the workshop on software engineering foundations for end-user programming. ACM SIGSOFT Software Engineering Notes, 34(5):51–54, 2009.
[22]
H. Ling, X. Zhou, and Y. Zheng. Refactoring from object-oriented systems to service-oriented systems: A categorical approach. In International Conference on Service Sciences (ICSS), pages 214–218. IEEE, 2010.
[23]
R. Lopez-Gulliver, H. Tochigi, T. Sato, M. Suzuki, and N. Hagita. Senseweb: Collaborative image classification in a multi-user interaction environment. In 12th Annual ACM International Conference on Multimedia (MM), pages 456–459. ACM, 2004.
[24]
J. Maloney, M. Resnick, N. Rusk, B. Silverman, and E. Eastmond. The scratch programming language and environment. ACM Transactions on Computing Education (TOCE), 10(4):16, 2010.
[25]
M. A. Nacenta, M. R. Jakobsen, R. Dautriche, U. Hinrichs, M. Dörk, J. Haber, and S. Carpendale. The lunchtable: A multi-user, multi-display system for information sharing in casual group interactions. In 2012 International Symposium on Pervasive Displays (PerDis), pages 18:1–18:6. ACM, 2012.
[26]
H. A. Nguyen, T. T. Nguyen, G. Wilson, Jr., A. T. Nguyen, M. Kim, and T. N. Nguyen. A graph-based approach to api usage adaptation. In ACM International Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA), pages 302–321. ACM, 2010.
[27]
H. Sørensen and J. Kjeldskov. The interaction space of a multi-device, multi-user music experience. In 7th Nordic Conference on Human-Computer Interaction: Making Sense Through Design (NordiCHI), pages 504–513. ACM, 2012.
[28]
S. Strauch, V. Andrikopoulos, and T. Bachmann. Migrating application data to the cloud using cloud data. In e 3rd International Conference on Cloud Computing and Service Science, (CLOSER), pages 36–46. SciTePress, 2013.
[29]
Y.-Y. Su and J. Flinn. Slingshot: deploying stateful services in wireless hotspots. In 3rd international conference on Mobile systems, applications, and services (MobiSys), pages 79–92. ACM, 2005.
[30]
D. Terry, M. Theimer, K. Petersen, A. Demers, M. Spreitzer, and C. Hauser. Managing update conflicts in bayou, a weakly connected replicated storage system. SIGOPS Oper. Syst. Rev., 29:172–182, December 1995.
[31]
E. Tilevich and Y. Smaragdakis. J-orchestra: Enhancing java programs with distribution capabilities. ACM Trans. Softw. Eng. Methodol., 19(1):1:1–1:40, Aug. 2009.
[32]
N. Tillmann, M. Moskal, J. de Halleux, and M. Fahndrich. Touchdevelop: Programming cloud-connected mobile devices via touchscreen. In 10th SIGPLAN Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (ONWARD), pages 49–60. ACM, 2011.
[33]
J. Wloka, M. Sridharan, and F. Tip. Refactoring for reentrancy. In 9th joint meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/SIGSOFT FSE), pages 173–182, 2009.
[34]
J. Wloka, M. Sridharan, and F. Tip. Refactoring for reentrancy. In 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering (ESEC/FSE), pages 173–182. ACM, 2009.
[35]
D. Wolber. App inventor and real-world motivation. In 42Nd ACM Technical Symposium on Computer Science Education (SIGCSE), pages 601–606. ACM, 2011.
[36]
N. Yuill and Y. Rogers. Mechanisms for collaboration: A design and evaluation framework for multi-user interfaces. ACM Trans. Comput.-Hum. Interact., 19(1):1:1–1:25, May 2012.

Cited By

View all
  • (2020)Enhancing Web App Execution with Automated ReengineeringCompanion Proceedings of the Web Conference 202010.1145/3366424.3382087(274-278)Online publication date: 20-Apr-2020
  • (2020)Client Insourcing: Bringing Ops In-House for Seamless Re-engineering of Full-Stack JavaScript ApplicationsProceedings of The Web Conference 202010.1145/3366423.3380105(179-189)Online publication date: 20-Apr-2020
  • (2018)Refactoring Architecture Models for Compliance with Custom RequirementsProceedings of the 21th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems10.1145/3239372.3239379(267-277)Online publication date: 14-Oct-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
MOBILESoft 2014: Proceedings of the 1st International Conference on Mobile Software Engineering and Systems
June 2014
108 pages
ISBN:9781450328784
DOI:10.1145/2593902
Permission to make digital or hard copies of all or part 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 components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

  • TCSE: IEEE Computer Society's Tech. Council on Software Engin.

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 02 June 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Cloud Computing
  2. Empirical Study
  3. Refactoring

Qualifiers

  • Article

Conference

ICSE '14
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all
  • (2020)Enhancing Web App Execution with Automated ReengineeringCompanion Proceedings of the Web Conference 202010.1145/3366424.3382087(274-278)Online publication date: 20-Apr-2020
  • (2020)Client Insourcing: Bringing Ops In-House for Seamless Re-engineering of Full-Stack JavaScript ApplicationsProceedings of The Web Conference 202010.1145/3366423.3380105(179-189)Online publication date: 20-Apr-2020
  • (2018)Refactoring Architecture Models for Compliance with Custom RequirementsProceedings of the 21th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems10.1145/3239372.3239379(267-277)Online publication date: 14-Oct-2018
  • (2015)Refactoring for energy efficiencyProceedings of the Fourth International Workshop on Green and Sustainable Software10.5555/2820158.2820165(29-35)Online publication date: 16-May-2015
  • (2015)Refactoring for Energy EfficiencyProceedings of the 2015 IEEE/ACM 4th International Workshop on Green and Sustainable Software10.1109/GREENS.2015.12(29-35)Online publication date: 18-May-2015

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