Introducing Context Awareness in Unmodified, Context-unaware Software

Markus Raab, Gergö Barany

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. Johnson, D. S. (2002). A theoretician's guide to the experimental analysis of algorithms. In Proceedings of the 5th and 6th DIMACS Implementation Challenges.
  11. 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.
  12. 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.
  13. 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.
  14. 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.
  15. 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.
  16. 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.
  17. Raab, M. (2016a). Elektra: universal framework to access configuration parameters. The Journal of Open Source Software, 1(8).
  18. 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.
  19. 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.
  20. 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.
  21. 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.
  22. Rabkin, A. and Katz, R. (2011). Static extraction of program configuration options. InSoftware Engineering (ICSE), 2011 33rd International Conference on, pages 131- 140. IEEE.
  23. Salvaneschi, G., Ghezzi, C., and Pradella, M. (2012). Context-oriented programming: A software engineering perspective. Journal of Systems and Software, 85(8):1801 - 1817.
  24. 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.
  25. 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.
  26. Tanter, É., Gybels, K., Denker, M., and Bergel, A. (2006). Context-Aware Aspects, pages 227-242. Springer.
  27. 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.
  28. 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.
  29. 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.
  30. 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.
  31. Xu, T. and Zhou, Y. (2015). Systems approaches to tackling configuration errors: A survey. ACM Comput. Surv., 47(4):70:1-70:41.
  32. 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.
Download


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