ABSTRACT
One of the reasons programming mobile systems is so hard is the wide variety of environments a typical app encounters at runtime. As a result, in many cases only post-deployment user testing can determine the right algorithm to use, the rate at which something should happen, or when an app should attempt to conserve energy. Programmers should not be forced to make these choices at development time. Unfortunately, languages leave no way for programmers to express and structure uncertainty about runtime conditions, forcing them to adopt ineffective or fragile ad-hoc solutions.
We introduce a new approach based on structured uncertainty through a new language construct: the maybe statement. maybe statements allow programmers to defer choices about app behavior that cannot be made at development time, while providing enough structure to allow a system to later adaptively choose from multiple alternatives. Eliminating the uncertainty introduced by maybe statements can be done in a large variety of ways: through simulation, split testing, user configuration, temporal adaptation, or machine learning techniques, depending on the type of adaptation appropriate for each situation. Our paper motivates the maybe statement, presents its syntax, and describes a complete system for testing and choosing from maybe alternatives.
- Badrinath, B., Fox, A., Kleinrock, L., Popek, G., Reiher, P., and Satyanarayanan, M. A conceptual framework for network and client adaptation. Mobile Networks and Applications 5, 4 (2000), 221--231. Google ScholarDigital Library
- Balan, R. K., Satyanarayanan, M., Park, S. Y., and Okoshi, T. Tactics-based remote execution for mobile computing. In Proceedings of the 1st international conference on Mobile systems, applications and services (2003), ACM, pp. 273--286. Google ScholarDigital Library
- Challen, G., Haseley, S., Maiti, A., Nandugudi, A., Prasad, G., Puri, M., and Wang, J. The Mote is Dead. Long Live the Discarded Smartphone! In Proc. 15th Workshop on Mobile Systems and Applications (ACM HotMobile 2014) (Feb. 2014). Google ScholarDigital Library
- Cuervo, E., Balasubramanian, A., Cho, D.-k., Wolman, A., Saroiu, S., Chandra, R., and Bahl, P. Maui: making smartphones last longer with code offoad. In Proceedings of the 8th international conference on Mobile systems, applications, and services (2010), ACM, pp. 49--62. Google ScholarDigital Library
- Gomez, L., Neamtiu, I., Azim, T., and Millstein, T. Reran: Timing-and touch-sensitive record and replay for android. In Software Engineering (ICSE), 2013 35th International Conference on (2013), IEEE, pp. 72--81. Google ScholarDigital Library
- Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., marc Loingtier, J., and Irwin, J. Aspect-oriented programming. In ECOOP (1997), SpringerVerlag.Google Scholar
- Lachenmann, A., Marron, P. J., Minder, D., and Rothermer, K. Meeting lifetime goals with energy levels. In ACM Conference on Embedded Networked Sensor Systems (SenSys'07) (November 2007). Google ScholarDigital Library
- Nandugudi, A., Ki, T., Nuessle, C., and Challen, G. Pocketparker: Pocketsourcing parking lot availability. In Proceedings of the 2014 ACM International Joint Conference on Pervasive and Ubiquitous Computing (New York, NY, USA, 2014), UbiComp '14, ACM, pp. 963--973. Google ScholarDigital Library
- Nandugudi, A., Maiti, A., Ki, T., Bulut, F., Demirbas, M., Kosar, T., Qiao, C., Ko, S. Y., and Challen, G. Phonelab: A large programmable smartphone testbed. In Proc. 1st International Workshop on Sensing and Big Data Mining (SenseMine 2013) (November 2013). Google ScholarDigital Library
- Noble, B. D., Satyanarayanan, M., Narayanan, D., Tilton, J. E., Flinn, J., and Walker, K. R. Agile application-aware adaptation for mobility. In SOSP '97: Proceedings of the sixteenth ACM symposium on Operating systems principles (Saint Malo, France, 1997), pp. 276--287. Google ScholarDigital Library
- Sorber, J., Kostadinov, A., Brennan, M., Garber, M., Corner, M., and Berger, E. D. Eon: A Language and Runtime System for Perpetual Systems. In ACM Conference on Embedded Networked Sensor Systems (SenSys'07) (November 2007). Google ScholarDigital Library
- van Schaik, S. J., Olteanu, D., and Fink, R. Enframe: A platform for processing probabilistic data. arXiv preprint arXiv:1309.0373 (2013).Google Scholar
Index Terms
- maybe We Should Enable More Uncertain Mobile App Programming
Recommendations
An Explorative Study of the Mobile App Ecosystem from App Developers' Perspective
WWW '17: Proceedings of the 26th International Conference on World Wide WebWith the prevalence of smartphones, app markets such as Apple App Store and Google Play has become the center stage in the mobile app ecosystem, with millions of apps developed by tens of thousands of app developers in each major market. This paper ...
The killer app: how to make millions with ground-breaking software
I've been a programmer for over 30 years, often at the leading edge, never in a classic IT shop. I've worked with several vendors' mainframes, midis and micros, for big firms, small firms, central government, educational establishments, and for myself; ...
Test-Run of the "App-Driven Approach" in Teaching A Mobile Programming Course
WCCCE '14: Proceedings of the Western Canadian Conference on Computing EducationIn the computing education community, there are common understandings regarding what topics should be covered in some specific subjects and their corresponding courses and the preferred sequence in which the topics is presented. Published textbooks ...
Comments