Introducing Context Awareness in Unmodified, Context-unaware Software
Markus Raab, Gergö Barany
2017
Abstract
Software tends to be highly configurable, but most applications are hardly context aware. For example, a web browser provides many settings to configure printers and proxies, but nevertheless it is unable to dynamically adapt to a new workplace. In this paper we aim to empirically demonstrate that by dynamic and automatic reconfiguration of unmodified software we can systematically introduce context awareness. In 16 real-world applications comprising 50 million lines of code we empirically investigate which of the 2,683 run-time configuration accesses (1) already take context into account, or (2) can be manipulated at run-time to do so. The results show that context awareness can be exploited far beyond the developers’ initial intentions. Our tool Elektra dynamically intercepts the run-time configuration accesses and replaces them with a context aware implementation. Users only need to specify contexts and add context sensors to make use of this potential.
References
- Alegre, U., Augusto, J. C., and Clark, T. (2016). Engineering context-aware systems and applications: A survey. Journal of Systems and Software, 117:55 - 83.
- Alexandrov, A. D., Ibel, M., Schauser, K. E., and Scheiman, C. J. (1998). UFO: A personal global file system based on user-level extensions to the operating system. ACM Trans. Comput. Syst., 16(3):207-233.
- Appeltauer, M., Hirschfeld, R., Haupt, M., Lincke, J., and Perscheid, M. (2009). A comparison of contextoriented programming languages. In International Workshop on Context-Oriented Programming, COP 7809, New York, NY, USA. ACM.
- Asirelli, P., Degano, P., Levi, G., Martèlli, A., Montanari, U., Pacini, G., Sirovich, F., and Turini, F. (1979). A flexible environment for program development based on a symbolic interpreter. ICSE 7879, pages 251-263, Piscataway, NJ, USA. IEEE Press.
- Baldauf, M., Dustdar, S., and Rosenberg, F. (2007). A survey on context-aware systems. International Journal of Ad Hoc and Ubiquitous Computing, 2(4):263-277.
- Costanza, P., Hirschfeld, R., and De Meuter, W. (2006). Efficient layer activation for switching context-dependent behavior. In Lightfoot, D. and Szyperski, C., editors, Modular Programming Languages, volume 4228 of LNCS, pages 84-103. Springer.
- Dey, A. K. and Abowd, G. D. (2000). The what, who, where, when, why and how of context-awareness. In CHI 7800 Extended Abstracts on Human Factors in Computing Systems, CHI EA 7800, NY. ACM.
- Ihantola, E. and Kihn, L. (2011). Threats to validity and reliability in mixed methods accounting research. Qualitative Research in Accounting & Management, 8(1):39- 58.
- Jin, D., Qu, X., Cohen, M. B., and Robinson, B. (2014). Configurations everywhere: Implications for testing and debugging in practice. In Companion Proceedings of the 36th International Conference on Software Engineering, ICSE Companion 2014, pages 215-224.
- Johnson, D. S. (2002). A theoretician's guide to the experimental analysis of algorithms. In Proceedings of the 5th and 6th DIMACS Implementation Challenges.
- Jong-yi, H., Eui-ho, S., and Sung-Jin, K. (2009). Contextaware systems: A literature review and classification. Expert Systems with Applications, 36(4):8509 - 8522.
- Kamina, T., Aotani, T., Masuhara, H., and Tamai, T. (2014). Context-oriented software engineering: A modularity vision. In Proceedings of the 13th International Conference on Modularity, MODULARITY 7814, pages 85-98, New York, NY, USA. ACM.
- Lee, K. C. A., Segarra, M.-T., and Guelec, S. (2014). A deployment-oriented development process based on context variability modeling. In Model-Driven Engineering and Software Development (MODELSWARD), 2nd International Conference, pages 454-459. IEEE.
- Mens, K., Capilla, R., Cardozo, N., Dumas, B., et al. (2016). A taxonomy of context-aware software variability approaches. In Workshop on Live Adaptation of Software Systems, collocated with Modularity 2016 conference.
- Raab, M. (2015a). Global and thread-local activation of contextual program execution environments. In Proceedings of the IEEE 18th International Symposium on Real-Time Distributed Computing Workshops (ISORCW/SEUS), pages 34-41.
- Raab, M. (2015b). Sharing software configuration via specified links and transformation rules. InTechnical Report from KPS 2015, volume 18. Vienna University of Technology, Complang Group.
- Raab, M. (2016a). Elektra: universal framework to access configuration parameters. The Journal of Open Source Software, 1(8).
- Raab, M. (2016b). Improving system integration using a modular configuration specification language. In Companion Proceedings of the 15th International Conference on Modularity, MODULARITY Companion 2016, pages 152-157. ACM.
- Raab, M. (2016c). Persistent contextual values as interprocess layers. In Proceedings of the 1st International Workshop on Mobile Development, Mobile! 2016, pages 9-16. ACM.
- Raab, M. (2016d). Unanticipated context awareness for software configuration access using the getenv API. In Computer and Information Science, pages 41-57. Springer International Publishing, Cham.
- Raab, M. and Puntigam, F. (2014). Program execution environments as contextual values. In Proceedings of 6th International Workshop on Context-Oriented Programming, pages 8:1-8:6, New York, NY, USA. ACM.
- Rabkin, A. and Katz, R. (2011). Static extraction of program configuration options. InSoftware Engineering (ICSE), 2011 33rd International Conference on, pages 131- 140. IEEE.
- Salvaneschi, G., Ghezzi, C., and Pradella, M. (2012). Context-oriented programming: A software engineering perspective. Journal of Systems and Software, 85(8):1801 - 1817.
- Schippers, H., Molderez, T., and Janssens, D. (2010). A graph-based operational semantics for context-oriented programming. In Proceedings of the 2nd International Workshop on Context-Oriented Programming, COP 7810, New York, NY, USA. ACM.
- Tanter, E. (2008). Contextual values. In Proceedings of the 2008 Symposium on Dynamic Languages, DLS 7808, pages 3:1-3:10, New York, NY, USA. ACM.
- Tanter, É., Gybels, K., Denker, M., and Bergel, A. (2006). Context-Aware Aspects, pages 227-242. Springer.
- von Löwis, M., Denker, M., and Nierstrasz, O. (2007). Context-oriented programming: Beyond layers. In Proceedings of the 2007 International Conference on Dynamic Languages, ICDL 7807, pages 143-156. ACM.
- Wasty, B. H., Semmo, A., Appeltauer, M., Steinert, B., and Hirschfeld, R. (2010). ContextLua: Dynamic behavioral variations in computer games. In Proceedings of the 2nd International Workshop on Context-Oriented Programming, COP 7810, pages 5:1-5:6. ACM.
- Xu, T., Jin, L., Fan, X., Zhou, Y., Pasupathy, S., and Talwadker, R. (2015). Hey, you have given me too many knobs! Understanding and dealing with over-designed configuration in system software. InProceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering, ESEC/FSE 2015, pages 307-319. ACM.
- Xu, T., Zhang, J., Huang, P., Zheng, J., Sheng, T., Yuan, D., Zhou, Y., and Pasupathy, S. (2013). Do not blame users for misconfigurations. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles, pages 244-259. ACM.
- Xu, T. and Zhou, Y. (2015). Systems approaches to tackling configuration errors: A survey. ACM Comput. Surv., 47(4):70:1-70:41.
- Yin, Z., Ma, X., Zheng, J., Zhou, Y., Bairavasundaram, L. N., and Pasupathy, S. (2011). An empirical study on configuration errors in commercial and open source systems. SOSP 7811, pages 159-172.
Paper Citation
in Harvard Style
Raab M. and Barany G. (2017). Introducing Context Awareness in Unmodified, Context-unaware Software . In Proceedings of the 12th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE, ISBN 978-989-758-250-9, pages 218-225. DOI: 10.5220/0006326602180225
in Bibtex Style
@conference{enase17,
author={Markus Raab and Gergö Barany},
title={Introducing Context Awareness in Unmodified, Context-unaware Software},
booktitle={Proceedings of the 12th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE,},
year={2017},
pages={218-225},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0006326602180225},
isbn={978-989-758-250-9},
}
in EndNote Style
TY - CONF
JO - Proceedings of the 12th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE,
TI - Introducing Context Awareness in Unmodified, Context-unaware Software
SN - 978-989-758-250-9
AU - Raab M.
AU - Barany G.
PY - 2017
SP - 218
EP - 225
DO - 10.5220/0006326602180225